7 #include "RSVSmath_automatic.hpp"
9 #pragma GCC diagnostic push
10 #pragma GCC diagnostic ignored "-Wunused-parameter"
12 void Volume2_f(
double d0,
double d1,
double d2,
const vector<double> &g0s,
const vector<double> &g1s,
13 const vector<double> &g2s,
const vector<double> &g0e,
const vector<double> &g1e,
14 const vector<double> &g2e,
double &t0)
16 double t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19;
22 t7 = g0s[0] - g1s[0] + t5 - d1 * t6;
25 t10 = g2e[0] - g2s[0];
26 t11 = g0s[0] - g2s[0] + t5 - d2 * t10;
27 t12 = g1e[1] - g1s[1];
28 t13 = g0s[1] - g1s[1] + t3 - d1 * t12;
29 t14 = g2e[2] - g2s[2];
30 t15 = g0s[2] - g2s[2] + t9 - d2 * t14;
31 t16 = g1e[2] - g1s[2];
32 t17 = g0s[2] - g1s[2] + t9 - d1 * t16;
33 t18 = g2e[1] - g2s[1];
34 t19 = g0s[1] - g2s[1] + t3 - d2 * t18;
35 t0 = (g0s[1] + t3) * (t7 * t15 - t11 * t17) * (1.0 / 6.0) + (g0s[2] + t9) * (t11 * t13 - t7 * t19) * (1.0 / 6.0) -
36 (g0s[0] + t5) * (t13 * t15 - t17 * t19) * (1.0 / 6.0);
39 void Volume2_df(
double d0,
double d1,
double d2,
const vector<double> &g0s,
const vector<double> &g1s,
40 const vector<double> &g2s,
const vector<double> &g0e,
const vector<double> &g1e,
43 double t2, t3, t4, t5, t6, t7, t20, t8, t9, t10, t23, t11, t12, t22, t13, t14, t25, t15, t16, t21, t17, t18, t24,
52 t8 = g0s[0] - g1s[0] + t4 - t20;
54 t10 = g2e[0] - g2s[0];
56 t11 = g0s[0] - g2s[0] + t4 - t23;
57 t12 = g1e[1] - g1s[1];
59 t13 = g0s[1] - g1s[1] + t5 - t22;
60 t14 = g1e[2] - g1s[2];
62 t15 = g0s[2] - g1s[2] + t9 - t25;
63 t16 = g2e[1] - g2s[1];
65 t17 = g0s[1] - g2s[1] + t5 - t21;
66 t18 = g2e[2] - g2s[2];
68 t19 = g0s[2] - g2s[2] + t9 - t24;
72 A0[0][0] = t26 * (t3 * t8 - t3 * t11 - t2 * t13 + t2 * t17) * (-1.0 / 6.0) +
73 t27 * (t6 * t8 - t2 * t15 - t6 * t11 + t2 * t19) * (1.0 / 6.0) +
74 t28 * (t3 * t15 - t6 * t13 - t3 * t19 + t6 * t17) * (1.0 / 6.0) +
75 t6 * (t11 * t13 - t8 * t17) * (1.0 / 6.0) - t3 * (t11 * t15 - t8 * t19) * (1.0 / 6.0) -
76 t2 * (t13 * t19 - t15 * t17) * (1.0 / 6.0);
77 A0[0][1] = t26 * (t11 * t12 - t7 * t17) * (-1.0 / 6.0) + t27 * (t11 * t14 - t7 * t19) * (1.0 / 6.0) +
78 t28 * (t12 * t19 - t14 * t17) * (1.0 / 6.0);
79 A0[0][2] = t26 * (t10 * t13 - t8 * t16) * (-1.0 / 6.0) + t27 * (t10 * t15 - t8 * t18) * (1.0 / 6.0) +
80 t28 * (t13 * t18 - t15 * t16) * (1.0 / 6.0);
83 void Volume2_ddf(
double d0,
double d1,
double d2,
const vector<double> &g0s,
const vector<double> &g1s,
84 const vector<double> &g2s,
const vector<double> &g0e,
const vector<double> &g1e,
87 double t2, t3, t4, t5, t6, t7, t23, t8, t9, t20, t10, t11, t12, t24, t13, t14, t25, t15, t16, t21, t17, t18, t22,
88 t19, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46,
89 t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61, t62, t63, t64;
97 t8 = g0s[0] - g1s[0] + t4 - t23;
100 t10 = g0s[0] - g2s[0] + t4 - t20;
102 t12 = g1e[1] - g1s[1];
104 t13 = g0s[1] - g1s[1] + t5 - t24;
105 t14 = g1e[2] - g1s[2];
107 t15 = g0s[2] - g1s[2] + t11 - t25;
108 t16 = g2e[1] - g2s[1];
110 t17 = g0s[1] - g2s[1] + t5 - t21;
111 t18 = g2e[2] - g2s[2];
113 t19 = g0s[2] - g2s[2] + t11 - t22;
118 t30 = t29 - t7 * t17;
120 t32 = t31 - t7 * t19;
121 t33 = t3 * t32 * (1.0 / 6.0);
123 t35 = t2 * (t34 - t14 * t17) * (1.0 / 6.0);
125 t37 = t26 * (t36 - t2 * t12) * (1.0 / 6.0);
127 t39 = t38 - t2 * t14;
129 t41 = t40 - t6 * t12;
130 t42 = t33 + t35 + t37 - t6 * t30 * (1.0 / 6.0) - t27 * t39 * (1.0 / 6.0) - t28 * t41 * (1.0 / 6.0);
132 t44 = t43 - t8 * t16;
134 t46 = t3 * (t45 - t8 * t18) * (1.0 / 6.0);
136 t48 = t47 - t15 * t16;
137 t49 = t2 * t48 * (1.0 / 6.0);
139 t51 = t50 - t2 * t16;
141 t53 = t27 * (t52 - t2 * t18) * (1.0 / 6.0);
143 t55 = t54 - t6 * t16;
144 t56 = t28 * t55 * (1.0 / 6.0);
145 t57 = t46 + t49 + t53 + t56 - t6 * t44 * (1.0 / 6.0) - t26 * t51 * (1.0 / 6.0);
147 t59 = t26 * (t58 - t7 * t16) * (1.0 / 6.0);
149 t61 = t60 - t7 * t18;
151 t63 = t62 - t14 * t16;
152 t64 = t59 - t27 * t61 * (1.0 / 6.0) - t28 * t63 * (1.0 / 6.0);
153 A0[0][0] = t6 * (t3 * t8 - t3 * t10 - t2 * t13 + t2 * t17) * (-1.0 / 3.0) +
154 t3 * (t6 * t8 - t6 * t10 - t2 * t15 + t2 * t19) * (1.0 / 3.0) +
155 t2 * (t3 * t15 - t6 * t13 - t3 * t19 + t6 * t17) * (1.0 / 3.0);
333 void Volume_f(
const vector<double> &p0,
const vector<double> &p1,
const vector<double> &p2,
double &t0)
335 double t2, t3, t4, t5, t6, t7;
342 t0 = p0[1] * (t2 * t5 - t3 * t6) * (1.0 / 6.0) + p0[2] * (t3 * t4 - t2 * t7) * (1.0 / 6.0) -
343 p0[0] * (t4 * t5 - t6 * t7) * (1.0 / 6.0);
346 void Volume_df(
const vector<double> &p0,
const vector<double> &p1,
const vector<double> &p2,
ArrayVec<double> &A0)
348 double t2, t3, t4, t5, t6, t7, t8, t9, t10;
358 A0[0][0] = p0[1] * t2 * (1.0 / 6.0) - p0[2] * t6 * (1.0 / 6.0) - t3 * t9 * (1.0 / 6.0) + t4 * t8 * (1.0 / 6.0);
359 A0[0][1] = p0[0] * t2 * (-1.0 / 6.0) + p0[2] * t5 * (1.0 / 6.0) + t3 * t7 * (1.0 / 6.0) - t4 * t10 * (1.0 / 6.0);
360 A0[0][2] = p0[0] * t6 * (1.0 / 6.0) - p0[1] * t5 * (1.0 / 6.0) - t7 * t8 * (1.0 / 6.0) + t9 * t10 * (1.0 / 6.0);
361 A0[0][3] = p0[1] * t3 * (-1.0 / 6.0) + p0[2] * t8 * (1.0 / 6.0);
362 A0[0][4] = p0[0] * t3 * (1.0 / 6.0) - p0[2] * t10 * (1.0 / 6.0);
363 A0[0][5] = p0[0] * t8 * (-1.0 / 6.0) + p0[1] * t10 * (1.0 / 6.0);
364 A0[0][6] = p0[1] * t4 * (1.0 / 6.0) - p0[2] * t9 * (1.0 / 6.0);
365 A0[0][7] = p0[0] * t4 * (-1.0 / 6.0) + p0[2] * t7 * (1.0 / 6.0);
366 A0[0][8] = p0[1] * t7 * (-1.0 / 6.0) + p0[0] * t9 * (1.0 / 6.0);
369 void Volume_ddf(
const vector<double> &p0,
const vector<double> &p1,
const vector<double> &p2,
ArrayVec<double> &A0)
371 double t2, t3, t4, t5, t6, t7, t8, t9, t10;
372 t2 = p1[2] * (1.0 / 6.0);
373 t3 = p2[1] * (1.0 / 6.0);
374 t4 = p1[0] * (1.0 / 6.0);
375 t5 = p2[2] * (1.0 / 6.0);
376 t6 = p2[0] * (1.0 / 6.0);
377 t7 = p0[1] * (1.0 / 6.0);
378 t8 = p1[1] * (1.0 / 6.0);
379 t9 = p0[2] * (1.0 / 6.0);
380 t10 = p0[0] * (1.0 / 6.0);
381 A0[0][4] = p2[2] * (-1.0 / 6.0);
384 A0[0][8] = p1[1] * (-1.0 / 6.0);
386 A0[1][5] = p2[0] * (-1.0 / 6.0);
395 A0[3][7] = p0[2] * (-1.0 / 6.0);
400 A0[4][8] = p0[0] * (-1.0 / 6.0);
419 void Area_f(
const vector<double> &p0,
const vector<double> &p1,
const vector<double> &p2,
double &t0,
double eps)
421 double t3, t4, t6, t9, t2, t7, t8, t5, t10;
423 t3 = p0[1 - 1] - p1[1 - 1];
424 t4 = p0[1 - 1] - p2[1 - 1];
425 t6 = p0[2 - 1] - p1[2 - 1];
426 t9 = p0[2 - 1] - p2[2 - 1];
427 t2 = -t4 * t6 + t3 * t9;
428 t7 = p0[3 - 1] - p2[3 - 1];
429 t8 = p0[3 - 1] - p1[3 - 1];
430 t5 = -t3 * t7 + t4 * t8;
431 t10 = t6 * t7 - t8 * t9;
432 t0 = sqrt(t2 * t2 + t5 * t5 + t10 * t10 + eps) * (1.0 / 2.0);
435 void Area_df(
const vector<double> &p0,
const vector<double> &p1,
const vector<double> &p2,
ArrayVec<double> &A0,
438 double t2, t3, t4, t5, t6, t13, t7, t8, t9, t10, t18, t11, t14, t15, t12, t16, t17, t19, t20, t21, t22, t23, t24,
441 t2 = p0[1 - 1] - p1[1 - 1];
442 t3 = p0[1 - 1] - p2[1 - 1];
443 t4 = p0[2 - 1] - p2[2 - 1];
445 t6 = p0[2 - 1] - p1[2 - 1];
448 t8 = p0[3 - 1] - p2[3 - 1];
450 t10 = p0[3 - 1] - p1[3 - 1];
456 t16 = p1[3 - 1] - p2[3 - 1];
460 t21 = p1[1 - 1] - p2[1 - 1];
461 t22 = p1[2 - 1] - p2[2 - 1];
463 t24 = t17 + t19 + t23;
464 t25 = 1.0 / sqrt(t24 + eps);
465 A0[0][0] = (t11 * t16 * 2.0 + t7 * t22 * 2.0) * 1.0 / sqrt(t17 + t19 + t12 * t12 + eps) * (1.0 / 4.0);
466 A0[0][1] = t25 * (t7 * t21 * 2.0 - t16 * t20 * 2.0) * (-1.0 / 4.0);
467 A0[0][2] = t25 * (t11 * t21 * 2.0 + t20 * t22 * 2.0) * (-1.0 / 4.0);
468 A0[0][3] = t25 * (t4 * t7 * 2.0 + t8 * t11 * 2.0) * (-1.0 / 4.0);
469 A0[0][4] = t25 * (t3 * t7 * 2.0 - t8 * t20 * 2.0) * (1.0 / 4.0);
470 A0[0][5] = t25 * (t3 * t11 * 2.0 + t4 * t20 * 2.0) * (1.0 / 4.0);
471 A0[0][6] = t25 * (t6 * t7 * 2.0 + t10 * t11 * 2.0) * (1.0 / 4.0);
472 A0[0][7] = t25 * (t2 * t7 * 2.0 - t10 * t20 * 2.0) * (-1.0 / 4.0);
473 A0[0][8] = t25 * (t2 * t11 * 2.0 + t6 * t20 * 2.0) * (-1.0 / 4.0);
476 void Area_ddf(
const vector<double> &p0,
const vector<double> &p1,
const vector<double> &p2,
ArrayVec<double> &A0,
480 double t2, t3, t5, t6, t8, t11, t13, t14, t4, t9, t10, t15, t16, t7, t20, t21, t12, t19, t23, t24, t17, t18, t22,
481 t25, t26, t27, t28, t29, t30, t31, t32, t37, t33, t34, t35, t36, t38, t39, t40, t41, t42, t43, t44, t45, t46,
482 t70, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t75, t57, t58, t59, t60, t61, t62, t63, t64, t65, t66,
483 t67, t68, t69, t71, t72, t73, t74, t76, t77, t78, t79, t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90,
484 t91, t92, t93, t94, t95, t96, t97, t98, t99, t100, t101, t102, t103, t104, t105, t106, t107, t108, t109, t110,
485 t111, t112, t113, t114, t115, t116, t117, t118, t119, t120, t121, t122, t123, t124, t125, t126, t127, t128,
486 t129, t130, t131, t132, t133, t134, t135, t136, t137, t138, t139, t140, t141, t142, t143, t144, t145, t146,
487 t147, t148, t149, t150, t151, t152, t153, t154, t155, t156, t157, t158, t159, t160, t161, t162, t163, t164,
488 t165, t166, t167, t168, t169, t170, t171, t172, t173, t174, t175, t176;
489 t2 = p1[2 - 1] - p2[2 - 1];
490 t3 = p1[3 - 1] - p2[3 - 1];
491 t5 = p0[1 - 1] - p1[1 - 1];
492 t6 = p0[1 - 1] - p2[1 - 1];
493 t8 = p0[2 - 1] - p1[2 - 1];
494 t11 = p0[2 - 1] - p2[2 - 1];
498 t9 = p0[3 - 1] - p2[3 - 1];
499 t10 = p0[3 - 1] - p1[3 - 1];
508 t24 = t3 * t19 * 2.0;
513 t26 = t18 + t22 + t25;
514 t27 = 1.0 / pow(t26 + eps, 3.0 / 2.0);
515 t28 = p1[1 - 1] - p2[1 - 1];
516 t29 = 1.0 / sqrt(t26 + eps);
517 t30 = t5 * t11 * 2.0;
519 t32 = t3 * t12 * 2.0;
520 t37 = t4 * t28 * 2.0;
522 t34 = t2 * t28 * t29 * (-1.0 / 2.0) - t17 * t27 * t33 * (1.0 / 8.0);
526 t39 = t19 * t28 * 2.0;
527 t40 = t2 * t12 * 2.0;
529 t42 = t4 * t11 * 2.0;
530 t43 = t9 * t19 * 2.0;
534 t70 = t9 * t12 * 2.0;
536 t48 = t6 * t19 * 2.0;
537 t49 = t11 * t12 * 2.0;
541 t53 = t10 * t19 * 2.0;
543 t55 = t3 * t10 * 2.0;
545 t75 = t10 * t12 * 2.0;
548 t59 = t5 * t19 * 2.0;
549 t60 = t8 * t12 * 2.0;
551 t62 = t17 * t27 * t41 * (1.0 / 8.0);
552 t63 = t62 - t3 * t28 * t29 * (1.0 / 2.0);
553 t64 = t27 * t41 * (t32 - t37) * (1.0 / 8.0);
554 t65 = t64 - t2 * t3 * t29 * (1.0 / 2.0);
559 t71 = t6 * t28 * 2.0;
560 t72 = t2 * t11 * 2.0;
561 t73 = t6 * t10 * 2.0;
562 t74 = t10 * t11 * 2.0;
563 t76 = t5 * t28 * 2.0;
566 t79 = t17 * t27 * t44 * (1.0 / 8.0);
567 t80 = t79 - t29 * t78 * (1.0 / 4.0);
568 t81 = t11 * t28 * 2.0;
569 t82 = -t30 + t51 + t81;
570 t83 = t29 * t82 * (1.0 / 4.0);
571 t84 = t27 * t44 * (t32 - t37) * (1.0 / 8.0);
573 t86 = t9 * t28 * 2.0;
574 t87 = -t31 + t73 + t86;
575 t88 = t29 * t87 * (1.0 / 4.0);
576 t89 = t88 - t27 * t41 * t44 * (1.0 / 8.0);
579 t92 = t29 * t91 * (-1.0 / 4.0) - t27 * t33 * t47 * (1.0 / 8.0);
581 t94 = -t58 + t74 + t93;
582 t95 = t29 * t94 * (1.0 / 4.0);
583 t96 = t27 * t41 * t47 * (1.0 / 8.0);
585 t98 = t27 * t44 * t47 * (1.0 / 8.0);
586 t99 = t98 - t6 * t11 * t29 * (1.0 / 2.0);
589 t102 = t9 * t10 * 2.0;
590 t103 = t3 * t6 * 2.0;
591 t104 = t3 * t11 * 2.0;
593 t106 = t27 * t41 * t50 * (1.0 / 8.0);
594 t107 = t106 - t29 * t105 * (1.0 / 4.0);
595 t108 = t27 * t44 * t50 * (1.0 / 8.0);
596 t109 = t108 - t6 * t9 * t29 * (1.0 / 2.0);
597 t110 = t9 * t11 * t29 * (-1.0 / 2.0) - t27 * t47 * t50 * (1.0 / 8.0);
602 t115 = t5 * t6 * 2.0;
603 t116 = t8 * t11 * 2.0;
605 t118 = t29 * t117 * (1.0 / 4.0);
606 t119 = t118 - t17 * t27 * t54 * (1.0 / 8.0);
607 t120 = t8 * t28 * 2.0;
608 t121 = -t30 + t51 + t120;
609 t122 = t29 * t121 * (-1.0 / 4.0) - t27 * t33 * t54 * (1.0 / 8.0);
610 t123 = t10 * t28 * 2.0;
611 t124 = -t31 + t73 + t123;
612 t125 = t27 * t41 * t54 * (1.0 / 8.0);
613 t126 = t125 - t29 * t124 * (1.0 / 4.0);
615 t128 = t27 * t44 * t54 * (1.0 / 8.0);
616 t129 = t128 - t29 * t127 * (1.0 / 4.0);
617 t130 = t30 - t6 * t8 * 4.0;
618 t131 = t29 * t130 * (-1.0 / 4.0) - t27 * t47 * t54 * (1.0 / 8.0);
619 t132 = t31 - t6 * t10 * 4.0;
620 t133 = t29 * t132 * (-1.0 / 4.0) - t27 * t50 * t54 * (1.0 / 8.0);
621 t134 = t2 * t5 * 2.0;
622 t135 = t17 * t27 * t57 * (1.0 / 8.0);
624 t137 = t29 * t136 * (1.0 / 4.0);
625 t138 = t27 * t57 * (t32 - t37) * (1.0 / 8.0);
627 t140 = t2 * t10 * 2.0;
628 t141 = -t58 + t74 + t140;
629 t142 = t29 * t141 * (-1.0 / 4.0) - t27 * t41 * t57 * (1.0 / 8.0);
630 t143 = t51 - t5 * t11 * 4.0;
631 t144 = t29 * t143 * (-1.0 / 4.0) - t27 * t44 * t57 * (1.0 / 8.0);
633 t146 = t27 * t47 * t57 * (1.0 / 8.0);
634 t147 = t146 - t29 * t145 * (1.0 / 4.0);
635 t148 = t58 - t10 * t11 * 4.0;
636 t149 = t27 * t50 * t57 * (1.0 / 8.0);
637 t150 = t149 - t29 * t148 * (1.0 / 4.0);
638 t151 = t27 * t54 * t57 * (1.0 / 8.0);
639 t152 = t151 - t5 * t8 * t29 * (1.0 / 2.0);
642 t155 = t3 * t5 * 2.0;
643 t156 = t17 * t27 * t61 * (1.0 / 8.0);
644 t157 = t3 * t8 * 2.0;
645 t158 = t27 * t61 * (t32 - t37) * (1.0 / 8.0);
647 t160 = t29 * t159 * (1.0 / 4.0);
648 t161 = t160 - t27 * t41 * t61 * (1.0 / 8.0);
649 t162 = t73 - t5 * t9 * 4.0;
650 t163 = t29 * t162 * (-1.0 / 4.0) - t27 * t44 * t61 * (1.0 / 8.0);
651 t164 = t74 - t8 * t9 * 4.0;
652 t165 = t27 * t47 * t61 * (1.0 / 8.0);
653 t166 = t165 - t29 * t164 * (1.0 / 4.0);
655 t168 = t27 * t50 * t61 * (1.0 / 8.0);
656 t169 = t168 - t29 * t167 * (1.0 / 4.0);
657 t170 = t27 * t54 * t61 * (1.0 / 8.0);
658 t171 = t170 - t5 * t10 * t29 * (1.0 / 2.0);
659 t172 = t8 * t10 * t29 * (-1.0 / 2.0) - t27 * t57 * t61 * (1.0 / 8.0);
664 A0[0][0] = (t36 + t69) * 1.0 / sqrt(t18 + t22 + t7 * t7 + eps) * (1.0 / 4.0) - (t17 * t17) * t27 * (1.0 / 8.0);
668 A0[0][4] = t29 * (t30 + t90 - t6 * t8 * 2.0) * (1.0 / 4.0) - t17 * t27 * t47 * (1.0 / 8.0);
669 A0[0][5] = t29 * (t31 + t103 - t6 * t10 * 2.0) * (1.0 / 4.0) - t17 * t27 * t50 * (1.0 / 8.0);
671 A0[0][7] = t135 - t29 * (t30 + t134 - t6 * t8 * 2.0) * (1.0 / 4.0);
672 A0[0][8] = t156 - t29 * (t31 + t155 - t6 * t10 * 2.0) * (1.0 / 4.0);
674 A0[1][1] = t29 * (t36 + t67) * (1.0 / 4.0) - t27 * (t38 * t38) * (1.0 / 8.0);
678 A0[1][5] = t29 * (t58 + t104 - t10 * t11 * 2.0) * (1.0 / 4.0) - t27 * t33 * t50 * (1.0 / 8.0);
681 A0[1][8] = t158 - t29 * (t58 + t157 - t10 * t11 * 2.0) * (1.0 / 4.0);
684 A0[2][2] = t29 * (t67 + t69) * (1.0 / 4.0) - t27 * (t41 * t41) * (1.0 / 8.0);
694 A0[3][3] = t29 * (t101 + t114) * (1.0 / 4.0) - t27 * (t44 * t44) * (1.0 / 8.0);
700 A0[4][0] = t29 * (t30 - t51 + t90) * (1.0 / 4.0) - t17 * t27 * t47 * (1.0 / 8.0);
704 A0[4][4] = t29 * (t101 + t112) * (1.0 / 4.0) - t27 * (t47 * t47) * (1.0 / 8.0);
709 A0[5][0] = t29 * (t31 - t73 + t103) * (1.0 / 4.0) - t17 * t27 * t50 * (1.0 / 8.0);
710 A0[5][1] = t29 * (t58 - t74 + t104) * (1.0 / 4.0) - t27 * t33 * t50 * (1.0 / 8.0);
714 A0[5][5] = t29 * (t112 + t114) * (1.0 / 4.0) - t27 * (t50 * t50) * (1.0 / 8.0);
724 A0[6][6] = t29 * (t154 + t176) * (1.0 / 4.0) - t27 * (t54 * t54) * (1.0 / 8.0);
727 A0[7][0] = t135 - t29 * (t30 - t51 + t134) * (1.0 / 4.0);
734 A0[7][7] = t29 * (t154 + t174) * (1.0 / 4.0) - t27 * (t57 * t57) * (1.0 / 8.0);
736 A0[8][0] = t156 - t29 * (t31 - t73 + t155) * (1.0 / 4.0);
737 A0[8][1] = t158 - t29 * (t58 - t74 + t157) * (1.0 / 4.0);
744 A0[8][8] = t29 * (t174 + t176) * (1.0 / 4.0) - t27 * (t61 * t61) * (1.0 / 8.0);
747 void LengthEdge_f(
const vector<double> &p0,
const vector<double> &p1,
double &t0)
750 t2 = p0[1 - 1] - p1[1 - 1];
751 t3 = p0[2 - 1] - p1[2 - 1];
752 t4 = p0[3 - 1] - p1[3 - 1];
753 t0 = sqrt(t2 * t2 + t3 * t3 + t4 * t4);
756 void LengthEdge_df(
const vector<double> &p0,
const vector<double> &p1,
ArrayVec<double> &A0)
758 double t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21;
759 t2 = p0[1 - 1] - p1[1 - 1];
760 t3 = p0[2 - 1] - p1[2 - 1];
761 t4 = p0[3 - 1] - p1[3 - 1];
767 t10 = p0[1 - 1] * 2.0;
768 t11 = p1[1 - 1] * 2.0;
770 t13 = t9 * t12 * (1.0 / 2.0);
771 t14 = p0[2 - 1] * 2.0;
772 t15 = p1[2 - 1] * 2.0;
774 t17 = t9 * t16 * (1.0 / 2.0);
775 t18 = p0[3 - 1] * 2.0;
776 t19 = p1[3 - 1] * 2.0;
778 t21 = t9 * t20 * (1.0 / 2.0);
787 void LengthEdge_ddf(
const vector<double> &p0,
const vector<double> &p1,
ArrayVec<double> &A0)
789 double t10, t11, t2, t3, t4, t5, t6, t7, t8, t9, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24,
790 t25, t26, t27, t28, t29, t30, t31;
791 t10 = p0[1 - 1] * 2.0;
792 t11 = p1[1 - 1] * 2.0;
794 t3 = p0[1 - 1] - p1[1 - 1];
795 t4 = p0[2 - 1] - p1[2 - 1];
796 t5 = p0[3 - 1] - p1[3 - 1];
801 t12 = 1.0 / pow(t9, 3.0 / 2.0);
803 t14 = 1.0 / sqrt(t9);
804 t15 = p0[2 - 1] * 2.0;
805 t16 = p1[2 - 1] * 2.0;
807 t18 = p0[3 - 1] * 2.0;
808 t19 = p1[3 - 1] * 2.0;
810 t21 = t2 * t12 * t17 * (1.0 / 4.0);
812 t23 = t2 * t12 * t20 * (1.0 / 4.0);
813 t24 = t12 * t17 * t20 * (1.0 / 4.0);
815 t26 = t12 * t13 * (1.0 / 4.0);
817 t28 = t12 * t22 * (1.0 / 4.0);
819 t30 = t12 * t25 * (1.0 / 4.0);
821 A0[0][0] = t14 - t12 * t13 * (1.0 / 4.0);
822 A0[0][1] = t2 * t12 * t17 * (-1.0 / 4.0);
823 A0[0][2] = t2 * t12 * t20 * (-1.0 / 4.0);
828 A0[1][1] = t14 - t12 * t22 * (1.0 / 4.0);
829 A0[1][2] = t12 * t17 * t20 * (-1.0 / 4.0);
835 A0[2][2] = t14 - t12 * t25 * (1.0 / 4.0);
842 A0[3][3] = t14 - t26;
849 A0[4][4] = t14 - t28;
856 A0[5][5] = t14 - t30;
859 void SurfIntersect_f(
const vector<double> &p1,
const vector<double> &p2,
const vector<double> &v0,
860 const vector<double> &v01,
const vector<double> &v02,
const vector<double> &v11,
861 const vector<double> &v12,
const vector<double> &c,
double &t0)
863 double t2, t3, t4, t5, t6, t7, t14, t8, t9, t10, t16, t11, t12, t20, t13, t15, t17, t18, t19, t21, t22, t23, t24;
864 t2 = p1[2 - 1] - p2[2 - 1];
865 t3 = v01[1 - 1] + v02[1 - 1] - v11[1 - 1] - v12[1 - 1];
866 t4 = p1[1 - 1] - p2[1 - 1];
867 t5 = p1[3 - 1] - p2[3 - 1];
869 t7 = v01[2 - 1] + v02[2 - 1] - v11[2 - 1] - v12[2 - 1];
872 t9 = v01[3 - 1] + v02[3 - 1] - v11[3 - 1] - v12[3 - 1];
886 t24 = t23 - t4 * t11;
887 t0 = (p1[2 - 1] * (t19 + t5 * (t12 - t20)) + c[1 - 1] * t18 - c[2 - 1] * t22 + c[3 - 1] * t24 - p1[1 - 1] * t18 -
889 (t18 * (c[1 - 1] - v0[1 - 1]) - t22 * (c[2 - 1] - v0[2 - 1]) + t24 * (c[3 - 1] - v0[3 - 1]));
892 void SurfIntersect_df(
const vector<double> &p1,
const vector<double> &p2,
const vector<double> &v0,
893 const vector<double> &v01,
const vector<double> &v02,
const vector<double> &v11,
896 double t2, t3, t4, t5, t6, t7, t19, t8, t9, t10, t21, t11, t12, t28, t13, t33, t14, t34, t15, t16, t17, t18, t20,
897 t22, t23, t24, t25, t26, t27, t29, t30, t37, t31, t32, t35, t36, t42, t38, t39, t40, t43, t41, t44, t45, t46,
898 t55, t56, t57, t47, t48, t49, t54, t50, t53, t51, t52, t58, t59, t60, t61, t62, t63, t64, t66, t65, t67, t68,
899 t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79, t80;
900 t2 = p1[2 - 1] - p2[2 - 1];
901 t3 = v01[1 - 1] + v02[1 - 1] - v11[1 - 1] - v12[1 - 1];
902 t4 = p1[1 - 1] - p2[1 - 1];
903 t5 = p1[3 - 1] - p2[3 - 1];
905 t7 = v01[2 - 1] + v02[2 - 1] - v11[2 - 1] - v12[2 - 1];
908 t9 = v01[3 - 1] + v02[3 - 1] - v11[3 - 1] - v12[3 - 1];
924 t23 = c[1 - 1] - v0[1 - 1];
927 t26 = c[2 - 1] - v0[2 - 1];
929 t29 = c[3 - 1] - v0[3 - 1];
934 t35 = t5 * (t12 - t28);
937 t38 = t25 + t32 - t42;
942 t44 = c[1 - 1] * t24;
943 t45 = c[3 - 1] * (t30 - t37);
944 t46 = p1[2 - 1] * t36;
945 t55 = c[2 - 1] * t36;
946 t56 = p1[1 - 1] * t24;
947 t57 = p1[3 - 1] * t31;
948 t47 = t44 + t45 + t46 - t55 - t56 - t57;
955 t52 = 1.0 / pow(t25 + t32 - t42, 2.0);
956 t58 = c[2 - 1] * t14;
957 t59 = c[3 - 1] * t15;
958 t60 = c[1 - 1] * t18;
962 t64 = t61 + t62 + t63;
965 t67 = p1[2 - 1] * t40;
966 t68 = p1[3 - 1] * t41;
967 t69 = p1[1 - 1] * t65;
971 t73 = t70 + t71 + t72;
972 t74 = t47 * t52 * t73;
973 t75 = c[3 - 1] * t49;
977 t79 = t76 + t77 + t78;
978 t80 = t47 * t52 * t79;
979 A0[0][0] = -(t20 + t22 + t58 + t59 + t60 - p1[2 - 1] * t14 - p1[3 - 1] * t15 - p1[1 - 1] * t18) /
980 (t25 + t32 - t26 * (t27 + t5 * t13)) +
981 1.0 / (t38 * t38) * t47 * t64;
982 A0[0][1] = t74 + t48 * (t27 + t35 + t67 + t68 + t69 - c[2 - 1] * t40 - c[3 - 1] * t41 - c[1 - 1] * t65);
983 A0[0][2] = t80 - t48 * (t30 - t37 + t75 + c[1 - 1] * t51 + c[2 - 1] * t50 - p1[1 - 1] * t51 - p1[2 - 1] * t50 -
985 A0[0][3] = t48 * (t58 + t59 + t60 - p1[2 - 1] * t14 - p1[3 - 1] * t15 - p1[1 - 1] * t18) - t47 * t52 * t64;
986 A0[0][4] = -t74 - t48 * (t67 + t68 + t69 - c[2 - 1] * t40 - c[3 - 1] * t41 - c[1 - 1] * t65);
987 A0[0][5] = -t80 + t48 * (t75 - p1[1 - 1] * t51 - p1[2 - 1] * t50 - p1[3 - 1] * t49 + c[2 - 1] * (t12 - t54) +
988 c[1 - 1] * (t21 - t53));
991 void SurfIntersect_ddf(
const vector<double> &p1,
const vector<double> &p2,
const vector<double> &v0,
992 const vector<double> &v01,
const vector<double> &v02,
const vector<double> &v11,
995 double t2, t3, t4, t5, t6, t7, t27, t8, t9, t10, t29, t11, t12, t34, t13, t14, t15, t21, t22, t16, t17, t18, t24,
996 t25, t19, t20, t23, t26, t28, t30, t31, t32, t33, t35, t40, t36, t37, t38, t39, t49, t50, t41, t47, t42, t48,
997 t43, t44, t45, t46, t51, t52, t53, t54, t55, t56, t57, t58, t59, t77, t78, t79, t60, t65, t61, t62, t63, t66,
998 t64, t67, t68, t73, t74, t75, t69, t70, t71, t72, t76, t80, t83, t81, t84, t82, t85, t86, t87, t88, t89, t90,
999 t91, t92, t93, t94, t95, t96, t97, t98, t99, t100, t101, t102, t103, t104, t105, t106, t107, t108, t109, t110,
1000 t111, t112, t113, t114, t115, t116, t117, t118, t127, t128, t129, t119, t120, t121, t122, t125, t126, t123,
1001 t124, t130, t131, t147, t148, t149, t132, t133, t134, t135, t136, t137, t138, t139, t140, t141, t142, t143,
1002 t144, t145, t146, t150, t151, t152, t153, t154, t155, t156, t157, t158, t159, t160, t161, t162, t163, t176,
1003 t177, t164, t165, t166, t167, t168, t169, t170, t171, t172, t183, t184, t173, t174, t175, t178, t179, t180,
1004 t181, t182, t185, t186, t187, t188, t189, t190, t191, t192, t193, t194, t195, t196, t197, t198, t199;
1005 t2 = p1[2 - 1] - p2[2 - 1];
1006 t3 = v01[1 - 1] + v02[1 - 1] - v11[1 - 1] - v12[1 - 1];
1007 t4 = p1[1 - 1] - p2[1 - 1];
1008 t5 = p1[3 - 1] - p2[3 - 1];
1010 t7 = v01[2 - 1] + v02[2 - 1] - v11[2 - 1] - v12[2 - 1];
1013 t9 = v01[3 - 1] + v02[3 - 1] - v11[3 - 1] - v12[3 - 1];
1020 t14 = v01[2 - 1] * 2.0;
1021 t15 = v02[2 - 1] * 2.0;
1022 t21 = v11[2 - 1] * 2.0;
1023 t22 = v12[2 - 1] * 2.0;
1024 t16 = t14 + t15 - t21 - t22;
1025 t17 = v01[3 - 1] * 2.0;
1026 t18 = v02[3 - 1] * 2.0;
1027 t24 = v11[3 - 1] * 2.0;
1028 t25 = v12[3 - 1] * 2.0;
1029 t19 = t17 + t18 - t24 - t25;
1030 t20 = c[2 - 1] - v0[2 - 1];
1031 t23 = c[3 - 1] - v0[3 - 1];
1032 t26 = c[1 - 1] - v0[1 - 1];
1042 t38 = t5 * (t12 - t34);
1045 t50 = t32 + t37 - t49;
1046 t41 = 1.0 / (t50 * t50);
1047 t47 = t4 * t7 * 2.0;
1049 t48 = t4 * t9 * 2.0;
1057 t54 = t51 + t52 + t53;
1058 t55 = c[1 - 1] * t31;
1059 t56 = p1[2 - 1] * t39;
1060 t57 = c[2 - 1] * t42;
1061 t58 = c[3 - 1] * t43;
1062 t59 = c[1 - 1] * t46;
1063 t77 = p1[2 - 1] * t42;
1064 t78 = p1[3 - 1] * t43;
1065 t79 = p1[1 - 1] * t46;
1066 t60 = t28 + t30 + t57 + t58 + t59 - t77 - t78 - t79;
1067 t65 = t2 * t3 * 2.0;
1071 t66 = t2 * t9 * 2.0;
1073 t67 = 1.0 / pow(t32 + t37 - t49, 2.0);
1074 t68 = c[3 - 1] * (t35 - t40);
1075 t73 = c[2 - 1] * t39;
1076 t74 = p1[1 - 1] * t31;
1077 t75 = p1[3 - 1] * t36;
1078 t69 = t55 + t56 + t68 - t73 - t74 - t75;
1079 t70 = 1.0 / (t50 * t50 * t50);
1084 t83 = t3 * t5 * 2.0;
1086 t84 = t5 * t7 * 2.0;
1091 t88 = c[2 - 1] * t16;
1092 t89 = c[3 - 1] * t19;
1097 t94 = t69 * t70 * t93 * 2.0;
1098 t95 = c[2 - 1] * t3;
1099 t96 = c[1 - 1] * t7;
1100 t97 = t26 * (t27 - t65);
1101 t98 = t71 + t72 + t97;
1105 t102 = t67 * t69 * t101;
1106 t103 = p1[1 - 1] * (t27 - t65);
1107 t104 = p1[2 - 1] * t63;
1108 t105 = p1[3 - 1] * t64;
1109 t106 = t54 * t69 * t70 * t98 * 2.0;
1110 t107 = c[3 - 1] * t3;
1111 t108 = c[1 - 1] * t9;
1115 t112 = t67 * t69 * t111;
1116 t113 = c[3 - 1] * t80;
1117 t114 = t85 + t86 + t87;
1118 t115 = t54 * t69 * t70 * t114 * 2.0;
1119 t116 = p1[2 - 1] * t3;
1120 t117 = p1[1 - 1] * t7;
1121 t118 = t60 * t67 * t98;
1122 t127 = c[1 - 1] * t61;
1123 t128 = c[2 - 1] * t63;
1124 t129 = c[3 - 1] * t64;
1125 t119 = t33 + t38 + t103 + t104 + t105 - t127 - t128 - t129;
1126 t120 = t54 * t67 * t119;
1127 t121 = v01[1 - 1] * 2.0;
1128 t122 = v02[1 - 1] * 2.0;
1129 t125 = v11[1 - 1] * 2.0;
1130 t126 = v12[1 - 1] * 2.0;
1131 t123 = t121 + t122 - t125 - t126;
1132 t124 = t5 * t9 * 2.0;
1133 t130 = c[1 - 1] * t81;
1134 t131 = c[2 - 1] * t82;
1135 t147 = p1[3 - 1] * t80;
1136 t148 = p1[1 - 1] * t81;
1137 t149 = p1[2 - 1] * t82;
1138 t132 = t35 - t40 + t113 + t130 + t131 - t147 - t148 - t149;
1139 t133 = t57 + t58 + t59 - t77 - t78 - t79;
1140 t134 = c[1 - 1] * t123;
1144 t138 = t69 * t70 * t137 * 2.0;
1145 t139 = c[3 - 1] * t7;
1146 t140 = c[2 - 1] * t9;
1150 t144 = t67 * t69 * t143;
1151 t145 = c[1 - 1] * (t29 - t83);
1152 t146 = c[2 - 1] * (t12 - t84);
1153 t150 = p1[3 - 1] * t3;
1154 t151 = p1[1 - 1] * t9;
1155 t152 = t60 * t67 * t114;
1156 t153 = p1[3 - 1] * t7;
1157 t154 = p1[2 - 1] * t9;
1158 t155 = t67 * t119 * (t85 + t86 + t87);
1159 t156 = t69 * t70 * t98 * (t85 + t86 + t87) * 2.0;
1160 t157 = t3 * t4 * 2.0;
1161 t158 = t2 * t7 * 2.0;
1162 t159 = t85 + t86 + t87;
1163 t160 = t103 + t104 + t105 - t127 - t128 - t129;
1165 t162 = t113 + t145 + t146 - t147 - t148 - t149;
1166 t163 = t85 + t86 + t87;
1167 t176 = p1[2 - 1] * t16;
1168 t177 = p1[3 - 1] * t19;
1169 t164 = t44 + t45 + t88 + t89 - t176 - t177;
1170 t165 = t67 * t69 * t92;
1171 t166 = t54 * t60 * t67;
1172 t167 = t54 * t67 * t133;
1173 t168 = -t94 + t165 + t166 + t167 - t76 * t164;
1174 t169 = t6 - t47 - t95 - t96 + t116 + t117;
1175 t170 = t67 * t98 * t133;
1176 t171 = -t102 - t106 - t120 + t170 - t76 * t169;
1177 t172 = t10 - t48 - t107 - t108 + t150 + t151;
1178 t183 = p1[1 - 1] * (t29 - t83);
1179 t184 = p1[2 - 1] * (t12 - t84);
1180 t173 = t54 * t67 * (t35 - t40 + t113 + t130 + t131 - t147 - t183 - t184);
1181 t174 = t67 * t133 * (t85 + t86 + t87);
1182 t175 = -t112 - t115 + t173 + t174 - t76 * t172;
1183 t178 = t54 * t69 * t70 * (t85 + t86 + t87) * 2.0;
1184 t179 = t27 - t65 - t95 - t96 + t116 + t117;
1185 t180 = t54 * t67 * t160;
1186 t181 = t67 * t69 * t136;
1187 t182 = t34 - t66 - t139 - t140 + t153 + t154;
1188 t185 = t95 + t96 - t116 - t117;
1189 t186 = t102 + t106 - t170 + t180 - t76 * t185;
1190 t187 = t67 * t98 * t162;
1191 t188 = t29 - t83 - t107 - t108 + t150 + t151;
1192 t189 = t12 - t84 - t139 - t140 + t153 + t154;
1193 t190 = -t144 + t187 - t76 * t189 - t67 * t114 * t119 - t69 * t70 * t98 * t114 * 2.0;
1194 t191 = t67 * t69 * t161;
1195 t192 = t67 * t162 * (t85 + t86 + t87);
1196 t193 = t85 + t86 + t87;
1197 t194 = t107 + t108 - t150 - t151;
1198 t195 = t54 * t67 * t162;
1199 t196 = t139 + t140 - t153 - t154;
1200 t197 = t67 * t160 * (t85 + t86 + t87);
1201 t198 = t144 + t156 - t187 + t197 - t76 * t196;
1202 t199 = t85 + t86 + t87;
1204 (t88 + t89 + t124 + t158 - p1[2 - 1] * t16 - p1[3 - 1] * t19) / (t32 + t37 - t20 * (t33 + t5 * t13)) -
1205 t41 * t92 * (t55 + t56 + c[3 - 1] * t36 - c[2 - 1] * t39 - p1[1 - 1] * t31 - p1[3 - 1] * t36) -
1206 t41 * t54 * t60 * 2.0;
1207 A0[0][1] = t102 + t106 + t120 - t76 * (t6 + t27 + t95 + t96 - p1[2 - 1] * t3 - p1[1 - 1] * t7) -
1208 t41 * t60 * (t71 + t72 + t26 * t61);
1209 A0[0][2] = t112 + t115 - t76 * (t10 + t29 + t107 + t108 - p1[3 - 1] * t3 - p1[1 - 1] * t9) - t60 * t67 * t114 -
1212 A0[0][4] = -t102 - t106 + t118 - t76 * t179 -
1213 t54 * t67 * (t103 + t104 + t105 - c[1 - 1] * t61 - c[2 - 1] * t63 - c[3 - 1] * t64);
1214 A0[0][5] = -t112 - t115 + t152 - t76 * t188 +
1215 t54 * t67 * (t113 + t145 + t146 - p1[1 - 1] * t81 - p1[3 - 1] * t80 - p1[2 - 1] * t82);
1216 A0[1][0] = t102 + t106 - t118 + t120 - t76 * (t6 + t27 + t95 + t96 - t116 - t117);
1217 A0[1][1] = t138 + t76 * (t89 + t124 + t134 + t157 - p1[3 - 1] * t19 - p1[1 - 1] * t123) - t67 * t69 * t136 +
1218 t67 * t98 * t119 * 2.0;
1220 t144 + t155 + t156 - t76 * (t12 + t34 + t139 + t140 - p1[3 - 1] * t7 - p1[2 - 1] * t9) - t67 * t98 * t132;
1222 A0[1][4] = -t138 + t181 - t76 * (t45 + t62 + t89 + t134 - p1[3 - 1] * t19 - p1[1 - 1] * t123) - t67 * t98 * t119 -
1225 A0[2][0] = t112 - t152 + t178 - t76 * (t10 + t29 + t107 + t108 - t150 - t151) - t54 * t67 * t132;
1226 A0[2][1] = t144 + t155 + t156 - t76 * (t12 + t34 + t139 + t140 - t153 - t154) - t67 * t98 * t132;
1227 A0[2][2] = t76 * (t88 + t134 + t157 + t158 - p1[2 - 1] * t16 - p1[1 - 1] * t123) + t69 * t70 * (t159 * t159) * 2.0 -
1228 t67 * t69 * t161 - t67 * t114 * t132 * 2.0;
1230 A0[2][4] = -t144 - t76 * t182 +
1231 t67 * t98 * (t35 - t40 + t113 + t130 + t131 - t147 - p1[2 - 1] * (t12 - t84) - p1[1 - 1] * (t29 - t83)) -
1232 t67 * t114 * t160 - t69 * t70 * t98 * t114 * 2.0;
1233 A0[2][5] = t191 + t192 - t76 * (t44 + t62 + t88 + t134 - p1[2 - 1] * t16 - p1[1 - 1] * t123) -
1234 t69 * t70 * (t163 * t163) * 2.0 +
1235 t67 * (t85 + t86 + t87) *
1236 (t35 - t40 + t113 + t130 + t131 - t147 - p1[2 - 1] * (t12 - t84) - p1[1 - 1] * (t29 - t83));
1240 A0[3][3] = t94 - t165 + t76 * (t88 + t89 - t176 - t177) - t54 * t67 * t133 * 2.0;
1242 A0[3][5] = t112 + t178 - t76 * t194 - t54 * t67 * t162 - t67 * t114 * t133;
1243 A0[4][0] = -t102 - t106 + t118 - t180 - t76 * t179;
1245 -t138 + t181 - t76 * (t45 + t62 + t89 + t134 - t177 - p1[1 - 1] * t123) - t67 * t98 * t119 - t67 * t98 * t160;
1246 A0[4][2] = -t144 - t76 * t182 - t67 * t114 * t160 +
1247 t67 * t98 * (t35 - t40 + t113 + t130 + t131 - t147 - t183 - t184) - t69 * t70 * t98 * t114 * 2.0;
1249 A0[4][4] = t138 - t181 + t76 * (t89 + t134 - t177 - p1[1 - 1] * t123) + t67 * t98 * t160 * 2.0;
1251 A0[5][0] = -t112 - t115 + t195 - t76 * t188 + t60 * t67 * (t85 + t86 + t87);
1253 A0[5][2] = t191 + t192 - t76 * (t44 + t62 + t88 + t134 - t176 - p1[1 - 1] * t123) +
1254 t67 * (t85 + t86 + t87) * (t35 - t40 + t113 + t130 + t131 - t147 - t183 - t184) -
1255 t69 * t70 * (t193 * t193) * 2.0;
1256 A0[5][3] = t112 + t178 - t195 - t76 * t194 - t67 * t114 * t133;
1258 A0[5][5] = -t191 + t76 * (t88 + t134 - t176 - p1[1 - 1] * t123) + t69 * t70 * (t199 * t199) * 2.0 -
1259 t67 * t114 * t162 * 2.0;
1262 void SurfCentroid4_f(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
const double totD,
1263 const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
ArrayVec<double> &A0)
1267 A0[0][0] = X_dot_d * t2;
1268 A0[0][1] = Y_dot_d * t2;
1269 A0[0][2] = Z_dot_d * t2;
1272 void SurfCentroid4_df(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
const double totD,
1273 const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
ArrayVec<double> &A0)
1275 double t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t28, t18, t19, t49, t20, t21, t22,
1276 t23, t24, t25, t26, t27, t29, t30, t31, t32, t33, t34, t35, t36, t37, t45, t38, t39, t40, t41, t42, t43, t44,
1277 t46, t47, t48, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61, t62, t63, t64, t65, t66, t69, t67,
1278 t74, t68, t70, t71, t73, t72, t75, t76, t77, t78, t81, t79, t86, t80, t82, t83, t85, t84, t87, t88, t89, t90,
1279 t91, t92, t93, t94, t95, t96, t97, t98, t99, t100, t101, t102, t103, t104, t105, t106, t107, t108, t109, t110,
1280 t111, t112, t113, t114, t115, t116, t117, t118, t119, t120, t121, t122, t123, t124, t125, t126, t127, t128,
1281 t129, t130, t131, t132, t133, t134, t135, t136, t137, t138, t139;
1282 t2 = x[1 - 1] - x[2 - 1];
1283 t3 = y[1 - 1] - y[2 - 1];
1284 t4 = z[1 - 1] - z[2 - 1];
1285 t5 = x[1 - 1] - x[4 - 1];
1286 t6 = y[1 - 1] - y[4 - 1];
1287 t7 = z[1 - 1] - z[4 - 1];
1291 t11 = t8 + t9 + t10 + rsvsmath_automatic_eps_centre2;
1292 t12 = x[1 - 1] * 2.0;
1293 t13 = x[1 - 1] * (1.0 / 2.0);
1297 t17 = t14 + t15 + t16 + rsvsmath_automatic_eps_centre2;
1298 t28 = x[2 - 1] * 2.0;
1300 t19 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t11);
1301 t49 = x[4 - 1] * 2.0;
1303 t21 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t17);
1306 t24 = t23 * (1.0 / 2.0);
1307 t25 = x[2 - 1] - x[3 - 1];
1308 t26 = y[2 - 1] - y[3 - 1];
1309 t27 = z[2 - 1] - z[3 - 1];
1310 t29 = x[2 - 1] * (1.0 / 2.0);
1312 t31 = t18 * t19 * t30 * (1.0 / 2.0);
1316 t35 = t32 + t33 + t34 + rsvsmath_automatic_eps_centre2;
1317 t36 = 1.0 / (totD * totD);
1318 t37 = t18 * t19 * (1.0 / 2.0);
1319 t45 = x[3 - 1] * 2.0;
1321 t39 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t35);
1323 t41 = t40 * (1.0 / 2.0);
1324 t42 = x[3 - 1] - x[4 - 1];
1325 t43 = y[3 - 1] - y[4 - 1];
1326 t44 = z[3 - 1] - z[4 - 1];
1327 t46 = x[3 - 1] * (1.0 / 2.0);
1329 t48 = t38 * t39 * t47 * (1.0 / 2.0);
1330 t50 = x[4 - 1] * (1.0 / 2.0);
1334 t54 = t51 + t52 + t53 + rsvsmath_automatic_eps_centre2;
1336 t56 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t54);
1338 t58 = t57 * (1.0 / 2.0);
1340 t60 = t59 * (1.0 / 2.0);
1342 t62 = t20 * t21 * t61 * (1.0 / 2.0);
1344 t64 = t55 * t56 * t63 * (1.0 / 2.0);
1345 t65 = t20 * t21 * (1.0 / 2.0);
1346 t66 = y[1 - 1] * 2.0;
1347 t69 = y[2 - 1] * 2.0;
1349 t74 = y[4 - 1] * 2.0;
1351 t70 = t19 * t30 * t67 * (1.0 / 2.0);
1352 t71 = t19 * t67 * (1.0 / 2.0);
1353 t73 = y[3 - 1] * 2.0;
1356 t76 = t21 * t61 * t68 * (1.0 / 2.0);
1357 t77 = t21 * t68 * (1.0 / 2.0);
1358 t78 = z[1 - 1] * 2.0;
1359 t81 = z[2 - 1] * 2.0;
1361 t86 = z[4 - 1] * 2.0;
1363 t82 = t19 * t30 * t79 * (1.0 / 2.0);
1364 t83 = t19 * t79 * (1.0 / 2.0);
1365 t85 = z[3 - 1] * 2.0;
1368 t88 = t21 * t61 * t80 * (1.0 / 2.0);
1369 t89 = t21 * t80 * (1.0 / 2.0);
1370 t90 = y[1 - 1] * (1.0 / 2.0);
1372 t92 = y[2 - 1] * (1.0 / 2.0);
1374 t94 = t18 * t19 * t93 * (1.0 / 2.0);
1375 t95 = t38 * t39 * (1.0 / 2.0);
1376 t96 = y[3 - 1] * (1.0 / 2.0);
1378 t98 = y[4 - 1] * (1.0 / 2.0);
1379 t99 = t55 * t56 * (1.0 / 2.0);
1381 t101 = t20 * t21 * t100 * (1.0 / 2.0);
1385 t105 = t19 * t67 * t93 * (1.0 / 2.0);
1386 t106 = t39 * t72 * (1.0 / 2.0);
1387 t107 = t39 * t72 * t97 * (1.0 / 2.0);
1388 t108 = t56 * t75 * (1.0 / 2.0);
1389 t109 = t21 * t68 * t100 * (1.0 / 2.0);
1390 t110 = t56 * t75 * t102 * (1.0 / 2.0);
1393 t113 = t19 * t79 * t93 * (1.0 / 2.0);
1394 t114 = t39 * t84 * (1.0 / 2.0);
1395 t115 = t56 * t87 * (1.0 / 2.0);
1396 t116 = t21 * t80 * t100 * (1.0 / 2.0);
1398 t118 = z[1 - 1] * (1.0 / 2.0);
1399 t119 = z[2 - 1] * (1.0 / 2.0);
1401 t121 = t18 * t19 * t120 * (1.0 / 2.0);
1403 t123 = z[3 - 1] * (1.0 / 2.0);
1405 t125 = z[4 - 1] * (1.0 / 2.0);
1408 t128 = t20 * t21 * t127 * (1.0 / 2.0);
1410 t130 = t19 * t67 * t120 * (1.0 / 2.0);
1413 t133 = t21 * t68 * t127 * (1.0 / 2.0);
1414 t134 = t19 * t79 * t120 * (1.0 / 2.0);
1416 t136 = t39 * t84 * t124 * (1.0 / 2.0);
1418 t138 = t21 * t80 * t127 * (1.0 / 2.0);
1419 t139 = t56 * t87 * t129 * (1.0 / 2.0);
1420 A0[0][0] = t22 * (t24 + t31 + t58 + t62) - X_dot_d * t36 * t91;
1421 A0[0][1] = t22 * (t24 - t31 + t41 + t48) + X_dot_d * t36 * (t37 - t38 * t39 * (1.0 / 2.0));
1422 A0[0][2] = t22 * (t41 - t48 + t60 + t64) + X_dot_d * t36 * (t95 - t55 * t56 * (1.0 / 2.0));
1423 A0[0][3] = t22 * (t58 + t60 - t62 - t64) + X_dot_d * t36 * t103;
1424 A0[0][4] = t22 * (t70 + t76) - X_dot_d * t36 * t104;
1425 A0[0][5] = -t22 * (t70 - t39 * t47 * t72 * (1.0 / 2.0)) + X_dot_d * t36 * (t71 - t39 * t72 * (1.0 / 2.0));
1426 A0[0][6] = -t22 * (t39 * t47 * t72 * (1.0 / 2.0) - t56 * t63 * t75 * (1.0 / 2.0)) +
1427 X_dot_d * t36 * (t106 - t56 * t75 * (1.0 / 2.0));
1428 A0[0][7] = -t22 * (t76 + t56 * t63 * t75 * (1.0 / 2.0)) + X_dot_d * t36 * t111;
1429 A0[0][8] = t22 * (t82 + t88) - X_dot_d * t36 * t112;
1430 A0[0][9] = -t22 * (t82 - t39 * t47 * t84 * (1.0 / 2.0)) + X_dot_d * t36 * (t83 - t39 * t84 * (1.0 / 2.0));
1431 A0[0][10] = -t22 * (t39 * t47 * t84 * (1.0 / 2.0) - t56 * t63 * t87 * (1.0 / 2.0)) +
1432 X_dot_d * t36 * (t114 - t56 * t87 * (1.0 / 2.0));
1433 A0[0][11] = -t22 * (t88 + t56 * t63 * t87 * (1.0 / 2.0)) + X_dot_d * t36 * t117;
1434 A0[1][0] = t22 * (t94 + t101) - Y_dot_d * t36 * t91;
1435 A0[1][1] = -t22 * (t94 - t38 * t39 * t97 * (1.0 / 2.0)) + Y_dot_d * t36 * t122;
1436 A0[1][2] = -t22 * (t38 * t39 * t97 * (1.0 / 2.0) - t55 * t56 * t102 * (1.0 / 2.0)) + Y_dot_d * t36 * t126;
1437 A0[1][3] = -t22 * (t101 + t55 * t56 * t102 * (1.0 / 2.0)) + Y_dot_d * t36 * t103;
1438 A0[1][4] = t22 * (t24 + t58 + t105 + t109) - Y_dot_d * t36 * t104;
1439 A0[1][5] = t22 * (t24 + t41 - t105 + t107) + Y_dot_d * t36 * t131;
1440 A0[1][6] = t22 * (t41 + t60 - t107 + t110) + Y_dot_d * t36 * t132;
1441 A0[1][7] = t22 * (t58 + t60 - t109 - t110) + Y_dot_d * t36 * t111;
1442 A0[1][8] = t22 * (t113 + t116) - Y_dot_d * t36 * t112;
1443 A0[1][9] = -t22 * (t113 - t39 * t84 * t97 * (1.0 / 2.0)) + Y_dot_d * t36 * t135;
1444 A0[1][10] = -t22 * (t39 * t84 * t97 * (1.0 / 2.0) - t56 * t87 * t102 * (1.0 / 2.0)) + Y_dot_d * t36 * t137;
1445 A0[1][11] = -t22 * (t116 + t56 * t87 * t102 * (1.0 / 2.0)) + Y_dot_d * t36 * t117;
1446 A0[2][0] = t22 * (t121 + t128) - Z_dot_d * t36 * t91;
1447 A0[2][1] = -t22 * (t121 - t38 * t39 * t124 * (1.0 / 2.0)) + Z_dot_d * t36 * t122;
1448 A0[2][2] = -t22 * (t38 * t39 * t124 * (1.0 / 2.0) - t55 * t56 * t129 * (1.0 / 2.0)) + Z_dot_d * t36 * t126;
1449 A0[2][3] = -t22 * (t128 + t55 * t56 * t129 * (1.0 / 2.0)) + Z_dot_d * t36 * t103;
1450 A0[2][4] = t22 * (t130 + t133) - Z_dot_d * t36 * t104;
1451 A0[2][5] = -t22 * (t130 - t39 * t72 * t124 * (1.0 / 2.0)) + Z_dot_d * t36 * t131;
1452 A0[2][6] = -t22 * (t39 * t72 * t124 * (1.0 / 2.0) - t56 * t75 * t129 * (1.0 / 2.0)) + Z_dot_d * t36 * t132;
1453 A0[2][7] = -t22 * (t133 + t56 * t75 * t129 * (1.0 / 2.0)) + Z_dot_d * t36 * t111;
1454 A0[2][8] = t22 * (t24 + t58 + t134 + t138) - Z_dot_d * t36 * t112;
1455 A0[2][9] = t22 * (t24 + t41 - t134 + t136) + Z_dot_d * t36 * t135;
1456 A0[2][10] = t22 * (t41 + t60 - t136 + t139) + Z_dot_d * t36 * t137;
1457 A0[2][11] = t22 * (t58 + t60 - t138 - t139) + Z_dot_d * t36 * t117;
1460 void SurfCentroid5_f(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
const double totD,
1461 const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
ArrayVec<double> &A0)
1465 A0[0][0] = X_dot_d * t2;
1466 A0[0][1] = Y_dot_d * t2;
1467 A0[0][2] = Z_dot_d * t2;
1470 void SurfCentroid5_df(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
const double totD,
1471 const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
ArrayVec<double> &A0)
1473 double t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t28, t18, t19, t64, t20, t21, t22,
1474 t23, t24, t25, t26, t27, t29, t30, t31, t32, t33, t34, t35, t36, t37, t45, t38, t39, t40, t41, t42, t43, t44,
1475 t46, t47, t48, t49, t50, t51, t52, t60, t53, t54, t55, t56, t57, t58, t59, t61, t62, t63, t65, t66, t67, t68,
1476 t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79, t80, t81, t84, t82, t91, t83, t85, t86, t88, t87, t90,
1477 t89, t92, t93, t94, t95, t98, t96, t105, t97, t99, t100, t102, t101, t104, t103, t106, t107, t108, t109, t110,
1478 t111, t112, t113, t114, t115, t116, t117, t118, t119, t120, t121, t122, t123, t124, t125, t126, t127, t128,
1479 t129, t130, t131, t132, t133, t134, t135, t136, t137, t138, t139, t140, t141, t142, t143, t144, t145, t146,
1480 t147, t148, t149, t150, t151, t152, t153, t154, t155, t156, t157, t158, t159, t160, t161, t162, t163, t164,
1481 t165, t166, t167, t168, t169, t170;
1482 t2 = x[1 - 1] - x[2 - 1];
1483 t3 = y[1 - 1] - y[2 - 1];
1484 t4 = z[1 - 1] - z[2 - 1];
1485 t5 = x[1 - 1] - x[5 - 1];
1486 t6 = y[1 - 1] - y[5 - 1];
1487 t7 = z[1 - 1] - z[5 - 1];
1491 t11 = t8 + t9 + t10 + rsvsmath_automatic_eps_centre2;
1492 t12 = x[1 - 1] * 2.0;
1493 t13 = x[1 - 1] * (1.0 / 2.0);
1497 t17 = t14 + t15 + t16 + rsvsmath_automatic_eps_centre2;
1498 t28 = x[2 - 1] * 2.0;
1500 t19 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t11);
1501 t64 = x[5 - 1] * 2.0;
1503 t21 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t17);
1506 t24 = t23 * (1.0 / 2.0);
1507 t25 = x[2 - 1] - x[3 - 1];
1508 t26 = y[2 - 1] - y[3 - 1];
1509 t27 = z[2 - 1] - z[3 - 1];
1510 t29 = x[2 - 1] * (1.0 / 2.0);
1512 t31 = t18 * t19 * t30 * (1.0 / 2.0);
1516 t35 = t32 + t33 + t34 + rsvsmath_automatic_eps_centre2;
1517 t36 = 1.0 / (totD * totD);
1518 t37 = t18 * t19 * (1.0 / 2.0);
1519 t45 = x[3 - 1] * 2.0;
1521 t39 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t35);
1523 t41 = t40 * (1.0 / 2.0);
1524 t42 = x[3 - 1] - x[4 - 1];
1525 t43 = y[3 - 1] - y[4 - 1];
1526 t44 = z[3 - 1] - z[4 - 1];
1527 t46 = x[3 - 1] * (1.0 / 2.0);
1529 t48 = t38 * t39 * t47 * (1.0 / 2.0);
1533 t52 = t49 + t50 + t51 + rsvsmath_automatic_eps_centre2;
1534 t60 = x[4 - 1] * 2.0;
1536 t54 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t52);
1538 t56 = t55 * (1.0 / 2.0);
1539 t57 = x[4 - 1] - x[5 - 1];
1540 t58 = y[4 - 1] - y[5 - 1];
1541 t59 = z[4 - 1] - z[5 - 1];
1542 t61 = x[4 - 1] * (1.0 / 2.0);
1544 t63 = t53 * t54 * t62 * (1.0 / 2.0);
1545 t65 = x[5 - 1] * (1.0 / 2.0);
1549 t69 = t66 + t67 + t68 + rsvsmath_automatic_eps_centre2;
1551 t71 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t69);
1553 t73 = t72 * (1.0 / 2.0);
1555 t75 = t74 * (1.0 / 2.0);
1557 t77 = t20 * t21 * t76 * (1.0 / 2.0);
1559 t79 = t70 * t71 * t78 * (1.0 / 2.0);
1560 t80 = t20 * t21 * (1.0 / 2.0);
1561 t81 = y[1 - 1] * 2.0;
1562 t84 = y[2 - 1] * 2.0;
1564 t91 = y[5 - 1] * 2.0;
1566 t85 = t19 * t30 * t82 * (1.0 / 2.0);
1567 t86 = t19 * t82 * (1.0 / 2.0);
1568 t88 = y[3 - 1] * 2.0;
1570 t90 = y[4 - 1] * 2.0;
1573 t93 = t21 * t76 * t83 * (1.0 / 2.0);
1574 t94 = t21 * t83 * (1.0 / 2.0);
1575 t95 = z[1 - 1] * 2.0;
1576 t98 = z[2 - 1] * 2.0;
1578 t105 = z[5 - 1] * 2.0;
1580 t99 = t19 * t30 * t96 * (1.0 / 2.0);
1581 t100 = t19 * t96 * (1.0 / 2.0);
1582 t102 = z[3 - 1] * 2.0;
1584 t104 = z[4 - 1] * 2.0;
1587 t107 = t21 * t76 * t97 * (1.0 / 2.0);
1588 t108 = t21 * t97 * (1.0 / 2.0);
1589 t109 = y[1 - 1] * (1.0 / 2.0);
1591 t111 = y[2 - 1] * (1.0 / 2.0);
1593 t113 = t18 * t19 * t112 * (1.0 / 2.0);
1594 t114 = t38 * t39 * (1.0 / 2.0);
1595 t115 = y[3 - 1] * (1.0 / 2.0);
1597 t117 = t53 * t54 * (1.0 / 2.0);
1598 t118 = y[4 - 1] * (1.0 / 2.0);
1600 t120 = y[5 - 1] * (1.0 / 2.0);
1601 t121 = t70 * t71 * (1.0 / 2.0);
1603 t123 = t20 * t21 * t122 * (1.0 / 2.0);
1607 t127 = t19 * t82 * t112 * (1.0 / 2.0);
1608 t128 = t39 * t87 * (1.0 / 2.0);
1609 t129 = t39 * t87 * t116 * (1.0 / 2.0);
1610 t130 = t54 * t89 * (1.0 / 2.0);
1611 t131 = t54 * t89 * t119 * (1.0 / 2.0);
1612 t132 = t71 * t92 * (1.0 / 2.0);
1613 t133 = t21 * t83 * t122 * (1.0 / 2.0);
1614 t134 = t71 * t92 * t124 * (1.0 / 2.0);
1617 t137 = t19 * t96 * t112 * (1.0 / 2.0);
1618 t138 = t39 * t101 * (1.0 / 2.0);
1619 t139 = t54 * t103 * (1.0 / 2.0);
1620 t140 = t71 * t106 * (1.0 / 2.0);
1621 t141 = t21 * t97 * t122 * (1.0 / 2.0);
1623 t143 = z[1 - 1] * (1.0 / 2.0);
1624 t144 = z[2 - 1] * (1.0 / 2.0);
1626 t146 = t18 * t19 * t145 * (1.0 / 2.0);
1628 t148 = z[3 - 1] * (1.0 / 2.0);
1631 t151 = z[4 - 1] * (1.0 / 2.0);
1633 t153 = z[5 - 1] * (1.0 / 2.0);
1636 t156 = t20 * t21 * t155 * (1.0 / 2.0);
1638 t158 = t19 * t82 * t145 * (1.0 / 2.0);
1642 t162 = t21 * t83 * t155 * (1.0 / 2.0);
1643 t163 = t19 * t96 * t145 * (1.0 / 2.0);
1645 t165 = t39 * t101 * t149 * (1.0 / 2.0);
1647 t167 = t54 * t103 * t152 * (1.0 / 2.0);
1649 t169 = t21 * t97 * t155 * (1.0 / 2.0);
1650 t170 = t71 * t106 * t157 * (1.0 / 2.0);
1651 A0[0][0] = t22 * (t24 + t31 + t73 + t77) - X_dot_d * t36 * t110;
1652 A0[0][1] = t22 * (t24 - t31 + t41 + t48) + X_dot_d * t36 * (t37 - t38 * t39 * (1.0 / 2.0));
1653 A0[0][2] = t22 * (t41 - t48 + t56 + t63) + X_dot_d * t36 * (t114 - t53 * t54 * (1.0 / 2.0));
1654 A0[0][3] = t22 * (t56 - t63 + t75 + t79) + X_dot_d * t36 * (t117 - t70 * t71 * (1.0 / 2.0));
1655 A0[0][4] = t22 * (t73 + t75 - t77 - t79) + X_dot_d * t36 * t125;
1656 A0[0][5] = t22 * (t85 + t93) - X_dot_d * t36 * t126;
1657 A0[0][6] = -t22 * (t85 - t39 * t47 * t87 * (1.0 / 2.0)) + X_dot_d * t36 * (t86 - t39 * t87 * (1.0 / 2.0));
1658 A0[0][7] = -t22 * (t39 * t47 * t87 * (1.0 / 2.0) - t54 * t62 * t89 * (1.0 / 2.0)) +
1659 X_dot_d * t36 * (t128 - t54 * t89 * (1.0 / 2.0));
1660 A0[0][8] = -t22 * (t54 * t62 * t89 * (1.0 / 2.0) - t71 * t78 * t92 * (1.0 / 2.0)) +
1661 X_dot_d * t36 * (t130 - t71 * t92 * (1.0 / 2.0));
1662 A0[0][9] = -t22 * (t93 + t71 * t78 * t92 * (1.0 / 2.0)) + X_dot_d * t36 * t135;
1663 A0[0][10] = t22 * (t99 + t107) - X_dot_d * t36 * t136;
1664 A0[0][11] = -t22 * (t99 - t39 * t47 * t101 * (1.0 / 2.0)) + X_dot_d * t36 * (t100 - t39 * t101 * (1.0 / 2.0));
1665 A0[0][12] = -t22 * (t39 * t47 * t101 * (1.0 / 2.0) - t54 * t62 * t103 * (1.0 / 2.0)) +
1666 X_dot_d * t36 * (t138 - t54 * t103 * (1.0 / 2.0));
1667 A0[0][13] = -t22 * (t54 * t62 * t103 * (1.0 / 2.0) - t71 * t78 * t106 * (1.0 / 2.0)) +
1668 X_dot_d * t36 * (t139 - t71 * t106 * (1.0 / 2.0));
1669 A0[0][14] = -t22 * (t107 + t71 * t78 * t106 * (1.0 / 2.0)) + X_dot_d * t36 * t142;
1670 A0[1][0] = t22 * (t113 + t123) - Y_dot_d * t36 * t110;
1671 A0[1][1] = -t22 * (t113 - t38 * t39 * t116 * (1.0 / 2.0)) + Y_dot_d * t36 * t147;
1672 A0[1][2] = -t22 * (t38 * t39 * t116 * (1.0 / 2.0) - t53 * t54 * t119 * (1.0 / 2.0)) + Y_dot_d * t36 * t150;
1673 A0[1][3] = -t22 * (t53 * t54 * t119 * (1.0 / 2.0) - t70 * t71 * t124 * (1.0 / 2.0)) + Y_dot_d * t36 * t154;
1674 A0[1][4] = -t22 * (t123 + t70 * t71 * t124 * (1.0 / 2.0)) + Y_dot_d * t36 * t125;
1675 A0[1][5] = t22 * (t24 + t73 + t127 + t133) - Y_dot_d * t36 * t126;
1676 A0[1][6] = t22 * (t24 + t41 - t127 + t129) + Y_dot_d * t36 * t159;
1677 A0[1][7] = t22 * (t41 + t56 - t129 + t131) + Y_dot_d * t36 * t160;
1678 A0[1][8] = t22 * (t56 + t75 - t131 + t134) + Y_dot_d * t36 * t161;
1679 A0[1][9] = t22 * (t73 + t75 - t133 - t134) + Y_dot_d * t36 * t135;
1680 A0[1][10] = t22 * (t137 + t141) - Y_dot_d * t36 * t136;
1681 A0[1][11] = -t22 * (t137 - t39 * t101 * t116 * (1.0 / 2.0)) + Y_dot_d * t36 * t164;
1682 A0[1][12] = -t22 * (t39 * t101 * t116 * (1.0 / 2.0) - t54 * t103 * t119 * (1.0 / 2.0)) + Y_dot_d * t36 * t166;
1683 A0[1][13] = -t22 * (t54 * t103 * t119 * (1.0 / 2.0) - t71 * t106 * t124 * (1.0 / 2.0)) + Y_dot_d * t36 * t168;
1684 A0[1][14] = -t22 * (t141 + t71 * t106 * t124 * (1.0 / 2.0)) + Y_dot_d * t36 * t142;
1685 A0[2][0] = t22 * (t146 + t156) - Z_dot_d * t36 * t110;
1686 A0[2][1] = -t22 * (t146 - t38 * t39 * t149 * (1.0 / 2.0)) + Z_dot_d * t36 * t147;
1687 A0[2][2] = -t22 * (t38 * t39 * t149 * (1.0 / 2.0) - t53 * t54 * t152 * (1.0 / 2.0)) + Z_dot_d * t36 * t150;
1688 A0[2][3] = -t22 * (t53 * t54 * t152 * (1.0 / 2.0) - t70 * t71 * t157 * (1.0 / 2.0)) + Z_dot_d * t36 * t154;
1689 A0[2][4] = -t22 * (t156 + t70 * t71 * t157 * (1.0 / 2.0)) + Z_dot_d * t36 * t125;
1690 A0[2][5] = t22 * (t158 + t162) - Z_dot_d * t36 * t126;
1691 A0[2][6] = -t22 * (t158 - t39 * t87 * t149 * (1.0 / 2.0)) + Z_dot_d * t36 * t159;
1692 A0[2][7] = -t22 * (t39 * t87 * t149 * (1.0 / 2.0) - t54 * t89 * t152 * (1.0 / 2.0)) + Z_dot_d * t36 * t160;
1693 A0[2][8] = -t22 * (t54 * t89 * t152 * (1.0 / 2.0) - t71 * t92 * t157 * (1.0 / 2.0)) + Z_dot_d * t36 * t161;
1694 A0[2][9] = -t22 * (t162 + t71 * t92 * t157 * (1.0 / 2.0)) + Z_dot_d * t36 * t135;
1695 A0[2][10] = t22 * (t24 + t73 + t163 + t169) - Z_dot_d * t36 * t136;
1696 A0[2][11] = t22 * (t24 + t41 - t163 + t165) + Z_dot_d * t36 * t164;
1697 A0[2][12] = t22 * (t41 + t56 - t165 + t167) + Z_dot_d * t36 * t166;
1698 A0[2][13] = t22 * (t56 + t75 - t167 + t170) + Z_dot_d * t36 * t168;
1699 A0[2][14] = t22 * (t73 + t75 - t169 - t170) + Z_dot_d * t36 * t142;
1702 void SurfCentroid6_f(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
const double totD,
1703 const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
ArrayVec<double> &A0)
1707 A0[0][0] = X_dot_d * t2;
1708 A0[0][1] = Y_dot_d * t2;
1709 A0[0][2] = Z_dot_d * t2;
1712 void SurfCentroid6_df(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
const double totD,
1713 const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
ArrayVec<double> &A0)
1715 double t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t28, t18, t19, t79, t20, t21, t22,
1716 t23, t24, t25, t26, t27, t29, t30, t31, t32, t33, t34, t35, t36, t37, t45, t38, t39, t40, t41, t42, t43, t44,
1717 t46, t47, t48, t49, t50, t51, t52, t60, t53, t54, t55, t56, t57, t58, t59, t61, t62, t63, t64, t65, t66, t67,
1718 t75, t68, t69, t70, t71, t72, t73, t74, t76, t77, t78, t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90,
1719 t91, t92, t93, t94, t95, t96, t99, t97, t108, t98, t100, t101, t103, t102, t105, t104, t107, t106, t109, t110,
1720 t111, t112, t115, t113, t124, t114, t116, t117, t119, t118, t121, t120, t123, t122, t125, t126, t127, t128,
1721 t129, t130, t131, t132, t133, t134, t135, t136, t137, t138, t139, t140, t141, t142, t143, t144, t145, t146,
1722 t147, t148, t149, t150, t151, t152, t153, t154, t155, t156, t157, t158, t159, t160, t161, t162, t163, t164,
1723 t165, t166, t167, t168, t169, t170, t171, t172, t173, t174, t175, t176, t177, t178, t179, t180, t181, t182,
1724 t183, t184, t185, t186, t187, t188, t189, t190, t191, t192, t193, t194, t195, t196, t197, t198, t199, t200,
1726 t2 = x[1 - 1] - x[2 - 1];
1727 t3 = y[1 - 1] - y[2 - 1];
1728 t4 = z[1 - 1] - z[2 - 1];
1729 t5 = x[1 - 1] - x[6 - 1];
1730 t6 = y[1 - 1] - y[6 - 1];
1731 t7 = z[1 - 1] - z[6 - 1];
1735 t11 = t8 + t9 + t10 + rsvsmath_automatic_eps_centre2;
1736 t12 = x[1 - 1] * 2.0;
1737 t13 = x[1 - 1] * (1.0 / 2.0);
1741 t17 = t14 + t15 + t16 + rsvsmath_automatic_eps_centre2;
1742 t28 = x[2 - 1] * 2.0;
1744 t19 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t11);
1745 t79 = x[6 - 1] * 2.0;
1747 t21 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t17);
1750 t24 = t23 * (1.0 / 2.0);
1751 t25 = x[2 - 1] - x[3 - 1];
1752 t26 = y[2 - 1] - y[3 - 1];
1753 t27 = z[2 - 1] - z[3 - 1];
1754 t29 = x[2 - 1] * (1.0 / 2.0);
1756 t31 = t18 * t19 * t30 * (1.0 / 2.0);
1760 t35 = t32 + t33 + t34 + rsvsmath_automatic_eps_centre2;
1761 t36 = 1.0 / (totD * totD);
1762 t37 = t18 * t19 * (1.0 / 2.0);
1763 t45 = x[3 - 1] * 2.0;
1765 t39 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t35);
1767 t41 = t40 * (1.0 / 2.0);
1768 t42 = x[3 - 1] - x[4 - 1];
1769 t43 = y[3 - 1] - y[4 - 1];
1770 t44 = z[3 - 1] - z[4 - 1];
1771 t46 = x[3 - 1] * (1.0 / 2.0);
1773 t48 = t38 * t39 * t47 * (1.0 / 2.0);
1777 t52 = t49 + t50 + t51 + rsvsmath_automatic_eps_centre2;
1778 t60 = x[4 - 1] * 2.0;
1780 t54 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t52);
1782 t56 = t55 * (1.0 / 2.0);
1783 t57 = x[4 - 1] - x[5 - 1];
1784 t58 = y[4 - 1] - y[5 - 1];
1785 t59 = z[4 - 1] - z[5 - 1];
1786 t61 = x[4 - 1] * (1.0 / 2.0);
1788 t63 = t53 * t54 * t62 * (1.0 / 2.0);
1792 t67 = t64 + t65 + t66 + rsvsmath_automatic_eps_centre2;
1793 t75 = x[5 - 1] * 2.0;
1795 t69 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t67);
1797 t71 = t70 * (1.0 / 2.0);
1798 t72 = x[5 - 1] - x[6 - 1];
1799 t73 = y[5 - 1] - y[6 - 1];
1800 t74 = z[5 - 1] - z[6 - 1];
1801 t76 = x[5 - 1] * (1.0 / 2.0);
1803 t78 = t68 * t69 * t77 * (1.0 / 2.0);
1804 t80 = x[6 - 1] * (1.0 / 2.0);
1808 t84 = t81 + t82 + t83 + rsvsmath_automatic_eps_centre2;
1810 t86 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t84);
1812 t88 = t87 * (1.0 / 2.0);
1814 t90 = t89 * (1.0 / 2.0);
1816 t92 = t20 * t21 * t91 * (1.0 / 2.0);
1818 t94 = t85 * t86 * t93 * (1.0 / 2.0);
1819 t95 = t20 * t21 * (1.0 / 2.0);
1820 t96 = y[1 - 1] * 2.0;
1821 t99 = y[2 - 1] * 2.0;
1823 t108 = y[6 - 1] * 2.0;
1825 t100 = t19 * t30 * t97 * (1.0 / 2.0);
1826 t101 = t19 * t97 * (1.0 / 2.0);
1827 t103 = y[3 - 1] * 2.0;
1829 t105 = y[4 - 1] * 2.0;
1831 t107 = y[5 - 1] * 2.0;
1834 t110 = t21 * t91 * t98 * (1.0 / 2.0);
1835 t111 = t21 * t98 * (1.0 / 2.0);
1836 t112 = z[1 - 1] * 2.0;
1837 t115 = z[2 - 1] * 2.0;
1839 t124 = z[6 - 1] * 2.0;
1841 t116 = t19 * t30 * t113 * (1.0 / 2.0);
1842 t117 = t19 * t113 * (1.0 / 2.0);
1843 t119 = z[3 - 1] * 2.0;
1845 t121 = z[4 - 1] * 2.0;
1847 t123 = z[5 - 1] * 2.0;
1850 t126 = t21 * t91 * t114 * (1.0 / 2.0);
1851 t127 = t21 * t114 * (1.0 / 2.0);
1852 t128 = y[1 - 1] * (1.0 / 2.0);
1854 t130 = y[2 - 1] * (1.0 / 2.0);
1856 t132 = t18 * t19 * t131 * (1.0 / 2.0);
1857 t133 = t38 * t39 * (1.0 / 2.0);
1858 t134 = y[3 - 1] * (1.0 / 2.0);
1860 t136 = t53 * t54 * (1.0 / 2.0);
1861 t137 = y[4 - 1] * (1.0 / 2.0);
1863 t139 = t68 * t69 * (1.0 / 2.0);
1864 t140 = y[5 - 1] * (1.0 / 2.0);
1866 t142 = y[6 - 1] * (1.0 / 2.0);
1867 t143 = t85 * t86 * (1.0 / 2.0);
1869 t145 = t20 * t21 * t144 * (1.0 / 2.0);
1873 t149 = t19 * t97 * t131 * (1.0 / 2.0);
1874 t150 = t39 * t102 * (1.0 / 2.0);
1875 t151 = t39 * t102 * t135 * (1.0 / 2.0);
1876 t152 = t54 * t104 * (1.0 / 2.0);
1877 t153 = t54 * t104 * t138 * (1.0 / 2.0);
1878 t154 = t69 * t106 * (1.0 / 2.0);
1879 t155 = t69 * t106 * t141 * (1.0 / 2.0);
1880 t156 = t86 * t109 * (1.0 / 2.0);
1881 t157 = t21 * t98 * t144 * (1.0 / 2.0);
1882 t158 = t86 * t109 * t146 * (1.0 / 2.0);
1885 t161 = t19 * t113 * t131 * (1.0 / 2.0);
1886 t162 = t39 * t118 * (1.0 / 2.0);
1887 t163 = t54 * t120 * (1.0 / 2.0);
1888 t164 = t69 * t122 * (1.0 / 2.0);
1889 t165 = t86 * t125 * (1.0 / 2.0);
1890 t166 = t21 * t114 * t144 * (1.0 / 2.0);
1892 t168 = z[1 - 1] * (1.0 / 2.0);
1893 t169 = z[2 - 1] * (1.0 / 2.0);
1895 t171 = t18 * t19 * t170 * (1.0 / 2.0);
1897 t173 = z[3 - 1] * (1.0 / 2.0);
1900 t176 = z[4 - 1] * (1.0 / 2.0);
1903 t179 = z[5 - 1] * (1.0 / 2.0);
1905 t181 = z[6 - 1] * (1.0 / 2.0);
1908 t184 = t20 * t21 * t183 * (1.0 / 2.0);
1910 t186 = t19 * t97 * t170 * (1.0 / 2.0);
1915 t191 = t21 * t98 * t183 * (1.0 / 2.0);
1916 t192 = t19 * t113 * t170 * (1.0 / 2.0);
1918 t194 = t39 * t118 * t174 * (1.0 / 2.0);
1920 t196 = t54 * t120 * t177 * (1.0 / 2.0);
1922 t198 = t69 * t122 * t180 * (1.0 / 2.0);
1924 t200 = t21 * t114 * t183 * (1.0 / 2.0);
1925 t201 = t86 * t125 * t185 * (1.0 / 2.0);
1926 A0[0][0] = t22 * (t24 + t31 + t88 + t92) - X_dot_d * t36 * t129;
1927 A0[0][1] = t22 * (t24 - t31 + t41 + t48) + X_dot_d * t36 * (t37 - t38 * t39 * (1.0 / 2.0));
1928 A0[0][2] = t22 * (t41 - t48 + t56 + t63) + X_dot_d * t36 * (t133 - t53 * t54 * (1.0 / 2.0));
1929 A0[0][3] = t22 * (t56 - t63 + t71 + t78) + X_dot_d * t36 * (t136 - t68 * t69 * (1.0 / 2.0));
1930 A0[0][4] = t22 * (t71 - t78 + t90 + t94) + X_dot_d * t36 * (t139 - t85 * t86 * (1.0 / 2.0));
1931 A0[0][5] = t22 * (t88 + t90 - t92 - t94) + X_dot_d * t36 * t147;
1932 A0[0][6] = t22 * (t100 + t110) - X_dot_d * t36 * t148;
1933 A0[0][7] = -t22 * (t100 - t39 * t47 * t102 * (1.0 / 2.0)) + X_dot_d * t36 * (t101 - t39 * t102 * (1.0 / 2.0));
1934 A0[0][8] = -t22 * (t39 * t47 * t102 * (1.0 / 2.0) - t54 * t62 * t104 * (1.0 / 2.0)) +
1935 X_dot_d * t36 * (t150 - t54 * t104 * (1.0 / 2.0));
1936 A0[0][9] = -t22 * (t54 * t62 * t104 * (1.0 / 2.0) - t69 * t77 * t106 * (1.0 / 2.0)) +
1937 X_dot_d * t36 * (t152 - t69 * t106 * (1.0 / 2.0));
1938 A0[0][10] = -t22 * (t69 * t77 * t106 * (1.0 / 2.0) - t86 * t93 * t109 * (1.0 / 2.0)) +
1939 X_dot_d * t36 * (t154 - t86 * t109 * (1.0 / 2.0));
1940 A0[0][11] = -t22 * (t110 + t86 * t93 * t109 * (1.0 / 2.0)) + X_dot_d * t36 * t159;
1941 A0[0][12] = t22 * (t116 + t126) - X_dot_d * t36 * t160;
1942 A0[0][13] = -t22 * (t116 - t39 * t47 * t118 * (1.0 / 2.0)) + X_dot_d * t36 * (t117 - t39 * t118 * (1.0 / 2.0));
1943 A0[0][14] = -t22 * (t39 * t47 * t118 * (1.0 / 2.0) - t54 * t62 * t120 * (1.0 / 2.0)) +
1944 X_dot_d * t36 * (t162 - t54 * t120 * (1.0 / 2.0));
1945 A0[0][15] = -t22 * (t54 * t62 * t120 * (1.0 / 2.0) - t69 * t77 * t122 * (1.0 / 2.0)) +
1946 X_dot_d * t36 * (t163 - t69 * t122 * (1.0 / 2.0));
1947 A0[0][16] = -t22 * (t69 * t77 * t122 * (1.0 / 2.0) - t86 * t93 * t125 * (1.0 / 2.0)) +
1948 X_dot_d * t36 * (t164 - t86 * t125 * (1.0 / 2.0));
1949 A0[0][17] = -t22 * (t126 + t86 * t93 * t125 * (1.0 / 2.0)) + X_dot_d * t36 * t167;
1950 A0[1][0] = t22 * (t132 + t145) - Y_dot_d * t36 * t129;
1951 A0[1][1] = -t22 * (t132 - t38 * t39 * t135 * (1.0 / 2.0)) + Y_dot_d * t36 * t172;
1952 A0[1][2] = -t22 * (t38 * t39 * t135 * (1.0 / 2.0) - t53 * t54 * t138 * (1.0 / 2.0)) + Y_dot_d * t36 * t175;
1953 A0[1][3] = -t22 * (t53 * t54 * t138 * (1.0 / 2.0) - t68 * t69 * t141 * (1.0 / 2.0)) + Y_dot_d * t36 * t178;
1954 A0[1][4] = -t22 * (t68 * t69 * t141 * (1.0 / 2.0) - t85 * t86 * t146 * (1.0 / 2.0)) + Y_dot_d * t36 * t182;
1955 A0[1][5] = -t22 * (t145 + t85 * t86 * t146 * (1.0 / 2.0)) + Y_dot_d * t36 * t147;
1956 A0[1][6] = t22 * (t24 + t88 + t149 + t157) - Y_dot_d * t36 * t148;
1957 A0[1][7] = t22 * (t24 + t41 - t149 + t151) + Y_dot_d * t36 * t187;
1958 A0[1][8] = t22 * (t41 + t56 - t151 + t153) + Y_dot_d * t36 * t188;
1959 A0[1][9] = t22 * (t56 + t71 - t153 + t155) + Y_dot_d * t36 * t189;
1960 A0[1][10] = t22 * (t71 + t90 - t155 + t158) + Y_dot_d * t36 * t190;
1961 A0[1][11] = t22 * (t88 + t90 - t157 - t158) + Y_dot_d * t36 * t159;
1962 A0[1][12] = t22 * (t161 + t166) - Y_dot_d * t36 * t160;
1963 A0[1][13] = -t22 * (t161 - t39 * t118 * t135 * (1.0 / 2.0)) + Y_dot_d * t36 * t193;
1964 A0[1][14] = -t22 * (t39 * t118 * t135 * (1.0 / 2.0) - t54 * t120 * t138 * (1.0 / 2.0)) + Y_dot_d * t36 * t195;
1965 A0[1][15] = -t22 * (t54 * t120 * t138 * (1.0 / 2.0) - t69 * t122 * t141 * (1.0 / 2.0)) + Y_dot_d * t36 * t197;
1966 A0[1][16] = -t22 * (t69 * t122 * t141 * (1.0 / 2.0) - t86 * t125 * t146 * (1.0 / 2.0)) + Y_dot_d * t36 * t199;
1967 A0[1][17] = -t22 * (t166 + t86 * t125 * t146 * (1.0 / 2.0)) + Y_dot_d * t36 * t167;
1968 A0[2][0] = t22 * (t171 + t184) - Z_dot_d * t36 * t129;
1969 A0[2][1] = -t22 * (t171 - t38 * t39 * t174 * (1.0 / 2.0)) + Z_dot_d * t36 * t172;
1970 A0[2][2] = -t22 * (t38 * t39 * t174 * (1.0 / 2.0) - t53 * t54 * t177 * (1.0 / 2.0)) + Z_dot_d * t36 * t175;
1971 A0[2][3] = -t22 * (t53 * t54 * t177 * (1.0 / 2.0) - t68 * t69 * t180 * (1.0 / 2.0)) + Z_dot_d * t36 * t178;
1972 A0[2][4] = -t22 * (t68 * t69 * t180 * (1.0 / 2.0) - t85 * t86 * t185 * (1.0 / 2.0)) + Z_dot_d * t36 * t182;
1973 A0[2][5] = -t22 * (t184 + t85 * t86 * t185 * (1.0 / 2.0)) + Z_dot_d * t36 * t147;
1974 A0[2][6] = t22 * (t186 + t191) - Z_dot_d * t36 * t148;
1975 A0[2][7] = -t22 * (t186 - t39 * t102 * t174 * (1.0 / 2.0)) + Z_dot_d * t36 * t187;
1976 A0[2][8] = -t22 * (t39 * t102 * t174 * (1.0 / 2.0) - t54 * t104 * t177 * (1.0 / 2.0)) + Z_dot_d * t36 * t188;
1977 A0[2][9] = -t22 * (t54 * t104 * t177 * (1.0 / 2.0) - t69 * t106 * t180 * (1.0 / 2.0)) + Z_dot_d * t36 * t189;
1978 A0[2][10] = -t22 * (t69 * t106 * t180 * (1.0 / 2.0) - t86 * t109 * t185 * (1.0 / 2.0)) + Z_dot_d * t36 * t190;
1979 A0[2][11] = -t22 * (t191 + t86 * t109 * t185 * (1.0 / 2.0)) + Z_dot_d * t36 * t159;
1980 A0[2][12] = t22 * (t24 + t88 + t192 + t200) - Z_dot_d * t36 * t160;
1981 A0[2][13] = t22 * (t24 + t41 - t192 + t194) + Z_dot_d * t36 * t193;
1982 A0[2][14] = t22 * (t41 + t56 - t194 + t196) + Z_dot_d * t36 * t195;
1983 A0[2][15] = t22 * (t56 + t71 - t196 + t198) + Z_dot_d * t36 * t197;
1984 A0[2][16] = t22 * (t71 + t90 - t198 + t201) + Z_dot_d * t36 * t199;
1985 A0[2][17] = t22 * (t88 + t90 - t200 - t201) + Z_dot_d * t36 * t167;
1988 void SurfCentroidConnec_f(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
const double totD,
1989 const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
ArrayVec<double> &A0)
1993 A0[0][0] = X_dot_d * t2;
1994 A0[0][1] = Y_dot_d * t2;
1995 A0[0][2] = Z_dot_d * t2;
1998 void SurfCentroidConnec_df(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
const double totD,
1999 const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
ArrayVec<double> &A0)
2001 double t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t28, t20, t21, t22, t23,
2002 t24, t25, t26, t27, t29, t30, t31, t32, t33, t34, t35, t36, t37, t64, t38, t39, t40, t41, t42, t43, t45, t44,
2003 t46, t47, t48, t49, t75, t50, t51, t52, t54, t53, t55, t56, t82, t57, t58, t59, t85, t60, t61, t62, t63, t89,
2004 t65, t66, t67, t68, t69, t70, t92, t71, t72, t73, t74, t76, t77, t96, t78, t79, t97, t80, t81, t99, t83, t84,
2005 t86, t87, t88, t90, t91, t93, t94, t95, t98;
2006 t2 = x[1 - 1] - x[2 - 1];
2007 t3 = y[1 - 1] - y[2 - 1];
2008 t4 = z[1 - 1] - z[2 - 1];
2009 t5 = x[2 - 1] - x[3 - 1];
2010 t6 = y[2 - 1] - y[3 - 1];
2011 t7 = z[2 - 1] - z[3 - 1];
2015 t11 = t8 + t9 + t10 + rsvsmath_automatic_eps_centre2;
2016 t12 = x[2 - 1] * (1.0 / 2.0);
2020 t16 = t13 + t14 + t15 + rsvsmath_automatic_eps_centre2;
2021 t17 = x[1 - 1] * 2.0;
2022 t18 = x[2 - 1] * 2.0;
2023 t19 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t11);
2024 t28 = x[3 - 1] * 2.0;
2026 t21 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t16);
2029 t24 = t23 * (1.0 / 2.0);
2030 t25 = x[3 - 1] - x[4 - 1];
2031 t26 = y[3 - 1] - y[4 - 1];
2032 t27 = z[3 - 1] - z[4 - 1];
2033 t29 = x[3 - 1] * (1.0 / 2.0);
2035 t31 = t20 * t21 * t30 * (1.0 / 2.0);
2039 t35 = t32 + t33 + t34 + rsvsmath_automatic_eps_centre2;
2040 t36 = 1.0 / (totD * totD);
2041 t37 = t20 * t21 * (1.0 / 2.0);
2042 t64 = x[4 - 1] * 2.0;
2044 t39 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t35);
2045 t40 = x[1 - 1] * (1.0 / 2.0);
2047 t42 = y[1 - 1] * 2.0;
2048 t43 = y[2 - 1] * 2.0;
2049 t45 = y[3 - 1] * 2.0;
2051 t46 = t21 * t30 * t44 * (1.0 / 2.0);
2052 t47 = x[4 - 1] * (1.0 / 2.0);
2054 t49 = t21 * t44 * (1.0 / 2.0);
2055 t75 = y[4 - 1] * 2.0;
2057 t51 = z[1 - 1] * 2.0;
2058 t52 = z[2 - 1] * 2.0;
2059 t54 = z[3 - 1] * 2.0;
2061 t55 = t21 * t30 * t53 * (1.0 / 2.0);
2062 t56 = t21 * t53 * (1.0 / 2.0);
2063 t82 = z[4 - 1] * 2.0;
2066 t59 = y[2 - 1] * (1.0 / 2.0);
2067 t85 = t19 * t58 * (1.0 / 2.0);
2069 t61 = y[3 - 1] * (1.0 / 2.0);
2071 t63 = t20 * t21 * t62 * (1.0 / 2.0);
2072 t89 = t38 * t39 * (1.0 / 2.0);
2075 t67 = t66 * (1.0 / 2.0);
2077 t69 = y[1 - 1] * (1.0 / 2.0);
2079 t92 = t19 * t68 * (1.0 / 2.0);
2082 t73 = t72 * (1.0 / 2.0);
2083 t74 = t21 * t44 * t62 * (1.0 / 2.0);
2084 t76 = y[4 - 1] * (1.0 / 2.0);
2086 t96 = t39 * t50 * (1.0 / 2.0);
2089 t97 = t19 * t79 * (1.0 / 2.0);
2091 t81 = t21 * t53 * t62 * (1.0 / 2.0);
2092 t99 = t39 * t57 * (1.0 / 2.0);
2094 t84 = z[2 - 1] * (1.0 / 2.0);
2095 t86 = z[3 - 1] * (1.0 / 2.0);
2097 t88 = t20 * t21 * t87 * (1.0 / 2.0);
2098 t90 = z[1 - 1] * (1.0 / 2.0);
2100 t93 = t21 * t44 * t87 * (1.0 / 2.0);
2101 t94 = z[4 - 1] * (1.0 / 2.0);
2103 t98 = t21 * t53 * t87 * (1.0 / 2.0);
2104 A0[0][0] = t22 * (t24 + t31 + t67 - t19 * t41 * (t17 - x[2 - 1] * 2.0) * (1.0 / 2.0)) - X_dot_d * t36 * t60;
2105 A0[0][1] = t22 * (t24 - t31 + t73 + t38 * t39 * t48 * (1.0 / 2.0)) + X_dot_d * t36 * t65;
2106 A0[0][2] = t22 * (t46 - t19 * t41 * (t42 - y[2 - 1] * 2.0) * (1.0 / 2.0)) - X_dot_d * t36 * t71;
2107 A0[0][3] = -t22 * (t46 - t39 * t48 * t50 * (1.0 / 2.0)) + X_dot_d * t36 * t78;
2108 A0[0][4] = t22 * (t55 - t19 * t41 * (t51 - z[2 - 1] * 2.0) * (1.0 / 2.0)) - X_dot_d * t36 * t80;
2109 A0[0][5] = -t22 * (t55 - t39 * t48 * t57 * (1.0 / 2.0)) + X_dot_d * t36 * t83;
2110 A0[1][0] = t22 * (t63 - t19 * t58 * t70 * (1.0 / 2.0)) - Y_dot_d * t36 * t60;
2111 A0[1][1] = -t22 * (t63 - t38 * t39 * t77 * (1.0 / 2.0)) + Y_dot_d * t36 * t65;
2112 A0[1][2] = t22 * (t24 + t67 + t74 - t19 * t68 * t70 * (1.0 / 2.0)) - Y_dot_d * t36 * t71;
2113 A0[1][3] = t22 * (t24 + t73 - t74 + t39 * t50 * t77 * (1.0 / 2.0)) + Y_dot_d * t36 * t78;
2114 A0[1][4] = t22 * (t81 - t19 * t70 * t79 * (1.0 / 2.0)) - Y_dot_d * t36 * t80;
2115 A0[1][5] = -t22 * (t81 - t39 * t57 * t77 * (1.0 / 2.0)) + Y_dot_d * t36 * t83;
2116 A0[2][0] = t22 * (t88 - t19 * t58 * t91 * (1.0 / 2.0)) - Z_dot_d * t36 * t60;
2117 A0[2][1] = -t22 * (t88 - t38 * t39 * t95 * (1.0 / 2.0)) + Z_dot_d * t36 * t65;
2118 A0[2][2] = t22 * (t93 - t19 * t68 * t91 * (1.0 / 2.0)) - Z_dot_d * t36 * t71;
2119 A0[2][3] = -t22 * (t93 - t39 * t50 * t95 * (1.0 / 2.0)) + Z_dot_d * t36 * t78;
2120 A0[2][4] = t22 * (t24 + t67 + t98 - t19 * t79 * t91 * (1.0 / 2.0)) - Z_dot_d * t36 * t80;
2121 A0[2][5] = t22 * (t24 + t73 - t98 + t39 * t57 * t95 * (1.0 / 2.0)) + Z_dot_d * t36 * t83;
2124 void SurfCentroidConnec_ddf(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
2125 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
2128 double t2, t3, t4, t5, t11, t6, t7, t8, t9, t10, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24,
2129 t31, t25, t26, t27, t28, t29, t38, t30, t42, t32, t33, t34, t35, t36, t37, t39, t40, t41, t74, t43, t44, t45,
2130 t46, t47, t48, t49, t50, t53, t51, t52, t54, t55, t56, t57, t58, t59, t60, t61, t62, t63, t64, t65, t66, t67,
2131 t69, t68, t84, t70, t71, t72, t73, t75, t76, t77, t78, t83, t79, t80, t81, t97, t82, t85, t86, t87, t88, t89,
2132 t90, t91, t92, t93, t94, t95, t96, t98, t99, t100, t101, t102, t103, t105, t104, t106, t137, t107, t108, t112,
2133 t109, t110, t111, t113, t145, t114, t115, t116, t146, t117, t118, t119, t120, t125, t121, t122, t123, t152,
2134 t124, t126, t127, t128, t153, t129, t130, t154, t131, t135, t132, t133, t134, t139, t136, t138, t140, t141,
2135 t194, t142, t143, t144, t147, t148, t204, t149, t150, t157, t151, t155, t156, t158, t159, t160, t161, t162,
2136 t163, t164, t165, t166, t167, t168, t181, t169, t170, t171, t172, t254, t173, t174, t175, t176, t177, t178,
2137 t179, t180, t182, t183, t184, t185, t186, t187, t188, t189, t190, t191, t192, t193, t195, t196, t197, t198,
2138 t199, t200, t201, t202, t203, t205, t206, t207, t208, t209, t247, t210, t211, t212, t213, t214, t215, t216,
2139 t217, t218, t219, t220, t253, t221, t222, t223, t224, t225, t226, t227, t228, t229, t230, t231, t232, t233,
2140 t234, t235, t236, t237, t238, t239, t240, t241, t242, t243, t244, t245, t246, t248, t249, t250, t251, t252,
2141 t255, t256, t257, t258, t259, t260, t261, t262;
2142 t2 = x[2 - 1] - x[3 - 1];
2143 t3 = y[2 - 1] - y[3 - 1];
2144 t4 = z[2 - 1] - z[3 - 1];
2145 t5 = y[2 - 1] * 2.0;
2146 t11 = y[3 - 1] * 2.0;
2151 t10 = t7 + t8 + t9 + rsvsmath_automatic_eps_centre2;
2152 t12 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t10);
2153 t13 = x[3 - 1] - x[4 - 1];
2154 t14 = y[3 - 1] - y[4 - 1];
2155 t15 = z[3 - 1] - z[4 - 1];
2156 t16 = x[1 - 1] - x[2 - 1];
2157 t17 = y[1 - 1] - y[2 - 1];
2158 t18 = z[1 - 1] - z[2 - 1];
2159 t19 = x[2 - 1] * 2.0;
2160 t20 = x[2 - 1] * (1.0 / 2.0);
2164 t24 = t21 + t22 + t23 + rsvsmath_automatic_eps_centre2;
2165 t31 = x[3 - 1] * 2.0;
2167 t26 = x[3 - 1] * (1.0 / 2.0);
2169 t28 = 1.0 / (totD * totD);
2170 t29 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t24);
2171 t38 = x[1 - 1] * 2.0;
2173 t42 = y[4 - 1] * 2.0;
2178 t36 = t33 + t34 + t35 + rsvsmath_automatic_eps_centre2;
2179 t37 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t36);
2180 t39 = t29 * t30 * (1.0 / 2.0);
2181 t40 = t12 * t25 * (1.0 / 2.0);
2182 t41 = t6 * t12 * (1.0 / 2.0);
2183 t74 = t32 * t37 * (1.0 / 2.0);
2186 t45 = 1.0 / pow(t10, 3.0 / 2.0);
2188 t47 = x[1 - 1] * (1.0 / 2.0);
2190 t49 = z[1 - 1] * 2.0;
2191 t50 = z[2 - 1] * 2.0;
2192 t53 = z[3 - 1] * 2.0;
2196 t55 = t54 * (1.0 / 2.0);
2198 t57 = t56 * (1.0 / 2.0);
2199 t58 = t12 * t25 * t27 * (1.0 / 2.0);
2200 t59 = t29 * t30 * t48 * (1.0 / 2.0);
2201 t60 = t55 + t57 + t58 + t59;
2202 t61 = 1.0 / pow(t24, 3.0 / 2.0);
2203 t62 = 1.0 / (totD * totD * totD);
2204 t63 = t12 * t51 * (1.0 / 2.0);
2205 t64 = t12 * t51 * (1.0 / 4.0);
2206 t65 = t12 * t27 * t51 * (1.0 / 2.0);
2207 t66 = x[4 - 1] * (1.0 / 2.0);
2209 t69 = z[4 - 1] * 2.0;
2211 t84 = t37 * t68 * (1.0 / 2.0);
2213 t71 = y[2 - 1] * (1.0 / 2.0);
2214 t72 = y[3 - 1] * (1.0 / 2.0);
2216 t75 = y[1 - 1] * (1.0 / 2.0);
2218 t77 = t29 * t30 * t76 * (1.0 / 2.0);
2219 t78 = t12 * t25 * t73 * (1.0 / 2.0);
2220 t83 = t29 * t52 * (1.0 / 2.0);
2223 t81 = t25 * t45 * t51 * (1.0 / 4.0);
2224 t97 = t30 * t52 * t61 * (1.0 / 4.0);
2226 t85 = t12 * t51 * t73 * (1.0 / 2.0);
2227 t86 = y[4 - 1] * (1.0 / 2.0);
2229 t88 = z[2 - 1] * (1.0 / 2.0);
2230 t89 = z[3 - 1] * (1.0 / 2.0);
2232 t91 = t12 * t25 * (1.0 / 4.0);
2233 t92 = z[1 - 1] * (1.0 / 2.0);
2235 t94 = t29 * t30 * t93 * (1.0 / 2.0);
2236 t95 = t12 * t25 * t90 * (1.0 / 2.0);
2239 t99 = t98 * (1.0 / 2.0);
2240 t100 = t12 * t51 * t90 * (1.0 / 2.0);
2241 t101 = z[4 - 1] * (1.0 / 2.0);
2243 t103 = t6 * t12 * (1.0 / 4.0);
2244 t105 = x[4 - 1] * 2.0;
2246 t106 = t6 * t12 * t27 * (1.0 / 2.0);
2247 t137 = t32 * t37 * t67 * (1.0 / 2.0);
2249 t108 = 1.0 / pow(t36, 3.0 / 2.0);
2250 t112 = t37 * t104 * (1.0 / 2.0);
2252 t110 = t37 * t67 * t104 * (1.0 / 2.0);
2253 t111 = t57 - t58 + t99 + t110;
2254 t113 = t25 * t27 * t45 * t51 * (1.0 / 4.0);
2255 t145 = t37 * t67 * t68 * (1.0 / 2.0);
2257 t115 = t6 * t25 * t45 * t73 * (1.0 / 4.0);
2258 t116 = t32 * t37 * t87 * (1.0 / 2.0);
2259 t146 = t6 * t12 * t73 * (1.0 / 2.0);
2260 t117 = t57 + t99 + t116 - t146;
2261 t118 = t6 * t25 * t45 * (1.0 / 4.0);
2262 t119 = t32 * t104 * t108 * (1.0 / 4.0);
2264 t125 = t37 * t87 * t104 * (1.0 / 2.0);
2266 t122 = t25 * t45 * t46 * t51 * t73 * (1.0 / 4.0);
2267 t123 = t25 * t45 * t51 * t73 * (1.0 / 4.0);
2268 t152 = t37 * t68 * t87 * (1.0 / 2.0);
2270 t126 = t68 * t104 * t108 * (1.0 / 4.0);
2272 t128 = t6 * t12 * t90 * (1.0 / 2.0);
2273 t153 = t32 * t37 * t102 * (1.0 / 2.0);
2275 t130 = t25 * t45 * t51 * t90 * (1.0 / 4.0);
2276 t154 = t29 * t52 * t93 * (1.0 / 2.0);
2277 t131 = t55 + t57 + t100 - t154;
2278 t135 = t37 * t102 * t104 * (1.0 / 2.0);
2280 t133 = t37 * t68 * t102 * (1.0 / 2.0);
2281 t134 = t57 + t99 - t100 + t133;
2282 t139 = y[1 - 1] * 2.0;
2285 t140 = t29 * t136 * (1.0 / 2.0);
2287 t194 = t29 * t48 * t52 * (1.0 / 2.0);
2289 t143 = t29 * t48 * t136 * (1.0 / 2.0);
2291 t147 = t29 * t76 * (t5 - t139) * (1.0 / 2.0);
2292 t148 = t55 + t57 + t146 + t147;
2293 t204 = t29 * t52 * t76 * (1.0 / 2.0);
2295 t150 = t6 * t45 * t51 * (1.0 / 4.0);
2296 t157 = t52 * t61 * t136 * (1.0 / 4.0);
2298 t155 = t29 * t93 * t136 * (1.0 / 2.0);
2300 t158 = t6 * t25 * t27 * t45 * (1.0 / 4.0);
2301 t159 = t29 * t48 * (t19 - t38) * (1.0 / 2.0);
2302 t160 = t55 + t57 + t58 + t159;
2303 t161 = t32 * t67 * t104 * t108 * (1.0 / 4.0);
2304 t162 = t103 + t158 + t161 - t32 * t37 * (1.0 / 4.0);
2305 t163 = t28 * t43 * t111;
2306 t164 = X_dot_d * t28 * t120;
2307 t165 = X_dot_d * t43 * t62 * t109 * 2.0;
2308 t166 = t163 + t164 + t165 - t46 * t162 - t28 * t107 * t109;
2310 t168 = t167 - t27 * t45 * t138 * (1.0 / 4.0);
2311 t181 = t45 * t138 * (1.0 / 4.0);
2312 t169 = X_dot_d * t28 * (t12 - t181);
2315 t172 = t32 * t87 * t104 * t108 * (1.0 / 4.0);
2316 t254 = t37 * t104 * (1.0 / 4.0);
2317 t173 = t91 + t115 + t172 - t254;
2318 t174 = t28 * t109 * t117;
2319 t175 = Y_dot_d * t28 * t120;
2320 t176 = Y_dot_d * t43 * t62 * t109 * 2.0;
2321 t177 = t174 + t175 + t176 - t46 * t173 - t28 * t43 * t121;
2323 t179 = t178 - t45 * t73 * t138 * (1.0 / 4.0);
2324 t180 = t28 * t43 * t148;
2325 t182 = t28 * t129 * (t39 + t40);
2326 t183 = t6 * t25 * t45 * t46 * t90 * (1.0 / 4.0);
2327 t184 = t6 * t25 * t45 * t90 * (1.0 / 4.0);
2328 t185 = t32 * t102 * t104 * t108 * (1.0 / 4.0);
2330 t187 = Z_dot_d * t28 * t120;
2331 t188 = Z_dot_d * t43 * t62 * t109 * 2.0;
2332 t189 = t187 + t188 - t46 * t186 - t28 * t43 * t132 - t28 * t109 * t129;
2334 t191 = t190 - t45 * t90 * t138 * (1.0 / 4.0);
2335 t192 = t28 * t129 * (t41 + t140);
2336 t193 = t30 * t48 * t52 * t61 * (1.0 / 4.0);
2337 t195 = X_dot_d * t28 * t82;
2340 t198 = t6 * t27 * t45 * t51 * (1.0 / 4.0);
2341 t199 = t198 - t48 * t52 * t61 * t136 * (1.0 / 4.0);
2342 t200 = X_dot_d * t28 * t151;
2343 t201 = X_dot_d * t62 * (t41 + t140) * (t63 - t83) * 2.0;
2344 t202 = t200 + t201 - t46 * t199 - t28 * t79 * t144 - t28 * t141 * t142;
2345 t203 = t123 - t30 * t52 * t61 * t76 * (1.0 / 4.0);
2346 t205 = Y_dot_d * t28 * t82;
2347 t206 = Y_dot_d * t62 * (t39 + t40) * (t63 - t83) * 2.0;
2348 t207 = t205 + t206 - t46 * t203 - t28 * t79 * t80 - t28 * t44 * t149;
2349 t208 = t28 * t121 * (t63 - t83);
2350 t209 = t52 * t61 * t76 * t136 * (1.0 / 4.0);
2351 t247 = t6 * t45 * t51 * t73 * (1.0 / 4.0);
2352 t210 = t46 * (t64 + t209 - t247 - t29 * t52 * (1.0 / 4.0));
2353 t211 = Y_dot_d * t28 * t151;
2354 t212 = Y_dot_d * t62 * (t41 + t140) * (t63 - t83) * 2.0;
2355 t213 = t210 + t211 + t212 - t28 * t79 * t148 - t28 * t141 * t149;
2356 t214 = t29 * t30 * (1.0 / 4.0);
2357 t215 = t30 * t52 * t61 * t93 * (1.0 / 4.0);
2358 t216 = Z_dot_d * t28 * t82;
2359 t217 = Z_dot_d * t62 * (t39 + t40) * (t63 - t83) * 2.0;
2361 t219 = t28 * t109 * t131;
2362 t220 = t28 * t132 * (t63 - t83);
2363 t253 = Z_dot_d * t25 * t28 * t45 * t51 * (1.0 / 4.0);
2364 t221 = t219 + t220 - t253 - t46 * t218 - Z_dot_d * t62 * t79 * t109 * 2.0;
2365 t222 = t29 * t136 * (1.0 / 4.0);
2366 t223 = t52 * t61 * t93 * t136 * (1.0 / 4.0);
2367 t224 = t6 * t45 * t51 * t90 * (1.0 / 4.0);
2368 t225 = Z_dot_d * t28 * t151;
2369 t226 = Z_dot_d * t62 * (t41 + t140) * (t63 - t83) * 2.0;
2370 t227 = t28 * t70 * t160;
2371 t228 = t28 * t114 * (t39 + t40);
2372 t229 = t67 * t68 * t104 * t108 * (1.0 / 4.0);
2373 t230 = t64 + t113 + t229 - t37 * t68 * (1.0 / 4.0);
2374 t231 = t28 * t70 * t111;
2375 t232 = X_dot_d * t28 * t127;
2376 t233 = X_dot_d * t62 * t70 * t109 * 2.0;
2377 t234 = t231 + t232 + t233 - t46 * t230 - t28 * t109 * t114;
2378 t235 = t28 * t70 * (t106 + t143);
2379 t236 = t28 * t114 * (t41 + t140);
2380 t237 = t6 * t27 * t45 * t46 * t51 * (1.0 / 4.0);
2381 t238 = t235 + t236 + t237 - X_dot_d * t62 * t70 * t141 * 2.0 - X_dot_d * t6 * t28 * t45 * t51 * (1.0 / 4.0);
2382 t239 = t28 * t70 * (t77 + t78);
2383 t240 = t28 * t124 * (t39 + t40);
2384 t241 = t122 + t239 + t240 - Y_dot_d * t44 * t62 * t70 * 2.0 - Y_dot_d * t25 * t28 * t45 * t51 * (1.0 / 4.0);
2385 t242 = t68 * t87 * t104 * t108 * (1.0 / 4.0);
2387 t244 = Y_dot_d * t28 * t127;
2388 t245 = Y_dot_d * t62 * t70 * t109 * 2.0;
2389 t246 = t244 + t245 - t46 * t243 - t28 * t70 * t121 - t28 * t109 * t124;
2390 t248 = t28 * t70 * t148;
2391 t249 = t28 * t124 * (t41 + t140);
2394 t252 = t28 * t70 * (t94 + t95);
2395 t255 = t68 * t102 * t104 * t108 * (1.0 / 4.0);
2396 t256 = t28 * t109 * t134;
2397 t257 = Z_dot_d * t28 * t127;
2398 t258 = Z_dot_d * t62 * t70 * t109 * 2.0;
2401 t261 = t28 * t70 * (t128 + t155);
2402 t262 = t260 + t261 - t28 * t134 * t141 - Z_dot_d * t62 * t70 * t141 * 2.0 -
2403 Z_dot_d * t6 * t28 * t45 * t51 * (1.0 / 4.0);
2404 A0[0][3] = -t46 * (t103 - t6 * t25 * t27 * t45 * (1.0 / 4.0)) + t28 * t43 * t60 + t28 * t44 * t107 -
2405 X_dot_d * t43 * t44 * t62 * 2.0 - X_dot_d * t6 * t25 * t28 * t45 * (1.0 / 4.0);
2407 t46 * (t64 + t193 - t29 * (t49 - z[2 - 1] * 2.0) * (1.0 / 4.0) - t25 * t27 * t45 * t51 * (1.0 / 4.0)) -
2408 t28 * t60 * t79 - t28 * t44 * t142 + X_dot_d * t62 * t79 * (t39 + t40) * 2.0;
2409 A0[0][5] = t227 + t228 - t46 * (t64 - t25 * t27 * t45 * t51 * (1.0 / 4.0)) - X_dot_d * t44 * t62 * t70 * 2.0 -
2410 X_dot_d * t25 * t28 * t45 * t51 * (1.0 / 4.0);
2411 A0[0][9] = t171 + t28 * t43 * t80 - t28 * t44 * t117 - Y_dot_d * t43 * t44 * t62 * 2.0 -
2412 Y_dot_d * t6 * t25 * t28 * t45 * (1.0 / 4.0);
2416 t182 + t183 + t28 * t43 * t96 - Z_dot_d * t43 * t44 * t62 * 2.0 - Z_dot_d * t6 * t25 * t28 * t45 * (1.0 / 4.0);
2417 A0[0][16] = t216 + t217 + t46 * (t91 + t214 + t215 - t25 * t45 * t51 * t90 * (1.0 / 4.0)) - t28 * t44 * t131 -
2419 A0[0][17] = t251 + t252 - t28 * t44 * t134 - Z_dot_d * t44 * t62 * t70 * 2.0 -
2420 Z_dot_d * t25 * t28 * t45 * t51 * (1.0 / 4.0);
2422 A0[1][4] = t197 - t28 * t79 * t111 + t28 * t109 * t142 - X_dot_d * t62 * t79 * t109 * 2.0 -
2423 X_dot_d * t25 * t28 * t45 * t51 * (1.0 / 4.0);
2426 A0[1][10] = t122 + t208 + t28 * t109 * t149 - Y_dot_d * t62 * t79 * t109 * 2.0 -
2427 Y_dot_d * t25 * t28 * t45 * t51 * (1.0 / 4.0);
2431 A0[1][17] = t256 + t257 + t258 - t46 * (t91 + t130 + t255 - t37 * t104 * (1.0 / 4.0)) - t28 * t70 * t132;
2432 A0[2][3] = t169 - t46 * t168 + t28 * t43 * t144 + t28 * t107 * t141 - X_dot_d * t43 * t62 * t141 * 2.0;
2435 A0[2][9] = t180 - t46 * t179 + Y_dot_d * t28 * (t12 - t45 * t138 * (1.0 / 4.0)) - t28 * t117 * t141 -
2436 Y_dot_d * t43 * t62 * t141 * 2.0;
2438 A0[2][11] = t248 + t249 - t46 * (t64 - t6 * t45 * t51 * t73 * (1.0 / 4.0)) - Y_dot_d * t62 * t70 * t141 * 2.0 -
2439 Y_dot_d * t6 * t28 * t45 * t51 * (1.0 / 4.0);
2440 A0[2][15] = t192 - t46 * t191 + Z_dot_d * t28 * (t12 - t45 * t138 * (1.0 / 4.0)) + t28 * t43 * t156 -
2441 Z_dot_d * t43 * t62 * t141 * 2.0;
2442 A0[2][16] = t225 + t226 + t46 * (t103 + t222 + t223 - t6 * t45 * t51 * t90 * (1.0 / 4.0)) - t28 * t79 * t156 -
2445 A0[3][0] = -t46 * (t103 - t158) + t28 * t107 * (t39 + t40) + t28 * t43 * t160 - X_dot_d * t43 * t44 * t62 * 2.0 -
2446 X_dot_d * t6 * t25 * t28 * t45 * (1.0 / 4.0);
2449 t169 - t46 * t168 + t28 * t107 * (t41 + t140) + t28 * t43 * (t106 + t143) - X_dot_d * t43 * t62 * t141 * 2.0;
2450 A0[3][6] = t171 + t28 * t43 * (t77 + t78) - t28 * t44 * t117 - Y_dot_d * t43 * t44 * t62 * 2.0 -
2451 Y_dot_d * t6 * t25 * t28 * t45 * (1.0 / 4.0);
2453 A0[3][8] = t180 - t46 * t179 - t28 * t117 * t141 + Y_dot_d * t28 * (t12 - t181) - Y_dot_d * t43 * t62 * t141 * 2.0;
2454 A0[3][12] = t182 + t183 + t28 * t43 * (t94 + t95) - Z_dot_d * t43 * t44 * t62 * 2.0 -
2455 Z_dot_d * t6 * t25 * t28 * t45 * (1.0 / 4.0);
2458 t192 - t46 * t191 + t28 * t43 * (t128 + t155) + Z_dot_d * t28 * (t12 - t181) - Z_dot_d * t43 * t62 * t141 * 2.0;
2459 A0[4][0] = t195 + t46 * (t64 - t113 + t193 - t29 * t52 * (1.0 / 4.0)) - t28 * t44 * t142 - t28 * t79 * t160 +
2460 X_dot_d * t62 * (t39 + t40) * (t63 - t83) * 2.0;
2461 A0[4][1] = t197 - t28 * t79 * t111 + t28 * t109 * (t65 - t194) - X_dot_d * t62 * t79 * t109 * 2.0 -
2462 X_dot_d * t25 * t28 * t45 * t51 * (1.0 / 4.0);
2465 A0[4][7] = t122 + t208 + t28 * t109 * (t85 - t204) - Y_dot_d * t62 * t79 * t109 * 2.0 -
2466 Y_dot_d * t25 * t28 * t45 * t51 * (1.0 / 4.0);
2468 A0[4][12] = t216 + t217 + t46 * (t91 - t130 + t214 + t215) - t28 * t44 * t131 - t28 * t79 * t96;
2470 A0[4][14] = t225 + t226 + t46 * (t103 + t222 + t223 - t224) - t28 * t79 * t156 - t28 * t131 * t141;
2471 A0[5][0] = t227 + t228 - t46 * (t64 - t113) - X_dot_d * t44 * t62 * t70 * 2.0 -
2472 X_dot_d * t25 * t28 * t45 * t51 * (1.0 / 4.0);
2477 A0[5][8] = t248 + t249 - t46 * (t64 - t247) - Y_dot_d * t62 * t70 * t141 * 2.0 -
2478 Y_dot_d * t6 * t28 * t45 * t51 * (1.0 / 4.0);
2479 A0[5][12] = t251 + t252 - t253 - t28 * t44 * t134 - Z_dot_d * t44 * t62 * t70 * 2.0;
2480 A0[5][13] = t256 + t257 + t258 - t46 * (t91 + t130 - t254 + t255) - t28 * t70 * t132;
2484 void SurfCentroidNoConnec_f(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
2485 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
2490 A0[0][0] = X_dot_d * t2;
2491 A0[0][1] = Y_dot_d * t2;
2492 A0[0][2] = Z_dot_d * t2;
2495 void SurfCentroidNoConnec_df(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
2496 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
2499 double t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t65, t20, t21, t22, t23,
2500 t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t70, t42, t43, t44,
2501 t45, t46, t47, t48, t49, t81, t50, t51, t52, t53, t54, t55, t56, t93, t57, t58, t59, t99, t60, t61, t62, t103,
2502 t63, t64, t66, t67, t107, t68, t69, t71, t72, t109, t73, t74, t75, t76, t77, t78, t79, t80, t82, t83, t84, t114,
2503 t85, t86, t87, t88, t89, t90, t91, t92, t94, t95, t96, t119, t97, t98, t100, t120, t101, t102, t104, t121, t105,
2504 t106, t108, t110, t111, t112, t113, t115, t116, t117, t118;
2505 t2 = x[1 - 1] - x[2 - 1];
2506 t3 = y[1 - 1] - y[2 - 1];
2507 t4 = z[1 - 1] - z[2 - 1];
2508 t5 = x[2 - 1] - x[3 - 1];
2509 t6 = y[2 - 1] - y[3 - 1];
2510 t7 = z[2 - 1] - z[3 - 1];
2514 t11 = t8 + t9 + t10;
2515 t12 = x[2 - 1] * (1.0 / 2.0);
2519 t16 = t13 + t14 + t15;
2520 t17 = x[1 - 1] * 2.0;
2521 t18 = x[2 - 1] * 2.0;
2522 t19 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t11);
2523 t65 = x[3 - 1] * 2.0;
2525 t21 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t16);
2527 t23 = x[5 - 1] - x[6 - 1];
2528 t24 = y[5 - 1] - y[6 - 1];
2529 t25 = z[5 - 1] - z[6 - 1];
2530 t26 = x[6 - 1] - x[7 - 1];
2531 t27 = y[6 - 1] - y[7 - 1];
2532 t28 = z[6 - 1] - z[7 - 1];
2536 t32 = t29 + t30 + t31;
2537 t33 = x[6 - 1] * (1.0 / 2.0);
2541 t37 = t34 + t35 + t36;
2542 t38 = 1.0 / (totD * totD);
2543 t39 = x[5 - 1] * 2.0;
2544 t40 = x[6 - 1] * 2.0;
2545 t41 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t32);
2546 t70 = x[7 - 1] * 2.0;
2548 t43 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t37);
2549 t44 = x[1 - 1] * (1.0 / 2.0);
2551 t46 = x[3 - 1] * (1.0 / 2.0);
2553 t48 = y[1 - 1] * 2.0;
2554 t49 = y[2 - 1] * 2.0;
2555 t81 = y[3 - 1] * 2.0;
2557 t51 = x[5 - 1] * (1.0 / 2.0);
2559 t53 = x[7 - 1] * (1.0 / 2.0);
2561 t55 = y[5 - 1] * 2.0;
2562 t56 = y[6 - 1] * 2.0;
2563 t93 = y[7 - 1] * 2.0;
2565 t58 = z[1 - 1] * 2.0;
2566 t59 = z[2 - 1] * 2.0;
2567 t99 = z[3 - 1] * 2.0;
2569 t61 = z[5 - 1] * 2.0;
2570 t62 = z[6 - 1] * 2.0;
2571 t103 = z[7 - 1] * 2.0;
2574 t66 = y[2 - 1] * (1.0 / 2.0);
2575 t67 = t20 * t21 * (1.0 / 2.0);
2576 t107 = t19 * t64 * (1.0 / 2.0);
2579 t71 = y[6 - 1] * (1.0 / 2.0);
2580 t72 = t42 * t43 * (1.0 / 2.0);
2581 t109 = t41 * t69 * (1.0 / 2.0);
2584 t75 = t74 * (1.0 / 2.0);
2586 t77 = t76 * (1.0 / 2.0);
2588 t79 = y[1 - 1] * (1.0 / 2.0);
2590 t82 = y[3 - 1] * (1.0 / 2.0);
2592 t84 = t21 * t50 * (1.0 / 2.0);
2593 t114 = t19 * t78 * (1.0 / 2.0);
2596 t87 = t86 * (1.0 / 2.0);
2598 t89 = t88 * (1.0 / 2.0);
2600 t91 = y[5 - 1] * (1.0 / 2.0);
2602 t94 = y[7 - 1] * (1.0 / 2.0);
2604 t96 = t43 * t57 * (1.0 / 2.0);
2605 t119 = t41 * t90 * (1.0 / 2.0);
2608 t100 = t21 * t60 * (1.0 / 2.0);
2609 t120 = t19 * t98 * (1.0 / 2.0);
2612 t104 = t43 * t63 * (1.0 / 2.0);
2613 t121 = t41 * t102 * (1.0 / 2.0);
2615 t106 = z[2 - 1] * (1.0 / 2.0);
2616 t108 = z[6 - 1] * (1.0 / 2.0);
2617 t110 = z[1 - 1] * (1.0 / 2.0);
2619 t112 = z[3 - 1] * (1.0 / 2.0);
2621 t115 = z[5 - 1] * (1.0 / 2.0);
2623 t117 = z[7 - 1] * (1.0 / 2.0);
2625 A0[0][0] = t22 * (t75 + t77 + t20 * t21 * t47 * (1.0 / 2.0) - t19 * t45 * (t17 - x[2 - 1] * 2.0) * (1.0 / 2.0)) -
2626 X_dot_d * t38 * t68;
2627 A0[0][1] = t22 * (t87 + t89 + t42 * t43 * t54 * (1.0 / 2.0) - t41 * t52 * (t39 - x[6 - 1] * 2.0) * (1.0 / 2.0)) -
2628 X_dot_d * t38 * t73;
2630 t22 * (t21 * t47 * t50 * (1.0 / 2.0) - t19 * t45 * (t48 - y[2 - 1] * 2.0) * (1.0 / 2.0)) - X_dot_d * t38 * t85;
2632 t22 * (t43 * t54 * t57 * (1.0 / 2.0) - t41 * t52 * (t55 - y[6 - 1] * 2.0) * (1.0 / 2.0)) - X_dot_d * t38 * t97;
2634 t22 * (t21 * t47 * t60 * (1.0 / 2.0) - t19 * t45 * (t58 - z[2 - 1] * 2.0) * (1.0 / 2.0)) - X_dot_d * t38 * t101;
2636 t22 * (t43 * t54 * t63 * (1.0 / 2.0) - t41 * t52 * (t61 - z[6 - 1] * 2.0) * (1.0 / 2.0)) - X_dot_d * t38 * t105;
2637 A0[1][0] = t22 * (t20 * t21 * t83 * (1.0 / 2.0) - t19 * t64 * t80 * (1.0 / 2.0)) - Y_dot_d * t38 * t68;
2638 A0[1][1] = t22 * (t42 * t43 * t95 * (1.0 / 2.0) - t41 * t69 * t92 * (1.0 / 2.0)) - Y_dot_d * t38 * t73;
2639 A0[1][2] = t22 * (t75 + t77 + t21 * t50 * t83 * (1.0 / 2.0) - t19 * t78 * t80 * (1.0 / 2.0)) - Y_dot_d * t38 * t85;
2640 A0[1][3] = t22 * (t87 + t89 + t43 * t57 * t95 * (1.0 / 2.0) - t41 * t90 * t92 * (1.0 / 2.0)) - Y_dot_d * t38 * t97;
2641 A0[1][4] = t22 * (t21 * t60 * t83 * (1.0 / 2.0) - t19 * t80 * t98 * (1.0 / 2.0)) - Y_dot_d * t38 * t101;
2642 A0[1][5] = t22 * (t43 * t63 * t95 * (1.0 / 2.0) - t41 * t92 * t102 * (1.0 / 2.0)) - Y_dot_d * t38 * t105;
2643 A0[2][0] = t22 * (t20 * t21 * t113 * (1.0 / 2.0) - t19 * t64 * t111 * (1.0 / 2.0)) - Z_dot_d * t38 * t68;
2644 A0[2][1] = t22 * (t42 * t43 * t118 * (1.0 / 2.0) - t41 * t69 * t116 * (1.0 / 2.0)) - Z_dot_d * t38 * t73;
2645 A0[2][2] = t22 * (t21 * t50 * t113 * (1.0 / 2.0) - t19 * t78 * t111 * (1.0 / 2.0)) - Z_dot_d * t38 * t85;
2646 A0[2][3] = t22 * (t43 * t57 * t118 * (1.0 / 2.0) - t41 * t90 * t116 * (1.0 / 2.0)) - Z_dot_d * t38 * t97;
2648 t22 * (t75 + t77 + t21 * t60 * t113 * (1.0 / 2.0) - t19 * t98 * t111 * (1.0 / 2.0)) - Z_dot_d * t38 * t101;
2650 t22 * (t87 + t89 + t43 * t63 * t118 * (1.0 / 2.0) - t41 * t102 * t116 * (1.0 / 2.0)) - Z_dot_d * t38 * t105;
2653 void SurfCentroidNoConnec_ddf(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
2654 const double totD,
const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
2657 double t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24,
2658 t25, t26, t44, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t47, t37, t38, t39, t40, t41, t42, t43, t45,
2659 t46, t48, t49, t50, t51, t52, t53, t54, t57, t55, t56, t58, t59, t60, t61, t62, t63, t64, t65, t66, t90, t67,
2660 t70, t68, t191, t69, t71, t72, t73, t74, t75, t76, t79, t77, t78, t80, t81, t82, t84, t83, t85, t86, t87, t88,
2661 t89, t91, t92, t93, t94, t101, t95, t196, t96, t97, t98, t99, t100, t102, t103, t104, t105, t106, t107, t108,
2662 t109, t110, t111, t112, t113, t114, t115, t116, t208, t117, t118, t119, t122, t120, t121, t123, t165, t124,
2663 t125, t126, t127, t131, t128, t129, t134, t130, t132, t171, t133, t135, t174, t136, t137, t175, t138, t139,
2664 t140, t141, t142, t179, t143, t144, t148, t145, t146, t184, t147, t149, t150, t151, t152, t185, t153, t154,
2665 t186, t155, t156, t161, t157, t158, t159, t189, t160, t162, t163, t168, t164, t166, t167, t170, t169, t172,
2666 t195, t173, t176, t177, t183, t178, t180, t181, t182, t187, t190, t188, t192, t193, t194, t197, t198, t199,
2667 t200, t281, t201, t202, t203, t204, t205, t206, t207, t209, t210, t211, t212, t213, t214, t215, t216, t217,
2668 t218, t219, t220, t221, t240, t222, t223, t224, t225, t226, t227, t228, t229, t230, t231, t232, t233, t234,
2669 t235, t236, t237, t238, t239, t241, t242, t243, t244, t245, t246, t247, t248, t249, t250, t251, t252, t253,
2670 t254, t255, t256, t257, t258, t259, t260, t261, t262, t263, t264, t265, t266, t267, t268, t269, t270, t271,
2671 t272, t273, t274, t275, t276, t277, t278, t279, t280, t282, t283, t284, t285, t286, t287, t288, t289;
2672 t2 = x[5 - 1] - x[6 - 1];
2673 t3 = y[5 - 1] - y[6 - 1];
2674 t4 = z[5 - 1] - z[6 - 1];
2675 t5 = x[6 - 1] - x[7 - 1];
2676 t6 = y[6 - 1] - y[7 - 1];
2677 t7 = z[6 - 1] - z[7 - 1];
2678 t8 = x[1 - 1] - x[2 - 1];
2679 t9 = y[1 - 1] - y[2 - 1];
2680 t10 = z[1 - 1] - z[2 - 1];
2681 t11 = x[2 - 1] - x[3 - 1];
2682 t12 = y[2 - 1] - y[3 - 1];
2683 t13 = z[2 - 1] - z[3 - 1];
2687 t17 = t14 + t15 + t16;
2688 t18 = x[2 - 1] * (1.0 / 2.0);
2692 t22 = t19 + t20 + t21;
2693 t23 = 1.0 / (totD * totD);
2694 t24 = x[1 - 1] * 2.0;
2695 t25 = x[2 - 1] * 2.0;
2696 t26 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t17);
2697 t44 = x[3 - 1] * 2.0;
2699 t28 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t22);
2700 t29 = y[5 - 1] * 2.0;
2701 t30 = y[6 - 1] * 2.0;
2705 t34 = t31 + t32 + t33;
2706 t35 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t34);
2707 t36 = x[6 - 1] * (1.0 / 2.0);
2708 t47 = y[7 - 1] * 2.0;
2713 t41 = t38 + t39 + t40;
2714 t42 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t41);
2716 t45 = t27 * t28 * (1.0 / 2.0);
2718 t48 = t37 * t42 * (1.0 / 2.0);
2719 t49 = x[1 - 1] * (1.0 / 2.0);
2721 t51 = z[1 - 1] * 2.0;
2722 t52 = z[2 - 1] * 2.0;
2723 t53 = x[3 - 1] * (1.0 / 2.0);
2725 t57 = z[3 - 1] * 2.0;
2729 t59 = t58 * (1.0 / 2.0);
2731 t61 = t60 * (1.0 / 2.0);
2732 t62 = t27 * t28 * t54 * (1.0 / 2.0);
2733 t63 = 1.0 / pow(t17, 3.0 / 2.0);
2734 t64 = 1.0 / pow(t22, 3.0 / 2.0);
2735 t65 = 1.0 / (totD * totD * totD);
2736 t66 = t26 * t56 * (1.0 / 2.0);
2737 t90 = t28 * t55 * (1.0 / 2.0);
2739 t70 = t26 * t43 * (1.0 / 2.0);
2741 t191 = t26 * t43 * t50 * (1.0 / 2.0);
2742 t69 = t59 + t61 + t62 - t191;
2743 t71 = x[5 - 1] * (1.0 / 2.0);
2745 t73 = z[5 - 1] * 2.0;
2746 t74 = z[6 - 1] * 2.0;
2747 t75 = x[7 - 1] * (1.0 / 2.0);
2749 t79 = z[7 - 1] * 2.0;
2752 t80 = t42 * t77 * (1.0 / 2.0);
2753 t81 = y[6 - 1] * (1.0 / 2.0);
2754 t82 = y[2 - 1] * (1.0 / 2.0);
2755 t84 = t35 * t46 * (1.0 / 2.0);
2758 t86 = y[1 - 1] * (1.0 / 2.0);
2760 t88 = y[3 - 1] * (1.0 / 2.0);
2762 t91 = t27 * t28 * t89 * (1.0 / 2.0);
2763 t92 = t43 * t56 * t63 * (1.0 / 4.0);
2764 t93 = t27 * t55 * t64 * (1.0 / 4.0);
2766 t101 = t35 * t78 * (1.0 / 2.0);
2768 t196 = t26 * t43 * t87 * (1.0 / 2.0);
2770 t97 = y[5 - 1] * (1.0 / 2.0);
2772 t99 = y[7 - 1] * (1.0 / 2.0);
2774 t102 = z[2 - 1] * (1.0 / 2.0);
2775 t103 = z[6 - 1] * (1.0 / 2.0);
2776 t104 = z[1 - 1] * (1.0 / 2.0);
2778 t106 = z[3 - 1] * (1.0 / 2.0);
2780 t108 = t27 * t28 * t107 * (1.0 / 2.0);
2782 t110 = t109 * (1.0 / 2.0);
2784 t112 = t111 * (1.0 / 2.0);
2785 t113 = z[5 - 1] * (1.0 / 2.0);
2787 t115 = z[7 - 1] * (1.0 / 2.0);
2789 t208 = t26 * t43 * t105 * (1.0 / 2.0);
2791 t118 = x[5 - 1] * 2.0;
2792 t119 = x[6 - 1] * 2.0;
2793 t122 = x[7 - 1] * 2.0;
2796 t123 = t35 * t46 * t72 * (1.0 / 2.0);
2797 t165 = t37 * t42 * t76 * (1.0 / 2.0);
2799 t125 = 1.0 / pow(t34, 3.0 / 2.0);
2800 t126 = 1.0 / pow(t41, 3.0 / 2.0);
2801 t127 = t35 * t121 * (1.0 / 2.0);
2802 t131 = t42 * t120 * (1.0 / 2.0);
2804 t129 = t42 * t76 * t120 * (1.0 / 2.0);
2805 t134 = t35 * t72 * t121 * (1.0 / 2.0);
2806 t130 = t110 + t112 + t129 - t134;
2807 t132 = t26 * t50 * t56 * (1.0 / 2.0);
2808 t171 = t28 * t54 * t55 * (1.0 / 2.0);
2810 t135 = t35 * t72 * t78 * (1.0 / 2.0);
2811 t174 = t42 * t76 * t77 * (1.0 / 2.0);
2813 t137 = t37 * t42 * t100 * (1.0 / 2.0);
2814 t175 = t35 * t46 * t98 * (1.0 / 2.0);
2815 t138 = t110 + t112 + t137 - t175;
2816 t139 = t46 * t121 * t125 * (1.0 / 4.0);
2817 t140 = t37 * t120 * t126 * (1.0 / 4.0);
2819 t142 = t26 * t56 * t87 * (1.0 / 2.0);
2820 t179 = t28 * t55 * t89 * (1.0 / 2.0);
2822 t144 = t35 * t98 * t121 * (1.0 / 2.0);
2823 t148 = t42 * t100 * t120 * (1.0 / 2.0);
2825 t146 = t35 * t78 * t98 * (1.0 / 2.0);
2826 t184 = t42 * t77 * t100 * (1.0 / 2.0);
2828 t149 = t78 * t121 * t125 * (1.0 / 4.0);
2829 t150 = t77 * t120 * t126 * (1.0 / 4.0);
2831 t152 = t35 * t46 * t114 * (1.0 / 2.0);
2832 t185 = t37 * t42 * t116 * (1.0 / 2.0);
2834 t154 = t28 * t55 * t107 * (1.0 / 2.0);
2835 t186 = t26 * t56 * t105 * (1.0 / 2.0);
2836 t155 = t59 + t61 + t154 - t186;
2837 t156 = t35 * t114 * t121 * (1.0 / 2.0);
2838 t161 = t42 * t116 * t120 * (1.0 / 2.0);
2840 t158 = t35 * t121 * (1.0 / 4.0);
2841 t159 = t42 * t77 * t116 * (1.0 / 2.0);
2842 t189 = t35 * t78 * t114 * (1.0 / 2.0);
2843 t160 = t110 + t112 + t159 - t189;
2844 t162 = y[1 - 1] * 2.0;
2845 t163 = y[2 - 1] * 2.0;
2846 t168 = y[3 - 1] * 2.0;
2849 t167 = t26 * t166 * (1.0 / 2.0);
2850 t170 = t28 * t164 * (1.0 / 2.0);
2852 t172 = t28 * t54 * t164 * (1.0 / 2.0);
2853 t195 = t26 * t50 * t166 * (1.0 / 2.0);
2855 t176 = t26 * t56 * (1.0 / 4.0);
2856 t177 = t28 * t89 * t164 * (1.0 / 2.0);
2857 t183 = t26 * t87 * t166 * (1.0 / 2.0);
2858 t178 = t59 + t61 + t177 - t183;
2859 t180 = t56 * t63 * t166 * (1.0 / 4.0);
2860 t181 = t55 * t64 * t164 * (1.0 / 4.0);
2862 t187 = t26 * t105 * t166 * (1.0 / 2.0);
2863 t190 = t28 * t107 * t164 * (1.0 / 2.0);
2865 t192 = t35 * t46 * (1.0 / 4.0);
2866 t193 = t37 * t76 * t120 * t126 * (1.0 / 4.0);
2867 t194 = X_dot_d * t23 * t141;
2868 t197 = Y_dot_d * t65 * (t45 - t70) * (t48 - t84) * 2.0;
2869 t198 = t197 - t23 * t83 * t96 - t23 * t68 * t138;
2870 t199 = t46 * t98 * t121 * t125 * (1.0 / 4.0);
2871 t200 = t37 * t100 * t120 * t126 * (1.0 / 4.0);
2872 t281 = t42 * t120 * (1.0 / 4.0);
2873 t201 = t158 + t199 + t200 - t281;
2874 t202 = t23 * t128 * t138;
2875 t203 = t23 * t145 * (t48 - t84);
2876 t204 = Y_dot_d * t23 * t141;
2877 t205 = t202 + t203 + t204 - t85 * t201 - Y_dot_d * t65 * t83 * t128 * 2.0;
2878 t206 = t23 * t138 * t169;
2879 t207 = t206 - t23 * t83 * t178 - Y_dot_d * t65 * t83 * t169 * 2.0;
2880 t209 = t23 * t153 * (t45 - t70);
2881 t210 = Z_dot_d * t65 * (t45 - t70) * (t48 - t84) * 2.0;
2882 t211 = t209 + t210 - t23 * t83 * t117;
2883 t212 = t46 * t114 * t121 * t125 * (1.0 / 4.0);
2884 t213 = t37 * t116 * t120 * t126 * (1.0 / 4.0);
2886 t215 = t23 * t157 * (t48 - t84);
2887 t216 = Z_dot_d * t23 * t141;
2888 t217 = t215 + t216 - t85 * t214 - t23 * t128 * t153 - Z_dot_d * t65 * t83 * t128 * 2.0;
2889 t218 = t23 * t188 * (t48 - t84);
2890 t219 = t218 - t23 * t153 * t169 - Z_dot_d * t65 * t83 * t169 * 2.0;
2891 t220 = t43 * t50 * t56 * t63 * (1.0 / 4.0);
2892 t221 = t27 * t54 * t55 * t64 * (1.0 / 4.0);
2893 t240 = t28 * t55 * (1.0 / 4.0);
2894 t222 = t176 + t220 + t221 - t240;
2895 t223 = t23 * t67 * t69;
2896 t224 = X_dot_d * t23 * t94;
2897 t225 = t23 * t67 * t130;
2898 t226 = X_dot_d * t65 * t67 * t128 * 2.0;
2899 t227 = t225 + t226 - t23 * t128 * t133;
2900 t228 = t50 * t56 * t63 * t166 * (1.0 / 4.0);
2901 t229 = t54 * t55 * t64 * t164 * (1.0 / 4.0);
2903 t231 = X_dot_d * t23 * t182;
2904 t232 = X_dot_d * t65 * t67 * t169 * 2.0;
2905 t233 = t43 * t56 * t63 * t87 * (1.0 / 4.0);
2906 t234 = t27 * t55 * t64 * t89 * (1.0 / 4.0);
2908 t236 = t23 * t143 * (t45 - t70);
2909 t237 = Y_dot_d * t23 * t94;
2910 t238 = Y_dot_d * t65 * t67 * t128 * 2.0;
2911 t239 = t238 - t23 * t67 * t145 - t23 * t128 * t143;
2912 t241 = t56 * t63 * t87 * t166 * (1.0 / 4.0);
2913 t242 = t55 * t64 * t89 * t164 * (1.0 / 4.0);
2914 t243 = t23 * t67 * t178;
2915 t244 = Y_dot_d * t23 * t182;
2916 t245 = Y_dot_d * t65 * t67 * t169 * 2.0;
2917 t246 = t26 * t43 * (1.0 / 4.0);
2918 t247 = t43 * t56 * t63 * t105 * (1.0 / 4.0);
2919 t248 = t27 * t55 * t64 * t107 * (1.0 / 4.0);
2920 t249 = t246 + t247 + t248 - t27 * t28 * (1.0 / 4.0);
2921 t250 = Z_dot_d * t23 * t94;
2922 t251 = t23 * t128 * t155;
2923 t252 = Z_dot_d * t65 * t67 * t128 * 2.0;
2924 t253 = t251 + t252 - t23 * t67 * t157;
2925 t254 = t26 * t166 * (1.0 / 4.0);
2926 t255 = t56 * t63 * t105 * t166 * (1.0 / 4.0);
2927 t256 = t55 * t64 * t107 * t164 * (1.0 / 4.0);
2928 t257 = t254 + t255 + t256 - t28 * t164 * (1.0 / 4.0);
2929 t258 = t23 * t155 * t169;
2930 t259 = Z_dot_d * t23 * t182;
2931 t260 = Z_dot_d * t65 * t67 * t169 * 2.0;
2932 t261 = t258 + t259 + t260 - t85 * t257 - t23 * t67 * t188;
2933 t262 = t35 * t78 * (1.0 / 4.0);
2934 t263 = t72 * t78 * t121 * t125 * (1.0 / 4.0);
2935 t264 = t76 * t77 * t120 * t126 * (1.0 / 4.0);
2936 t265 = t262 + t263 + t264 - t42 * t77 * (1.0 / 4.0);
2937 t266 = X_dot_d * t23 * t151;
2938 t267 = t266 - t85 * t265 - t23 * t95 * t130 - t23 * t128 * t136 - X_dot_d * t65 * t95 * t128 * 2.0;
2939 t268 = -t23 * t95 * t173 - t23 * t136 * t169 - X_dot_d * t65 * t95 * t169 * 2.0;
2940 t269 = t23 * t147 * (t45 - t70);
2941 t270 = Y_dot_d * t65 * (t45 - t70) * (t80 - t101) * 2.0;
2942 t271 = t269 + t270 - t23 * t95 * t96;
2943 t272 = t78 * t98 * t121 * t125 * (1.0 / 4.0);
2944 t273 = t77 * t100 * t120 * t126 * (1.0 / 4.0);
2946 t275 = t23 * t145 * (t80 - t101);
2947 t276 = Y_dot_d * t23 * t151;
2948 t277 = t275 + t276 - t85 * t274 - t23 * t128 * t147 - Y_dot_d * t65 * t95 * t128 * 2.0;
2949 t278 = -t23 * t95 * t178 - t23 * t147 * t169 - Y_dot_d * t65 * t95 * t169 * 2.0;
2950 t279 = Z_dot_d * t65 * (t45 - t70) * (t80 - t101) * 2.0;
2951 t280 = t279 - t23 * t95 * t117 - t23 * t68 * t160;
2952 t282 = t78 * t114 * t121 * t125 * (1.0 / 4.0);
2953 t283 = t77 * t116 * t120 * t126 * (1.0 / 4.0);
2954 t284 = t23 * t128 * t160;
2955 t285 = t23 * t157 * (t80 - t101);
2956 t286 = Z_dot_d * t23 * t151;
2957 t287 = t23 * t160 * t169;
2958 t288 = t23 * t188 * (t80 - t101);
2959 t289 = t287 + t288 - Z_dot_d * t65 * t95 * t169 * 2.0;
2960 A0[0][3] = t23 * t68 * t124 -
2961 t23 * (t48 - t35 * (t29 - y[6 - 1] * 2.0) * (1.0 / 2.0)) *
2962 (t59 + t61 + t62 - t26 * t50 * (t24 - x[2 - 1] * 2.0) * (1.0 / 2.0)) +
2963 X_dot_d * t65 * t68 * t83 * 2.0;
2964 A0[0][4] = t223 + t224 - t85 * t222 + t23 * t68 * t133 - X_dot_d * t65 * t67 * t68 * 2.0;
2965 A0[0][5] = -t23 * t69 * (t80 - t35 * (t73 - z[6 - 1] * 2.0) * (1.0 / 2.0)) + t23 * t68 * t136 +
2966 X_dot_d * t65 * t95 * (t45 - t70) * 2.0;
2968 A0[0][10] = t236 + t237 - t85 * t235 + t23 * t67 * t96 - Y_dot_d * t65 * t67 * t68 * 2.0;
2971 A0[0][16] = t250 - t85 * t249 + t23 * t67 * t117 - t23 * t68 * t155 - Z_dot_d * t65 * t67 * t68 * 2.0;
2975 t85 * (t192 + t193 - t37 * t42 * (1.0 / 4.0) + t46 * t72 * t125 * (t118 - x[6 - 1] * 2.0) * (1.0 / 4.0)) -
2976 t23 * t83 * t130 - t23 * t124 * t128 - X_dot_d * t65 * t83 * t128 * 2.0;
2985 t284 + t285 + t286 - t85 * (t158 + t282 + t283 - t42 * t120 * (1.0 / 4.0)) - Z_dot_d * t65 * t95 * t128 * 2.0;
2986 A0[2][3] = -t23 * (t48 - t84) * (t172 - t26 * t50 * (t162 - y[2 - 1] * 2.0) * (1.0 / 2.0)) - t23 * t124 * t169 -
2987 X_dot_d * t65 * t83 * t169 * 2.0;
2988 A0[2][4] = t231 + t232 - t85 * t230 + t23 * t67 * t173 - t23 * t133 * t169;
2991 A0[2][10] = t243 + t244 + t245 - t85 * (t176 + t241 + t242 - t28 * t55 * (1.0 / 4.0)) - t23 * t143 * t169;
2996 A0[3][0] = -t23 * t69 * t83 + t23 * t124 * (t45 - t70) + X_dot_d * t65 * (t45 - t70) * (t48 - t84) * 2.0;
2997 A0[3][1] = t194 - t85 * (t192 + t193 - t37 * t42 * (1.0 / 4.0) + t46 * t72 * t121 * t125 * (1.0 / 4.0)) -
2998 t23 * t83 * t130 - t23 * t124 * t128 - X_dot_d * t65 * t83 * t128 * 2.0;
2999 A0[3][2] = -t23 * t83 * t173 - t23 * t124 * t169 - X_dot_d * t65 * t83 * t169 * 2.0;
3006 A0[4][0] = t223 + t224 - t85 * t222 + t23 * t133 * (t45 - t70) - X_dot_d * t65 * t67 * t68 * 2.0;
3008 A0[4][2] = t231 + t232 - t85 * t230 - t23 * t133 * t169 + t23 * t67 * (t172 - t195);
3009 A0[4][6] = t236 + t237 - t85 * t235 + t23 * t67 * (t91 - t196) - Y_dot_d * t65 * t67 * t68 * 2.0;
3011 A0[4][8] = t243 + t244 + t245 - t85 * (t176 - t240 + t241 + t242) - t23 * t143 * t169;
3012 A0[4][12] = t250 - t85 * t249 - t23 * t68 * t155 + t23 * t67 * (t108 - t208) - Z_dot_d * t65 * t67 * t68 * 2.0;
3015 A0[5][0] = -t23 * t69 * t95 + t23 * t136 * (t45 - t70) + X_dot_d * t65 * (t45 - t70) * (t80 - t101) * 2.0;
3022 A0[5][13] = t284 + t285 + t286 - t85 * (t158 - t281 + t282 + t283) - Z_dot_d * t65 * t95 * t128 * 2.0;
3026 void SurfCentroidSelf_f(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
const double totD,
3027 const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
ArrayVec<double> &A0)
3031 A0[0][0] = X_dot_d * t2;
3032 A0[0][1] = Y_dot_d * t2;
3033 A0[0][2] = Z_dot_d * t2;
3036 void SurfCentroidSelf_df(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
const double totD,
3037 const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
ArrayVec<double> &A0)
3039 double t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t35, t20, t21, t22, t23,
3040 t24, t25, t26, t27, t28, t29, t46, t30, t31, t32, t52, t33, t34, t36, t37, t56, t38, t39, t40, t41, t42, t43,
3041 t44, t45, t47, t48, t49, t61, t50, t51, t53, t62, t54, t55, t57, t58, t59, t60;
3042 t2 = x[1 - 1] - x[2 - 1];
3043 t3 = y[1 - 1] - y[2 - 1];
3044 t4 = z[1 - 1] - z[2 - 1];
3045 t5 = x[2 - 1] - x[3 - 1];
3046 t6 = y[2 - 1] - y[3 - 1];
3047 t7 = z[2 - 1] - z[3 - 1];
3051 t11 = t8 + t9 + t10;
3052 t12 = x[2 - 1] * (1.0 / 2.0);
3056 t16 = t13 + t14 + t15;
3057 t17 = x[1 - 1] * 2.0;
3058 t18 = x[2 - 1] * 2.0;
3059 t19 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t11);
3060 t35 = x[3 - 1] * 2.0;
3062 t21 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t16);
3064 t23 = x[1 - 1] * (1.0 / 2.0);
3066 t25 = x[3 - 1] * (1.0 / 2.0);
3068 t27 = 1.0 / (totD * totD);
3069 t28 = y[1 - 1] * 2.0;
3070 t29 = y[2 - 1] * 2.0;
3071 t46 = y[3 - 1] * 2.0;
3073 t31 = z[1 - 1] * 2.0;
3074 t32 = z[2 - 1] * 2.0;
3075 t52 = z[3 - 1] * 2.0;
3078 t36 = y[2 - 1] * (1.0 / 2.0);
3079 t37 = t20 * t21 * (1.0 / 2.0);
3080 t56 = t19 * t34 * (1.0 / 2.0);
3083 t40 = t39 * (1.0 / 2.0);
3085 t42 = t41 * (1.0 / 2.0);
3087 t44 = y[1 - 1] * (1.0 / 2.0);
3089 t47 = y[3 - 1] * (1.0 / 2.0);
3091 t49 = t21 * t30 * (1.0 / 2.0);
3092 t61 = t19 * t43 * (1.0 / 2.0);
3095 t53 = t21 * t33 * (1.0 / 2.0);
3096 t62 = t19 * t51 * (1.0 / 2.0);
3098 t55 = z[2 - 1] * (1.0 / 2.0);
3099 t57 = z[1 - 1] * (1.0 / 2.0);
3101 t59 = z[3 - 1] * (1.0 / 2.0);
3103 A0[0][0] = t22 * (t40 + t42 + t20 * t21 * t26 * (1.0 / 2.0) - t19 * t24 * (t17 - x[2 - 1] * 2.0) * (1.0 / 2.0)) -
3104 X_dot_d * t27 * t38;
3106 t22 * (t21 * t26 * t30 * (1.0 / 2.0) - t19 * t24 * (t28 - y[2 - 1] * 2.0) * (1.0 / 2.0)) - X_dot_d * t27 * t50;
3108 t22 * (t21 * t26 * t33 * (1.0 / 2.0) - t19 * t24 * (t31 - z[2 - 1] * 2.0) * (1.0 / 2.0)) - X_dot_d * t27 * t54;
3109 A0[1][0] = t22 * (t20 * t21 * t48 * (1.0 / 2.0) - t19 * t34 * t45 * (1.0 / 2.0)) - Y_dot_d * t27 * t38;
3110 A0[1][1] = t22 * (t40 + t42 + t21 * t30 * t48 * (1.0 / 2.0) - t19 * t43 * t45 * (1.0 / 2.0)) - Y_dot_d * t27 * t50;
3111 A0[1][2] = t22 * (t21 * t33 * t48 * (1.0 / 2.0) - t19 * t45 * t51 * (1.0 / 2.0)) - Y_dot_d * t27 * t54;
3112 A0[2][0] = t22 * (t20 * t21 * t60 * (1.0 / 2.0) - t19 * t34 * t58 * (1.0 / 2.0)) - Z_dot_d * t27 * t38;
3113 A0[2][1] = t22 * (t21 * t30 * t60 * (1.0 / 2.0) - t19 * t43 * t58 * (1.0 / 2.0)) - Z_dot_d * t27 * t50;
3114 A0[2][2] = t22 * (t40 + t42 + t21 * t33 * t60 * (1.0 / 2.0) - t19 * t51 * t58 * (1.0 / 2.0)) - Z_dot_d * t27 * t54;
3117 void SurfCentroidSelf_ddf(
const vector<double> &x,
const vector<double> &y,
const vector<double> &z,
const double totD,
3118 const double X_dot_d,
const double Y_dot_d,
const double Z_dot_d,
ArrayVec<double> &A0)
3120 double t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t27,
3121 t24, t25, t26, t28, t35, t29, t30, t31, t32, t33, t34, t36, t37, t38, t41, t39, t40, t42, t43, t44, t45, t46,
3122 t56, t47, t48, t49, t66, t50, t51, t52, t55, t53, t54, t57, t72, t58, t59, t60, t61, t62, t63, t64, t83, t84,
3123 t65, t67, t73, t68, t69, t70, t71, t74, t75, t76, t77, t78, t79, t80, t81, t82, t85, t88, t86, t87, t89, t90,
3124 t91, t137, t92, t93, t94, t103, t95, t96, t97, t98, t99, t100, t101, t102, t104, t144, t105, t106, t107, t171,
3125 t108, t109, t117, t110, t111, t112, t113, t114, t115, t134, t135, t116, t118, t119, t159, t120, t121, t122,
3126 t123, t124, t125, t126, t127, t136, t128, t129, t130, t131, t132, t133, t138, t174, t139, t140, t141, t163,
3127 t142, t143, t145, t146, t147, t148, t149, t150, t151, t152, t153, t154, t155, t156, t157, t158, t160, t161,
3128 t162, t164, t165, t166, t167, t168, t169, t183, t184, t170, t172, t173, t175, t176, t177, t178, t179, t180,
3130 t2 = x[1 - 1] - x[2 - 1];
3131 t3 = y[1 - 1] - y[2 - 1];
3132 t4 = z[1 - 1] - z[2 - 1];
3137 t9 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t8);
3138 t10 = x[2 - 1] - x[3 - 1];
3139 t11 = y[2 - 1] - y[3 - 1];
3140 t12 = z[2 - 1] - z[3 - 1];
3141 t13 = x[2 - 1] * (1.0 / 2.0);
3145 t17 = t14 + t15 + t16;
3146 t18 = 1.0 / sqrt(rsvsmath_automatic_eps_centre + t17);
3147 t19 = x[1 - 1] * 2.0;
3148 t20 = x[2 - 1] * 2.0;
3150 t22 = x[1 - 1] * (1.0 / 2.0);
3152 t27 = x[3 - 1] * 2.0;
3154 t25 = x[3 - 1] * (1.0 / 2.0);
3156 t28 = t18 * t24 * (1.0 / 2.0);
3157 t35 = t9 * t21 * (1.0 / 2.0);
3160 t31 = 1.0 / pow(t8, 3.0 / 2.0);
3162 t33 = 1.0 / pow(t17, 3.0 / 2.0);
3163 t34 = 1.0 / (totD * totD);
3165 t37 = y[1 - 1] * 2.0;
3166 t38 = y[2 - 1] * 2.0;
3167 t41 = y[3 - 1] * 2.0;
3171 t43 = t42 * (1.0 / 2.0);
3173 t45 = t44 * (1.0 / 2.0);
3174 t46 = t18 * t24 * t26 * (1.0 / 2.0);
3175 t56 = t9 * t21 * t23 * (1.0 / 2.0);
3176 t47 = t43 + t45 + t46 - t56;
3177 t48 = 1.0 / (totD * totD * totD);
3178 t49 = t9 * t40 * (1.0 / 2.0);
3179 t66 = t18 * t39 * (1.0 / 2.0);
3181 t51 = z[1 - 1] * 2.0;
3182 t52 = z[2 - 1] * 2.0;
3183 t55 = z[3 - 1] * 2.0;
3186 t57 = t9 * t54 * (1.0 / 2.0);
3187 t72 = t18 * t53 * (1.0 / 2.0);
3189 t59 = y[2 - 1] * (1.0 / 2.0);
3190 t60 = y[1 - 1] * (1.0 / 2.0);
3192 t62 = y[3 - 1] * (1.0 / 2.0);
3195 t83 = t30 * t31 * (1.0 / 4.0);
3196 t84 = t32 * t33 * (1.0 / 4.0);
3197 t65 = t9 + t18 - t83 - t84;
3198 t67 = t9 * t21 * t61 * (1.0 / 2.0);
3199 t73 = t18 * t24 * t63 * (1.0 / 2.0);
3201 t69 = t21 * t31 * t40 * (1.0 / 4.0);
3202 t70 = t24 * t33 * t39 * (1.0 / 4.0);
3204 t74 = t21 * t31 * t54 * (1.0 / 4.0);
3205 t75 = t24 * t33 * t53 * (1.0 / 4.0);
3207 t77 = z[2 - 1] * (1.0 / 2.0);
3208 t78 = z[1 - 1] * (1.0 / 2.0);
3210 t80 = z[3 - 1] * (1.0 / 2.0);
3213 t85 = t9 * t21 * t79 * (1.0 / 2.0);
3214 t88 = t18 * t24 * t81 * (1.0 / 2.0);
3216 t87 = t9 * t21 * (1.0 / 4.0);
3217 t89 = t9 * t40 * (1.0 / 4.0);
3218 t90 = t21 * t23 * t31 * t40 * (1.0 / 4.0);
3219 t91 = t24 * t26 * t33 * t39 * (1.0 / 4.0);
3220 t137 = t18 * t39 * (1.0 / 4.0);
3221 t92 = t89 + t90 + t91 - t137;
3222 t93 = t34 * t47 * t50;
3223 t94 = t9 * t23 * t40 * (1.0 / 2.0);
3224 t103 = t18 * t26 * t39 * (1.0 / 2.0);
3226 t96 = t34 * t95 * (t28 - t35);
3227 t97 = X_dot_d * t34 * t71;
3228 t98 = t93 + t96 + t97 - t36 * t92 - X_dot_d * t29 * t48 * t50 * 2.0;
3233 t104 = t9 * t23 * t54 * (1.0 / 2.0);
3234 t144 = t18 * t26 * t53 * (1.0 / 2.0);
3236 t106 = t21 * t31 * t40 * t61 * (1.0 / 4.0);
3237 t107 = t24 * t33 * t39 * t63 * (1.0 / 4.0);
3238 t171 = t18 * t24 * (1.0 / 4.0);
3239 t108 = t87 + t106 + t107 - t171;
3240 t109 = t18 * t39 * t63 * (1.0 / 2.0);
3241 t117 = t9 * t40 * t61 * (1.0 / 2.0);
3242 t110 = t43 + t45 + t109 - t117;
3243 t111 = Y_dot_d * t34 * t71;
3244 t112 = t111 - t36 * t108 - t34 * t50 * t68 - t29 * t34 * t110 - Y_dot_d * t29 * t48 * t50 * 2.0;
3248 t134 = t31 * t101 * (1.0 / 4.0);
3249 t135 = t33 * t102 * (1.0 / 4.0);
3250 t116 = t9 + t18 - t134 - t135;
3251 t118 = t9 * t54 * (1.0 / 4.0);
3252 t119 = t9 * t54 * t61 * (1.0 / 2.0);
3253 t159 = t18 * t53 * t63 * (1.0 / 2.0);
3255 t121 = t31 * t40 * t54 * (1.0 / 4.0);
3256 t122 = t33 * t39 * t53 * (1.0 / 4.0);
3258 t124 = t21 * t31 * t40 * t79 * (1.0 / 4.0);
3259 t125 = t24 * t33 * t39 * t81 * (1.0 / 4.0);
3261 t127 = t9 * t40 * t79 * (1.0 / 2.0);
3262 t136 = t18 * t39 * t81 * (1.0 / 2.0);
3264 t129 = t34 * t128 * (t28 - t35);
3265 t130 = Z_dot_d * t34 * t71;
3266 t131 = t129 + t130 - t36 * t126 - t34 * t50 * t86 - Z_dot_d * t29 * t48 * t50 * 2.0;
3269 t138 = t18 * t53 * t81 * (1.0 / 2.0);
3270 t174 = t9 * t54 * t79 * (1.0 / 2.0);
3271 t139 = t43 + t45 + t138 - t174;
3272 t140 = t21 * t23 * t31 * t54 * (1.0 / 4.0);
3273 t141 = t24 * t26 * t33 * t53 * (1.0 / 4.0);
3274 t163 = t18 * t53 * (1.0 / 4.0);
3275 t142 = t118 + t140 + t141 - t163;
3276 t143 = t34 * t47 * t58;
3277 t145 = t34 * t105 * (t28 - t35);
3278 t146 = X_dot_d * t34 * t76;
3279 t147 = t143 + t145 + t146 - t36 * t142 - X_dot_d * t29 * t48 * t58 * 2.0;
3280 t148 = t23 * t31 * t40 * t54 * (1.0 / 4.0);
3281 t149 = t26 * t33 * t39 * t53 * (1.0 / 4.0);
3283 t151 = X_dot_d * t34 * t123;
3284 t152 = X_dot_d * t48 * t50 * t58 * 2.0;
3285 t153 = t151 + t152 - t36 * t150 - t34 * t58 * t95 - t34 * t50 * t105;
3288 t156 = t21 * t31 * t54 * t61 * (1.0 / 4.0);
3289 t157 = t24 * t33 * t53 * t63 * (1.0 / 4.0);
3291 t160 = t34 * t120 * (t28 - t35);
3292 t161 = Y_dot_d * t34 * t76;
3293 t162 = t160 + t161 - t36 * t158 - t34 * t58 * t68 - Y_dot_d * t29 * t48 * t58 * 2.0;
3294 t164 = t31 * t40 * t54 * t61 * (1.0 / 4.0);
3295 t165 = t33 * t39 * t53 * t63 * (1.0 / 4.0);
3296 t166 = t34 * t58 * t110;
3297 t167 = Y_dot_d * t34 * t123;
3298 t168 = Y_dot_d * t48 * t50 * t58 * 2.0;
3300 t183 = t31 * t154 * (1.0 / 4.0);
3301 t184 = t33 * t155 * (1.0 / 4.0);
3302 t170 = t9 + t18 - t183 - t184;
3303 t172 = t21 * t31 * t54 * t79 * (1.0 / 4.0);
3304 t173 = t24 * t33 * t53 * t81 * (1.0 / 4.0);
3305 t175 = Z_dot_d * t34 * t76;
3306 t176 = t31 * t40 * t54 * t79 * (1.0 / 4.0);
3307 t177 = t33 * t39 * t53 * t81 * (1.0 / 4.0);
3308 t178 = t89 - t137 + t176 + t177;
3309 t179 = t34 * t50 * t139;
3310 t180 = Z_dot_d * t34 * t123;
3311 t181 = Z_dot_d * t48 * t50 * t58 * 2.0;
3312 t182 = t179 + t180 + t181 - t36 * t178 - t34 * t58 * t128;
3313 A0[0][0] = t36 * (t28 + t99 + t100 - t9 * (t19 - x[2 - 1] * 2.0) * (1.0 / 2.0) - t23 * t30 * t31 * (1.0 / 4.0) -
3314 t26 * t32 * t33 * (1.0 / 4.0)) -
3315 X_dot_d * t34 * t65 - t29 * t34 * t47 * 2.0 + X_dot_d * (t29 * t29) * t48 * 2.0;
3318 A0[0][3] = t36 * (t113 + t114 - t30 * t31 * t61 * (1.0 / 4.0) - t32 * t33 * t63 * (1.0 / 4.0)) +
3319 Y_dot_d * t48 * (t64 * t64) * 2.0 - Y_dot_d * t34 * t65 + t34 * t68 * (t28 - t35) * 2.0;
3322 A0[0][6] = t36 * (t132 + t133 - t30 * t31 * t79 * (1.0 / 4.0) - t32 * t33 * t81 * (1.0 / 4.0)) +
3323 Z_dot_d * t48 * (t82 * t82) * 2.0 - Z_dot_d * t34 * t65 + t34 * t86 * (t28 - t35) * 2.0;
3325 A0[0][8] = t175 - t36 * (t87 + t172 + t173 - t18 * t24 * (1.0 / 4.0)) - t34 * t58 * t86 - t29 * t34 * t139 -
3326 Z_dot_d * t29 * t48 * t58 * 2.0;
3328 A0[1][1] = t36 * (t99 + t100 - t23 * t31 * t101 * (1.0 / 4.0) - t26 * t33 * t102 * (1.0 / 4.0)) -
3329 X_dot_d * t34 * t116 + X_dot_d * t48 * t115 * 2.0 - t34 * t50 * t95 * 2.0;
3332 A0[1][4] = -t36 * (t49 - t66 - t113 - t114 + t31 * t61 * t101 * (1.0 / 4.0) + t33 * t63 * t102 * (1.0 / 4.0)) -
3333 Y_dot_d * t34 * t116 + Y_dot_d * t48 * t115 * 2.0 + t34 * t50 * t110 * 2.0;
3334 A0[1][5] = t166 + t167 + t168 - t36 * (t118 + t164 + t165 - t18 * t53 * (1.0 / 4.0)) - t34 * t50 * t120;
3336 A0[1][7] = t36 * (t132 + t133 - t31 * t79 * t101 * (1.0 / 4.0) - t33 * t81 * t102 * (1.0 / 4.0)) -
3337 Z_dot_d * t34 * t116 + Z_dot_d * t48 * t115 * 2.0 - t34 * t50 * t128 * 2.0;
3341 A0[2][2] = t36 * (t99 + t100 - t23 * t31 * t154 * (1.0 / 4.0) - t26 * t33 * t155 * (1.0 / 4.0)) -
3342 X_dot_d * t34 * t170 + X_dot_d * t48 * t169 * 2.0 - t34 * t58 * t105 * 2.0;
3344 A0[2][4] = t166 + t167 + t168 - t36 * (t118 - t163 + t164 + t165) - t34 * t50 * t120;
3345 A0[2][5] = t36 * (t113 + t114 - t31 * t61 * t154 * (1.0 / 4.0) - t33 * t63 * t155 * (1.0 / 4.0)) -
3346 Y_dot_d * t34 * t170 + Y_dot_d * t48 * t169 * 2.0 - t34 * t58 * t120 * 2.0;
3348 t175 - t36 * (t87 - t171 + t172 + t173) - t34 * t58 * t86 - t29 * t34 * t139 - Z_dot_d * t29 * t48 * t58 * 2.0;
3350 A0[2][8] = -t36 * (t57 - t72 - t132 - t133 + t31 * t79 * t154 * (1.0 / 4.0) + t33 * t81 * t155 * (1.0 / 4.0)) -
3351 Z_dot_d * t34 * t170 + Z_dot_d * t48 * t169 * 2.0 + t34 * t58 * t139 * 2.0;
3354 #pragma GCC diagnostic pop
Provides a 2D std::vector based container.