00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #include <qvsfm/qvgea/quaternionEssentialEvaluation.h>
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095 void quaternionEssentialEvaluation(const double *pose1, const double *pose2, double *cg)
00096 {
00097 const double
00098 v1x0 = pose1[0],
00099 v1x1 = pose1[1],
00100 v1x2 = pose1[2],
00101 v1x3 = pose1[3],
00102 v1x4 = pose1[4],
00103 v1x5 = pose1[5],
00104 v1x6 = pose1[6];
00105
00106 const double
00107 v2x0 = pose2[0],
00108 v2x1 = pose2[1],
00109 v2x2 = pose2[2],
00110 v2x3 = pose2[3],
00111 v2x4 = pose2[4],
00112 v2x5 = pose2[5],
00113 v2x6 = pose2[6];
00114
00115 const double t1 = v2x0 * v2x0;
00116 const double t2 = v2x1 * v2x1;
00117 const double t3 = v2x2 * v2x2;
00118 const double t4 = v2x3 * v2x3;
00119 const double t5 = t1 + t2 + t3 + t4;
00120 const double t6 = 0.1e1 / t5;
00121 const double t8 = 0.20e1 * v2x0 * v2x1;
00122 const double t10 = 0.20e1 * v2x2 * v2x3;
00123 const double t11 = t8 - t10;
00124 const double t12 = t6 * t11;
00125 const double t13 = ( v2x4 * v2x4);
00126 const double t16 = ( v1x4 * v1x4);
00127 const double t17 = ( v2x5 * v2x5);
00128 const double t20 = ( v1x5 * v1x5);
00129 const double t21 = ( v2x6 * v2x6);
00130 const double t24 = ( v1x6 * v1x6);
00131 const double t25 = t13 - 2 * v2x4 * v1x4 + t16 + t17 - 2 * v2x5 * v1x5 + t20 + t21 - 2 * v2x6 * v1x6 + t24;
00132 const double t26 = sqrt( t25);
00133 const double t27 = 0.1e1 / t26;
00134 const double t28 = v2x6 - v1x6;
00135 const double t29 = t27 * t28;
00136 const double t32 = 0.20e1 * v2x2 * v2x0;
00137 const double t34 = 0.20e1 * v2x1 * v2x3;
00138 const double t35 = t32 + t34;
00139 const double t36 = t6 * t35;
00140 const double t37 = v2x5 - v1x5;
00141 const double t38 = t27 * t37;
00142 const double t40 = t12 * t29 - t36 * t38;
00143 const double t41 = v1x0 * v1x0;
00144 const double t42 = v1x1 * v1x1;
00145 const double t43 = v1x2 * v1x2;
00146 const double t44 = v1x3 * v1x3;
00147 const double t45 = t41 + t42 + t43 + t44;
00148 const double t46 = t45 * t45;
00149 const double t47 = 0.1e1 / t46;
00150 const double t48 = t40 * t47;
00151 const double t49 = 0.20e1 * t42;
00152 const double t50 = 0.20e1 * t43;
00153 const double t51 = -t49 - t50;
00154 const double t52 = t51 * v1x0;
00155 const double t55 = 0.20e1 * t2;
00156 const double t56 = 0.20e1 * t3;
00157 const double t57 = -t55 - t56;
00158 const double t59 = 0.1e1 + t6 * t57;
00159 const double t60 = t59 * t27;
00160 const double t62 = v2x4 - v1x4;
00161 const double t63 = t27 * t62;
00162 const double t65 = -t60 * t28 + t36 * t63;
00163 const double t66 = t65 * t47;
00164 const double t68 = 0.20e1 * v1x0 * v1x1;
00165 const double t70 = 0.20e1 * v1x2 * v1x3;
00166 const double t71 = t68 - t70;
00167 const double t72 = t71 * v1x0;
00168 const double t75 = 0.1e1 / t45;
00169 const double t76 = t65 * t75;
00170 const double t78 = 0.20e1 * t76 * v1x1;
00171 const double t81 = t60 * t37 - t12 * t63;
00172 const double t82 = t81 * t47;
00173 const double t84 = 0.20e1 * v1x2 * v1x0;
00174 const double t86 = 0.20e1 * v1x1 * v1x3;
00175 const double t87 = t84 + t86;
00176 const double t88 = t87 * v1x0;
00177 const double t91 = t81 * t75;
00178 const double t93 = 0.20e1 * t91 * v1x2;
00179 const double t95 = t47 * t51;
00180 const double t99 = 0.40e1 * t75 * v1x1;
00181 const double t100 = -0.2e1 * t95 * v1x1 - t99;
00182 const double t102 = t71 * v1x1;
00183 const double t106 = 0.20e1 * t76 * v1x0;
00184 const double t107 = t87 * v1x1;
00185 const double t111 = 0.20e1 * t91 * v1x3;
00186 const double t116 = 0.40e1 * t75 * v1x2;
00187 const double t117 = -0.2e1 * t95 * v1x2 - t116;
00188 const double t119 = t71 * v1x2;
00189 const double t123 = 0.20e1 * t76 * v1x3;
00190 const double t124 = t87 * v1x2;
00191 const double t128 = 0.20e1 * t91 * v1x0;
00192 const double t130 = t51 * v1x3;
00193 const double t133 = t71 * v1x3;
00194 const double t137 = 0.20e1 * t76 * v1x2;
00195 const double t138 = t87 * v1x3;
00196 const double t142 = 0.20e1 * t91 * v1x1;
00197 const double t145 = 0.1e1 / t26 / t25;
00198 const double t146 = t145 * t28;
00199 const double t147 = -0.2e1 * t146 * t62;
00200 const double t149 = t145 * t37;
00201 const double t150 = -0.2e1 * t149 * t62;
00202 const double t152 = -t12 * t147 + t36 * t150;
00203 const double t154 = 0.1e1 + t75 * t51;
00204 const double t156 = t59 * t145;
00205 const double t157 = -2 * t28 * t62;
00206 const double t160 = t145 * t62;
00207 const double t161 = -0.2e1 * t160 * t62;
00208 const double t164 = t36 * t27;
00209 const double t165 = t156 * t157 / 0.2e1 - t36 * t161 / 0.2e1 - t164;
00210 const double t166 = t165 * t75;
00211 const double t168 = -2 * t37 * t62;
00212 const double t173 = t12 * t27;
00213 const double t174 = -t156 * t168 / 0.2e1 + t12 * t161 / 0.2e1 + t173;
00214 const double t175 = t174 * t75;
00215 const double t178 = -0.2e1 * t146 * t37;
00216 const double t181 = -0.2e1 * t149 * t37;
00217 const double t184 = -t12 * t178 / 0.2e1 + t36 * t181 / 0.2e1 + t164;
00218 const double t186 = -2 * t28 * t37;
00219 const double t187 = t156 * t186;
00220 const double t188 = -0.2e1 * t160 * t37;
00221 const double t190 = t187 - t36 * t188;
00222 const double t191 = t190 * t75 / 0.2e1;
00223 const double t193 = -2 * t37 * t37;
00224 const double t198 = -t156 * t193 / 0.2e1 - t60 + t12 * t188 / 0.2e1;
00225 const double t199 = t198 * t75;
00226 const double t202 = -0.2e1 * t146 * t28;
00227 const double t205 = -0.2e1 * t149 * t28;
00228 const double t208 = -t12 * t202 / 0.2e1 - t173 + t36 * t205 / 0.2e1;
00229 const double t210 = -2 * t28 * t28;
00230 const double t213 = -0.2e1 * t160 * t28;
00231 const double t216 = t156 * t210 / 0.2e1 + t60 - t36 * t213 / 0.2e1;
00232 const double t217 = t216 * t75;
00233 const double t220 = -t187 + t12 * t213;
00234 const double t221 = t220 * t75 / 0.2e1;
00235 const double t224 = t5 * t5;
00236 const double t225 = 0.1e1 / t224;
00237 const double t226 = t225 * t11;
00238 const double t227 = t29 * v2x0;
00239 const double t230 = t6 * v2x1;
00240 const double t232 = 0.20e1 * t230 * t29;
00241 const double t233 = t225 * t35;
00242 const double t234 = t38 * v2x0;
00243 const double t237 = t6 * v2x2;
00244 const double t239 = 0.20e1 * t237 * t38;
00245 const double t240 = -0.2e1 * t226 * t227 + t232 + 0.2e1 * t233 * t234 - t239;
00246 const double t242 = t225 * t57;
00247 const double t245 = t63 * v2x0;
00248 const double t249 = 0.20e1 * t237 * t63;
00249 const double t250 = 0.2e1 * t242 * t227 - 0.2e1 * t233 * t245 + t249;
00250 const double t251 = t250 * t75;
00251 const double t258 = 0.20e1 * t230 * t63;
00252 const double t259 = -0.2e1 * t242 * t234 + 0.2e1 * t226 * t245 - t258;
00253 const double t260 = t259 * t75;
00254 const double t263 = t29 * v2x1;
00255 const double t266 = t6 * v2x0;
00256 const double t268 = 0.20e1 * t266 * t29;
00257 const double t269 = t38 * v2x1;
00258 const double t272 = t6 * v2x3;
00259 const double t274 = 0.20e1 * t272 * t38;
00260 const double t275 = -0.2e1 * t226 * t263 + t268 + 0.2e1 * t233 * t269 - t274;
00261 const double t279 = 0.40e1 * t230;
00262 const double t281 = (-0.2e1 * t242 * v2x1 - t279) * t27;
00263 const double t283 = t63 * v2x1;
00264 const double t287 = 0.20e1 * t272 * t63;
00265 const double t288 = -t281 * t28 - 0.2e1 * t233 * t283 + t287;
00266 const double t289 = t288 * t75;
00267 const double t295 = 0.20e1 * t266 * t63;
00268 const double t296 = t281 * t37 + 0.2e1 * t226 * t283 - t295;
00269 const double t297 = t296 * t75;
00270 const double t300 = t29 * v2x2;
00271 const double t304 = 0.20e1 * t272 * t29;
00272 const double t305 = t38 * v2x2;
00273 const double t309 = 0.20e1 * t266 * t38;
00274 const double t310 = -0.2e1 * t226 * t300 - t304 + 0.2e1 * t233 * t305 - t309;
00275 const double t314 = 0.40e1 * t237;
00276 const double t316 = (-0.2e1 * t242 * v2x2 - t314) * t27;
00277 const double t318 = t63 * v2x2;
00278 const double t321 = -t316 * t28 - 0.2e1 * t233 * t318 + t295;
00279 const double t322 = t321 * t75;
00280 const double t327 = t316 * t37 + 0.2e1 * t226 * t318 + t287;
00281 const double t328 = t327 * t75;
00282 const double t331 = t29 * v2x3;
00283 const double t335 = 0.20e1 * t237 * t29;
00284 const double t336 = t38 * v2x3;
00285 const double t340 = 0.20e1 * t230 * t38;
00286 const double t341 = -0.2e1 * t226 * t331 - t335 + 0.2e1 * t233 * t336 - t340;
00287 const double t345 = t63 * v2x3;
00288 const double t348 = 0.2e1 * t242 * t331 - 0.2e1 * t233 * t345 + t258;
00289 const double t349 = t348 * t75;
00290 const double t355 = -0.2e1 * t242 * t336 + 0.2e1 * t226 * t345 + t249;
00291 const double t356 = t355 * t75;
00292 const double t359 = 0.2e1 * t146 * t62;
00293 const double t361 = 0.2e1 * t149 * t62;
00294 const double t363 = -t12 * t359 + t36 * t361;
00295 const double t365 = 2 * t28 * t62;
00296 const double t368 = 0.2e1 * t160 * t62;
00297 const double t371 = t156 * t365 / 0.2e1 - t36 * t368 / 0.2e1 + t164;
00298 const double t372 = t371 * t75;
00299 const double t374 = 2 * t37 * t62;
00300 const double t379 = -t156 * t374 / 0.2e1 + t12 * t368 / 0.2e1 - t173;
00301 const double t380 = t379 * t75;
00302 const double t383 = 0.2e1 * t146 * t37;
00303 const double t386 = 0.2e1 * t149 * t37;
00304 const double t389 = -t12 * t383 / 0.2e1 + t36 * t386 / 0.2e1 - t164;
00305 const double t391 = 2 * t28 * t37;
00306 const double t392 = t156 * t391;
00307 const double t393 = 0.2e1 * t160 * t37;
00308 const double t395 = t392 - t36 * t393;
00309 const double t396 = t395 * t75 / 0.2e1;
00310 const double t398 = 2 * t37 * t37;
00311 const double t403 = -t156 * t398 / 0.2e1 + t60 + t12 * t393 / 0.2e1;
00312 const double t404 = t403 * t75;
00313 const double t407 = 0.2e1 * t146 * t28;
00314 const double t410 = 0.2e1 * t149 * t28;
00315 const double t413 = -t12 * t407 / 0.2e1 + t173 + t36 * t410 / 0.2e1;
00316 const double t415 = 2 * t28 * t28;
00317 const double t418 = 0.2e1 * t160 * t28;
00318 const double t421 = t156 * t415 / 0.2e1 - t60 - t36 * t418 / 0.2e1;
00319 const double t422 = t421 * t75;
00320 const double t425 = -t392 + t12 * t418;
00321 const double t426 = t425 * t75 / 0.2e1;
00322 const double t433 = t68 + t70;
00323 const double t434 = t433 * v1x0;
00324 const double t437 = t40 * t75;
00325 const double t439 = 0.20e1 * t437 * v1x1;
00326 const double t440 = 0.20e1 * t41;
00327 const double t441 = -t50 - t440;
00328 const double t442 = t47 * t441;
00329 const double t446 = 0.40e1 * t75 * v1x0;
00330 const double t447 = -0.2e1 * t442 * v1x0 - t446;
00331 const double t450 = 0.20e1 * v1x1 * v1x2;
00332 const double t452 = 0.20e1 * v1x0 * v1x3;
00333 const double t453 = t450 - t452;
00334 const double t454 = t453 * v1x0;
00335 const double t458 = t433 * v1x1;
00336 const double t462 = 0.20e1 * t437 * v1x0;
00337 const double t463 = t441 * v1x1;
00338 const double t466 = t453 * v1x1;
00339 const double t470 = t433 * v1x2;
00340 const double t474 = 0.20e1 * t437 * v1x3;
00341 const double t477 = -0.2e1 * t442 * v1x2 - t116;
00342 const double t479 = t453 * v1x2;
00343 const double t483 = t433 * v1x3;
00344 const double t487 = 0.20e1 * t437 * v1x2;
00345 const double t488 = t441 * v1x3;
00346 const double t491 = t453 * v1x3;
00347 const double t495 = t152 * t75 / 0.2e1;
00348 const double t498 = 0.1e1 + t75 * t441;
00349 const double t502 = t184 * t75;
00350 const double t507 = t208 * t75;
00351 const double t512 = t240 * t75;
00352 const double t517 = t275 * t75;
00353 const double t522 = t310 * t75;
00354 const double t527 = t341 * t75;
00355 const double t532 = t363 * t75 / 0.2e1;
00356 const double t537 = t389 * t75;
00357 const double t542 = t413 * t75;
00358 const double t551 = t84 - t86;
00359 const double t552 = t551 * v1x0;
00360 const double t555 = t450 + t452;
00361 const double t556 = t555 * v1x0;
00362 const double t559 = -t49 - t440;
00363 const double t560 = t47 * t559;
00364 const double t563 = -0.2e1 * t560 * v1x0 - t446;
00365 const double t566 = t551 * v1x1;
00366 const double t569 = t555 * v1x1;
00367 const double t574 = -0.2e1 * t560 * v1x1 - t99;
00368 const double t577 = t551 * v1x2;
00369 const double t580 = t555 * v1x2;
00370 const double t583 = t559 * v1x2;
00371 const double t587 = t551 * v1x3;
00372 const double t590 = t555 * v1x3;
00373 const double t593 = t559 * v1x3;
00374 const double t600 = 0.1e1 + t75 * t559;
00375 const double t643 = 0.20e1 * t1;
00376 const double t644 = -t56 - t643;
00377 const double t646 = 0.1e1 + t6 * t644;
00378 const double t647 = t646 * t27;
00379 const double t650 = 0.20e1 * v2x1 * v2x2;
00380 const double t652 = 0.20e1 * v2x0 * v2x3;
00381 const double t653 = t650 - t652;
00382 const double t654 = t6 * t653;
00383 const double t656 = t647 * t28 - t654 * t38;
00384 const double t657 = t656 * t47;
00385 const double t660 = t8 + t10;
00386 const double t661 = t6 * t660;
00387 const double t664 = -t661 * t29 + t654 * t63;
00388 const double t665 = t664 * t47;
00389 const double t668 = t664 * t75;
00390 const double t670 = 0.20e1 * t668 * v1x1;
00391 const double t673 = t661 * t38 - t647 * t62;
00392 const double t674 = t673 * t47;
00393 const double t677 = t673 * t75;
00394 const double t679 = 0.20e1 * t677 * v1x2;
00395 const double t685 = 0.20e1 * t668 * v1x0;
00396 const double t689 = 0.20e1 * t677 * v1x3;
00397 const double t695 = 0.20e1 * t668 * v1x3;
00398 const double t699 = 0.20e1 * t677 * v1x0;
00399 const double t706 = 0.20e1 * t668 * v1x2;
00400 const double t710 = 0.20e1 * t677 * v1x1;
00401 const double t712 = t646 * t145;
00402 const double t713 = t712 * t157;
00403 const double t715 = -t713 + t654 * t150;
00404 const double t721 = t654 * t27;
00405 const double t722 = t661 * t147 / 0.2e1 - t654 * t161 / 0.2e1 - t721;
00406 const double t723 = t722 * t75;
00407 const double t727 = -2 * t62 * t62;
00408 const double t730 = -t661 * t150 / 0.2e1 + t712 * t727 / 0.2e1 + t647;
00409 const double t731 = t730 * t75;
00410 const double t738 = -t712 * t186 / 0.2e1 + t654 * t181 / 0.2e1 + t721;
00411 const double t742 = t661 * t178 - t654 * t188;
00412 const double t743 = t742 * t75 / 0.2e1;
00413 const double t747 = t661 * t27;
00414 const double t750 = -t661 * t181 / 0.2e1 - t747 + t712 * t168 / 0.2e1;
00415 const double t751 = t750 * t75;
00416 const double t758 = -t712 * t210 / 0.2e1 - t647 + t654 * t205 / 0.2e1;
00417 const double t764 = t661 * t202 / 0.2e1 + t747 - t654 * t213 / 0.2e1;
00418 const double t765 = t764 * t75;
00419 const double t768 = -t661 * t205 + t713;
00420 const double t769 = t768 * t75 / 0.2e1;
00421 const double t772 = t225 * t644;
00422 const double t775 = 0.40e1 * t266;
00423 const double t777 = (-0.2e1 * t772 * v2x0 - t775) * t27;
00424 const double t779 = t225 * t653;
00425 const double t782 = t777 * t28 + 0.2e1 * t779 * t234 + t274;
00426 const double t784 = t225 * t660;
00427 const double t789 = 0.2e1 * t784 * t227 - t232 - 0.2e1 * t779 * t245 - t287;
00428 const double t790 = t789 * t75;
00429 const double t795 = -0.2e1 * t784 * t234 + t340 - t777 * t62;
00430 const double t796 = t795 * t75;
00431 const double t803 = -0.2e1 * t772 * t263 + 0.2e1 * t779 * t269 - t239;
00432 const double t809 = 0.2e1 * t784 * t263 - t268 - 0.2e1 * t779 * t283 + t249;
00433 const double t810 = t809 * t75;
00434 const double t816 = -0.2e1 * t784 * t269 + t309 + 0.2e1 * t772 * t283;
00435 const double t817 = t816 * t75;
00436 const double t823 = (-0.2e1 * t772 * v2x2 - t314) * t27;
00437 const double t827 = t823 * t28 + 0.2e1 * t779 * t305 - t340;
00438 const double t833 = 0.2e1 * t784 * t300 - t304 - 0.2e1 * t779 * t318 + t258;
00439 const double t834 = t833 * t75;
00440 const double t839 = -0.2e1 * t784 * t305 + t274 - t823 * t62;
00441 const double t840 = t839 * t75;
00442 const double t847 = -0.2e1 * t772 * t331 + 0.2e1 * t779 * t336 + t309;
00443 const double t853 = 0.2e1 * t784 * t331 - t335 - 0.2e1 * t779 * t345 - t295;
00444 const double t854 = t853 * t75;
00445 const double t860 = -0.2e1 * t784 * t336 + t239 + 0.2e1 * t772 * t345;
00446 const double t861 = t860 * t75;
00447 const double t864 = t712 * t365;
00448 const double t866 = -t864 + t654 * t361;
00449 const double t872 = t661 * t359 / 0.2e1 - t654 * t368 / 0.2e1 + t721;
00450 const double t873 = t872 * t75;
00451 const double t877 = 2 * t62 * t62;
00452 const double t880 = -t661 * t361 / 0.2e1 + t712 * t877 / 0.2e1 - t647;
00453 const double t881 = t880 * t75;
00454 const double t888 = -t712 * t391 / 0.2e1 + t654 * t386 / 0.2e1 - t721;
00455 const double t892 = t661 * t383 - t654 * t393;
00456 const double t893 = t892 * t75 / 0.2e1;
00457 const double t899 = -t661 * t386 / 0.2e1 + t747 + t712 * t374 / 0.2e1;
00458 const double t900 = t899 * t75;
00459 const double t907 = -t712 * t415 / 0.2e1 + t647 + t654 * t410 / 0.2e1;
00460 const double t913 = t661 * t407 / 0.2e1 - t747 - t654 * t418 / 0.2e1;
00461 const double t914 = t913 * t75;
00462 const double t917 = -t661 * t410 + t864;
00463 const double t918 = t917 * t75 / 0.2e1;
00464 const double t927 = t656 * t75;
00465 const double t929 = 0.20e1 * t927 * v1x1;
00466 const double t937 = 0.20e1 * t927 * v1x0;
00467 const double t946 = 0.20e1 * t927 * v1x3;
00468 const double t954 = 0.20e1 * t927 * v1x2;
00469 const double t960 = t715 * t75 / 0.2e1;
00470 const double t965 = t738 * t75;
00471 const double t970 = t758 * t75;
00472 const double t975 = t782 * t75;
00473 const double t980 = t803 * t75;
00474 const double t985 = t827 * t75;
00475 const double t990 = t847 * t75;
00476 const double t995 = t866 * t75 / 0.2e1;
00477 const double t1000 = t888 * t75;
00478 const double t1005 = t907 * t75;
00479 const double t1084 = t650 + t652;
00480 const double t1085 = t6 * t1084;
00481 const double t1087 = -t55 - t643;
00482 const double t1089 = 0.1e1 + t6 * t1087;
00483 const double t1090 = t1089 * t27;
00484 const double t1092 = t1085 * t29 - t1090 * t37;
00485 const double t1093 = t1092 * t47;
00486 const double t1096 = t32 - t34;
00487 const double t1097 = t6 * t1096;
00488 const double t1100 = -t1097 * t29 + t1090 * t62;
00489 const double t1101 = t1100 * t47;
00490 const double t1104 = t1100 * t75;
00491 const double t1106 = 0.20e1 * t1104 * v1x1;
00492 const double t1109 = t1097 * t38 - t1085 * t63;
00493 const double t1110 = t1109 * t47;
00494 const double t1113 = t1109 * t75;
00495 const double t1115 = 0.20e1 * t1113 * v1x2;
00496 const double t1121 = 0.20e1 * t1104 * v1x0;
00497 const double t1125 = 0.20e1 * t1113 * v1x3;
00498 const double t1131 = 0.20e1 * t1104 * v1x3;
00499 const double t1135 = 0.20e1 * t1113 * v1x0;
00500 const double t1142 = 0.20e1 * t1104 * v1x2;
00501 const double t1146 = 0.20e1 * t1113 * v1x1;
00502 const double t1149 = t1089 * t145;
00503 const double t1150 = t1149 * t168;
00504 const double t1151 = -t1085 * t147 + t1150;
00505 const double t1157 = t1097 * t147 / 0.2e1 - t1149 * t727 / 0.2e1 - t1090;
00506 const double t1158 = t1157 * t75;
00507 const double t1164 = t1085 * t27;
00508 const double t1165 = -t1097 * t150 / 0.2e1 + t1085 * t161 / 0.2e1 + t1164;
00509 const double t1166 = t1165 * t75;
00510 const double t1173 = -t1085 * t178 / 0.2e1 + t1149 * t193 / 0.2e1 + t1090;
00511 const double t1176 = t1097 * t178 - t1150;
00512 const double t1177 = t1176 * t75 / 0.2e1;
00513 const double t1181 = t1097 * t27;
00514 const double t1184 = -t1097 * t181 / 0.2e1 - t1181 + t1085 * t188 / 0.2e1;
00515 const double t1185 = t1184 * t75;
00516 const double t1192 = -t1085 * t202 / 0.2e1 - t1164 + t1149 * t186 / 0.2e1;
00517 const double t1198 = t1097 * t202 / 0.2e1 + t1181 - t1149 * t157 / 0.2e1;
00518 const double t1199 = t1198 * t75;
00519 const double t1203 = -t1097 * t205 + t1085 * t213;
00520 const double t1204 = t1203 * t75 / 0.2e1;
00521 const double t1207 = t225 * t1084;
00522 const double t1210 = t225 * t1087;
00523 const double t1214 = (-0.2e1 * t1210 * v2x0 - t775) * t27;
00524 const double t1216 = -0.2e1 * t1207 * t227 + t304 - t1214 * t37;
00525 const double t1218 = t225 * t1096;
00526 const double t1222 = 0.2e1 * t1218 * t227 - t335 + t1214 * t62;
00527 const double t1223 = t1222 * t75;
00528 const double t1229 = -0.2e1 * t1218 * t234 + t239 + 0.2e1 * t1207 * t245 - t287;
00529 const double t1230 = t1229 * t75;
00530 const double t1238 = (-0.2e1 * t1210 * v2x1 - t279) * t27;
00531 const double t1240 = -0.2e1 * t1207 * t263 + t335 - t1238 * t37;
00532 const double t1245 = 0.2e1 * t1218 * t263 + t304 + t1238 * t62;
00533 const double t1246 = t1245 * t75;
00534 const double t1252 = -0.2e1 * t1218 * t269 - t274 + 0.2e1 * t1207 * t283 - t249;
00535 const double t1253 = t1252 * t75;
00536 const double t1260 = -0.2e1 * t1207 * t300 + t232 + 0.2e1 * t1210 * t305;
00537 const double t1266 = 0.2e1 * t1218 * t300 - t268 - 0.2e1 * t1210 * t318;
00538 const double t1267 = t1266 * t75;
00539 const double t1273 = -0.2e1 * t1218 * t305 + t309 + 0.2e1 * t1207 * t318 - t258;
00540 const double t1274 = t1273 * t75;
00541 const double t1281 = -0.2e1 * t1207 * t331 + t268 + 0.2e1 * t1210 * t336;
00542 const double t1287 = 0.2e1 * t1218 * t331 + t232 - 0.2e1 * t1210 * t345;
00543 const double t1288 = t1287 * t75;
00544 const double t1294 = -0.2e1 * t1218 * t336 - t340 + 0.2e1 * t1207 * t345 - t295;
00545 const double t1295 = t1294 * t75;
00546 const double t1299 = t1149 * t374;
00547 const double t1300 = -t1085 * t359 + t1299;
00548 const double t1306 = t1097 * t359 / 0.2e1 - t1149 * t877 / 0.2e1 + t1090;
00549 const double t1307 = t1306 * t75;
00550 const double t1313 = -t1097 * t361 / 0.2e1 + t1085 * t368 / 0.2e1 - t1164;
00551 const double t1314 = t1313 * t75;
00552 const double t1321 = -t1085 * t383 / 0.2e1 + t1149 * t398 / 0.2e1 - t1090;
00553 const double t1324 = t1097 * t383 - t1299;
00554 const double t1325 = t1324 * t75 / 0.2e1;
00555 const double t1331 = -t1097 * t386 / 0.2e1 + t1181 + t1085 * t393 / 0.2e1;
00556 const double t1332 = t1331 * t75;
00557 const double t1339 = -t1085 * t407 / 0.2e1 + t1164 + t1149 * t391 / 0.2e1;
00558 const double t1345 = t1097 * t407 / 0.2e1 - t1181 - t1149 * t365 / 0.2e1;
00559 const double t1346 = t1345 * t75;
00560 const double t1350 = -t1097 * t410 + t1085 * t418;
00561 const double t1351 = t1350 * t75 / 0.2e1;
00562 const double t1360 = t1092 * t75;
00563 const double t1362 = 0.20e1 * t1360 * v1x1;
00564 const double t1370 = 0.20e1 * t1360 * v1x0;
00565 const double t1379 = 0.20e1 * t1360 * v1x3;
00566 const double t1387 = 0.20e1 * t1360 * v1x2;
00567 const double t1393 = t1151 * t75 / 0.2e1;
00568 const double t1398 = t1173 * t75;
00569 const double t1403 = t1192 * t75;
00570 const double t1408 = t1216 * t75;
00571 const double t1413 = t1240 * t75;
00572 const double t1418 = t1260 * t75;
00573 const double t1423 = t1281 * t75;
00574 const double t1428 = t1300 * t75 / 0.2e1;
00575 const double t1433 = t1321 * t75;
00576 const double t1438 = t1339 * t75;
00577 cg[15*0+0] = -0.2e1 * t48 * t52 - 0.2e1 * t66 * t72 + t78 - 0.2e1 * t82 * t88 + t93;
00578 cg[15*0+1] = t40 * t100 - 0.2e1 * t66 * t102 + t106 - 0.2e1 * t82 * t107 + t111;
00579 cg[15*0+2] = t40 * t117 - 0.2e1 * t66 * t119 - t123 - 0.2e1 * t82 * t124 + t128;
00580 cg[15*0+3] = -0.2e1 * t48 * t130 - 0.2e1 * t66 * t133 - t137 - 0.2e1 * t82 * t138 + t142;
00581 cg[15*0+4] = t152 * t154 / 0.2e1 + t166 * t71 + t175 * t87;
00582 cg[15*0+5] = t184 * t154 + t191 * t71 + t199 * t87;
00583 cg[15*0+6] = t208 * t154 + t217 * t71 + t221 * t87;
00584 cg[15*0+7] = t240 * t154 + t251 * t71 + t260 * t87;
00585 cg[15*0+8] = t275 * t154 + t289 * t71 + t297 * t87;
00586 cg[15*0+9] = t310 * t154 + t322 * t71 + t328 * t87;
00587 cg[15*0+10] = t341 * t154 + t349 * t71 + t356 * t87;
00588 cg[15*0+11] = t363 * t154 / 0.2e1 + t372 * t71 + t380 * t87;
00589 cg[15*0+12] = t389 * t154 + t396 * t71 + t404 * t87;
00590 cg[15*0+13] = t413 * t154 + t422 * t71 + t426 * t87;
00591 cg[15*0+14] = t40 * t154 + t76 * t71 + t91 * t87;
00592 cg[15*1+0] = -0.2e1 * t48 * t434 + t439 + t65 * t447 - 0.2e1 * t82 * t454 - t111;
00593 cg[15*1+1] = -0.2e1 * t48 * t458 + t462 - 0.2e1 * t66 * t463 - 0.2e1 * t82 * t466 + t93;
00594 cg[15*1+2] = -0.2e1 * t48 * t470 + t474 + t65 * t477 - 0.2e1 * t82 * t479 + t142;
00595 cg[15*1+3] = -0.2e1 * t48 * t483 + t487 - 0.2e1 * t66 * t488 - 0.2e1 * t82 * t491 - t128;
00596 cg[15*1+4] = t495 * t433 + t165 * t498 + t175 * t453;
00597 cg[15*1+5] = t502 * t433 + t190 * t498 / 0.2e1 + t199 * t453;
00598 cg[15*1+6] = t507 * t433 + t216 * t498 + t221 * t453;
00599 cg[15*1+7] = t512 * t433 + t250 * t498 + t260 * t453;
00600 cg[15*1+8] = t517 * t433 + t288 * t498 + t297 * t453;
00601 cg[15*1+9] = t522 * t433 + t321 * t498 + t328 * t453;
00602 cg[15*1+10] = t527 * t433 + t348 * t498 + t356 * t453;
00603 cg[15*1+11] = t532 * t433 + t371 * t498 + t380 * t453;
00604 cg[15*1+12] = t537 * t433 + t395 * t498 / 0.2e1 + t404 * t453;
00605 cg[15*1+13] = t542 * t433 + t421 * t498 + t426 * t453;
00606 cg[15*1+14] = t437 * t433 + t65 * t498 + t91 * t453;
00607 cg[15*2+0] = -0.2e1 * t48 * t552 + t487 - 0.2e1 * t66 * t556 + t123 + t81 * t563;
00608 cg[15*2+1] = -0.2e1 * t48 * t566 - t474 - 0.2e1 * t66 * t569 + t137 + t81 * t574;
00609 cg[15*2+2] = -0.2e1 * t48 * t577 + t462 - 0.2e1 * t66 * t580 + t78 - 0.2e1 * t82 * t583;
00610 cg[15*2+3] = -0.2e1 * t48 * t587 - t439 - 0.2e1 * t66 * t590 + t106 - 0.2e1 * t82 * t593;
00611 cg[15*2+4] = t495 * t551 + t166 * t555 + t174 * t600;
00612 cg[15*2+5] = t502 * t551 + t191 * t555 + t198 * t600;
00613 cg[15*2+6] = t507 * t551 + t217 * t555 + t220 * t600 / 0.2e1;
00614 cg[15*2+7] = t512 * t551 + t251 * t555 + t259 * t600;
00615 cg[15*2+8] = t517 * t551 + t289 * t555 + t296 * t600;
00616 cg[15*2+9] = t522 * t551 + t322 * t555 + t327 * t600;
00617 cg[15*2+10] = t527 * t551 + t349 * t555 + t355 * t600;
00618 cg[15*2+11] = t532 * t551 + t372 * t555 + t379 * t600;
00619 cg[15*2+12] = t537 * t551 + t396 * t555 + t403 * t600;
00620 cg[15*2+13] = t542 * t551 + t422 * t555 + t425 * t600 / 0.2e1;
00621 cg[15*2+14] = t437 * t551 + t76 * t555 + t81 * t600;
00622 cg[15*3+0] = -0.2e1 * t657 * t52 - 0.2e1 * t665 * t72 + t670 - 0.2e1 * t674 * t88 + t679;
00623 cg[15*3+1] = t656 * t100 - 0.2e1 * t665 * t102 + t685 - 0.2e1 * t674 * t107 + t689;
00624 cg[15*3+2] = t656 * t117 - 0.2e1 * t665 * t119 - t695 - 0.2e1 * t674 * t124 + t699;
00625 cg[15*3+3] = -0.2e1 * t657 * t130 - 0.2e1 * t665 * t133 - t706 - 0.2e1 * t674 * t138 + t710;
00626 cg[15*3+4] = t715 * t154 / 0.2e1 + t723 * t71 + t731 * t87;
00627 cg[15*3+5] = t738 * t154 + t743 * t71 + t751 * t87;
00628 cg[15*3+6] = t758 * t154 + t765 * t71 + t769 * t87;
00629 cg[15*3+7] = t782 * t154 + t790 * t71 + t796 * t87;
00630 cg[15*3+8] = t803 * t154 + t810 * t71 + t817 * t87;
00631 cg[15*3+9] = t827 * t154 + t834 * t71 + t840 * t87;
00632 cg[15*3+10] = t847 * t154 + t854 * t71 + t861 * t87;
00633 cg[15*3+11] = t866 * t154 / 0.2e1 + t873 * t71 + t881 * t87;
00634 cg[15*3+12] = t888 * t154 + t893 * t71 + t900 * t87;
00635 cg[15*3+13] = t907 * t154 + t914 * t71 + t918 * t87;
00636 cg[15*3+14] = t656 * t154 + t668 * t71 + t677 * t87;
00637 cg[15*4+0] = -0.2e1 * t657 * t434 + t929 + t664 * t447 - 0.2e1 * t674 * t454 - t689;
00638 cg[15*4+1] = -0.2e1 * t657 * t458 + t937 - 0.2e1 * t665 * t463 - 0.2e1 * t674 * t466 + t679;
00639 cg[15*4+2] = -0.2e1 * t657 * t470 + t946 + t664 * t477 - 0.2e1 * t674 * t479 + t710;
00640 cg[15*4+3] = -0.2e1 * t657 * t483 + t954 - 0.2e1 * t665 * t488 - 0.2e1 * t674 * t491 - t699;
00641 cg[15*4+4] = t960 * t433 + t722 * t498 + t731 * t453;
00642 cg[15*4+5] = t965 * t433 + t742 * t498 / 0.2e1 + t751 * t453;
00643 cg[15*4+6] = t970 * t433 + t764 * t498 + t769 * t453;
00644 cg[15*4+7] = t975 * t433 + t789 * t498 + t796 * t453;
00645 cg[15*4+8] = t980 * t433 + t809 * t498 + t817 * t453;
00646 cg[15*4+9] = t985 * t433 + t833 * t498 + t840 * t453;
00647 cg[15*4+10] = t990 * t433 + t853 * t498 + t861 * t453;
00648 cg[15*4+11] = t995 * t433 + t872 * t498 + t881 * t453;
00649 cg[15*4+12] = t1000 * t433 + t892 * t498 / 0.2e1 + t900 * t453;
00650 cg[15*4+13] = t1005 * t433 + t913 * t498 + t918 * t453;
00651 cg[15*4+14] = t927 * t433 + t664 * t498 + t677 * t453;
00652 cg[15*5+0] = -0.2e1 * t657 * t552 + t954 - 0.2e1 * t665 * t556 + t695 + t673 * t563;
00653 cg[15*5+1] = -0.2e1 * t657 * t566 - t946 - 0.2e1 * t665 * t569 + t706 + t673 * t574;
00654 cg[15*5+2] = -0.2e1 * t657 * t577 + t937 - 0.2e1 * t665 * t580 + t670 - 0.2e1 * t674 * t583;
00655 cg[15*5+3] = -0.2e1 * t657 * t587 - t929 - 0.2e1 * t665 * t590 + t685 - 0.2e1 * t674 * t593;
00656 cg[15*5+4] = t960 * t551 + t723 * t555 + t730 * t600;
00657 cg[15*5+5] = t965 * t551 + t743 * t555 + t750 * t600;
00658 cg[15*5+6] = t970 * t551 + t765 * t555 + t768 * t600 / 0.2e1;
00659 cg[15*5+7] = t975 * t551 + t790 * t555 + t795 * t600;
00660 cg[15*5+8] = t980 * t551 + t810 * t555 + t816 * t600;
00661 cg[15*5+9] = t985 * t551 + t834 * t555 + t839 * t600;
00662 cg[15*5+10] = t990 * t551 + t854 * t555 + t860 * t600;
00663 cg[15*5+11] = t995 * t551 + t873 * t555 + t880 * t600;
00664 cg[15*5+12] = t1000 * t551 + t893 * t555 + t899 * t600;
00665 cg[15*5+13] = t1005 * t551 + t914 * t555 + t917 * t600 / 0.2e1;
00666 cg[15*5+14] = t927 * t551 + t668 * t555 + t673 * t600;
00667 cg[15*6+0] = -0.2e1 * t1093 * t52 - 0.2e1 * t1101 * t72 + t1106 - 0.2e1 * t1110 * t88 + t1115;
00668 cg[15*6+1] = t1092 * t100 - 0.2e1 * t1101 * t102 + t1121 - 0.2e1 * t1110 * t107 + t1125;
00669 cg[15*6+2] = t1092 * t117 - 0.2e1 * t1101 * t119 - t1131 - 0.2e1 * t1110 * t124 + t1135;
00670 cg[15*6+3] = -0.2e1 * t1093 * t130 - 0.2e1 * t1101 * t133 - t1142 - 0.2e1 * t1110 * t138 + t1146;
00671 cg[15*6+4] = t1151 * t154 / 0.2e1 + t1158 * t71 + t1166 * t87;
00672 cg[15*6+5] = t1173 * t154 + t1177 * t71 + t1185 * t87;
00673 cg[15*6+6] = t1192 * t154 + t1199 * t71 + t1204 * t87;
00674 cg[15*6+7] = t1216 * t154 + t1223 * t71 + t1230 * t87;
00675 cg[15*6+8] = t1240 * t154 + t1246 * t71 + t1253 * t87;
00676 cg[15*6+9] = t1260 * t154 + t1267 * t71 + t1274 * t87;
00677 cg[15*6+10] = t1281 * t154 + t1288 * t71 + t1295 * t87;
00678 cg[15*6+11] = t1300 * t154 / 0.2e1 + t1307 * t71 + t1314 * t87;
00679 cg[15*6+12] = t1321 * t154 + t1325 * t71 + t1332 * t87;
00680 cg[15*6+13] = t1339 * t154 + t1346 * t71 + t1351 * t87;
00681 cg[15*6+14] = t1092 * t154 + t1104 * t71 + t1113 * t87;
00682 cg[15*7+0] = -0.2e1 * t1093 * t434 + t1362 + t1100 * t447 - 0.2e1 * t1110 * t454 - t1125;
00683 cg[15*7+1] = -0.2e1 * t1093 * t458 + t1370 - 0.2e1 * t1101 * t463 - 0.2e1 * t1110 * t466 + t1115;
00684 cg[15*7+2] = -0.2e1 * t1093 * t470 + t1379 + t1100 * t477 - 0.2e1 * t1110 * t479 + t1146;
00685 cg[15*7+3] = -0.2e1 * t1093 * t483 + t1387 - 0.2e1 * t1101 * t488 - 0.2e1 * t1110 * t491 - t1135;
00686 cg[15*7+4] = t1393 * t433 + t1157 * t498 + t1166 * t453;
00687 cg[15*7+5] = t1398 * t433 + t1176 * t498 / 0.2e1 + t1185 * t453;
00688 cg[15*7+6] = t1403 * t433 + t1198 * t498 + t1204 * t453;
00689 cg[15*7+7] = t1408 * t433 + t1222 * t498 + t1230 * t453;
00690 cg[15*7+8] = t1413 * t433 + t1245 * t498 + t1253 * t453;
00691 cg[15*7+9] = t1418 * t433 + t1266 * t498 + t1274 * t453;
00692 cg[15*7+10] = t1423 * t433 + t1287 * t498 + t1295 * t453;
00693 cg[15*7+11] = t1428 * t433 + t1306 * t498 + t1314 * t453;
00694 cg[15*7+12] = t1433 * t433 + t1324 * t498 / 0.2e1 + t1332 * t453;
00695 cg[15*7+13] = t1438 * t433 + t1345 * t498 + t1351 * t453;
00696 cg[15*7+14] = t1360 * t433 + t1100 * t498 + t1113 * t453;
00697 cg[15*8+0] = -0.2e1 * t1093 * t552 + t1387 - 0.2e1 * t1101 * t556 + t1131 + t1109 * t563;
00698 cg[15*8+1] = -0.2e1 * t1093 * t566 - t1379 - 0.2e1 * t1101 * t569 + t1142 + t1109 * t574;
00699 cg[15*8+2] = -0.2e1 * t1093 * t577 + t1370 - 0.2e1 * t1101 * t580 + t1106 - 0.2e1 * t1110 * t583;
00700 cg[15*8+3] = -0.2e1 * t1093 * t587 - t1362 - 0.2e1 * t1101 * t590 + t1121 - 0.2e1 * t1110 * t593;
00701 cg[15*8+4] = t1393 * t551 + t1158 * t555 + t1165 * t600;
00702 cg[15*8+5] = t1398 * t551 + t1177 * t555 + t1184 * t600;
00703 cg[15*8+6] = t1403 * t551 + t1199 * t555 + t1203 * t600 / 0.2e1;
00704 cg[15*8+7] = t1408 * t551 + t1223 * t555 + t1229 * t600;
00705 cg[15*8+8] = t1413 * t551 + t1246 * t555 + t1252 * t600;
00706 cg[15*8+9] = t1418 * t551 + t1267 * t555 + t1273 * t600;
00707 cg[15*8+10] = t1423 * t551 + t1288 * t555 + t1294 * t600;
00708 cg[15*8+11] = t1428 * t551 + t1307 * t555 + t1313 * t600;
00709 cg[15*8+12] = t1433 * t551 + t1325 * t555 + t1331 * t600;
00710 cg[15*8+13] = t1438 * t551 + t1346 * t555 + t1350 * t600 / 0.2e1;
00711 cg[15*8+14] = t1360 * t551 + t1104 * t555 + t1109 * t600;
00712 }
00713
00714
00715
00716
00717
00718
00719
00720
00721
00722
00723
00724
00725
00726
00727
00728
00729
00730
00731
00732
00733
00734
00735
00736
00737
00738
00739
00740
00741
00742
00743
00744
00745
00746
00747
00748
00749
00750
00751
00752
00753
00754
00755
00756
00757
00758
00759
00760
00761
00762
00763
00764
00765
00766
00767
00768
00769
00770
00771
00772
00773
00774
00775
00776
00777
00778
00779 void partialLeftQuaternionEssentialEvaluation(const double *pose1, const double *pose2, double *cg)
00780 {
00781 const double
00782 v1x0 = pose1[0],
00783 v1x1 = pose1[1],
00784 v1x2 = pose1[2],
00785 v1x3 = pose1[3],
00786 v1x4 = pose1[4],
00787 v1x5 = pose1[5],
00788 v1x6 = pose1[6];
00789
00790 const double
00791 v2x0 = pose2[0],
00792 v2x1 = pose2[1],
00793 v2x2 = pose2[2],
00794 v2x3 = pose2[3],
00795 v2x4 = pose2[4],
00796 v2x5 = pose2[5],
00797 v2x6 = pose2[6];
00798
00799 const double t1 = v2x0 * v2x0;
00800 const double t2 = v2x1 * v2x1;
00801 const double t3 = v2x2 * v2x2;
00802 const double t4 = v2x3 * v2x3;
00803 const double t6 = 0.1e1 / (t1 + t2 + t3 + t4);
00804 const double t8 = 0.20e1 * v2x0 * v2x1;
00805 const double t10 = 0.20e1 * v2x2 * v2x3;
00806 const double t12 = t6 * (t8 - t10);
00807 const double t13 = (v2x4 * v2x4);
00808 const double t16 = (v1x4 * v1x4);
00809 const double t17 = (v2x5 * v2x5);
00810 const double t20 = (v1x5 * v1x5);
00811 const double t21 = (v2x6 * v2x6);
00812 const double t24 = (v1x6 * v1x6);
00813 const double t25 = t13 - 2 * v2x4 * v1x4 + t16 + t17 - 2 * v2x5 * v1x5 + t20 + t21 - 2 * v2x6 * v1x6 + t24;
00814 const double t26 = sqrt(t25);
00815 const double t27 = 0.1e1 / t26;
00816 const double t28 = v2x6 - v1x6;
00817 const double t29 = t27 * t28;
00818 const double t32 = 0.20e1 * v2x2 * v2x0;
00819 const double t34 = 0.20e1 * v2x1 * v2x3;
00820 const double t36 = t6 * (t32 + t34);
00821 const double t37 = v2x5 - v1x5;
00822 const double t38 = t27 * t37;
00823 const double t40 = t12 * t29 - t36 * t38;
00824 const double t41 = v1x0 * v1x0;
00825 const double t42 = v1x1 * v1x1;
00826 const double t43 = v1x2 * v1x2;
00827 const double t44 = v1x3 * v1x3;
00828 const double t45 = t41 + t42 + t43 + t44;
00829 const double t46 = t45 * t45;
00830 const double t47 = 0.1e1 / t46;
00831 const double t48 = t40 * t47;
00832 const double t49 = 0.20e1 * t42;
00833 const double t50 = 0.20e1 * t43;
00834 const double t51 = -t49 - t50;
00835 const double t52 = t51 * v1x0;
00836 const double t55 = 0.20e1 * t2;
00837 const double t56 = 0.20e1 * t3;
00838 const double t59 = 0.1e1 + t6 * (-t55 - t56);
00839 const double t60 = t59 * t27;
00840 const double t62 = v2x4 - v1x4;
00841 const double t63 = t27 * t62;
00842 const double t65 = -t60 * t28 + t36 * t63;
00843 const double t66 = t65 * t47;
00844 const double t68 = 0.20e1 * v1x0 * v1x1;
00845 const double t70 = 0.20e1 * v1x2 * v1x3;
00846 const double t71 = t68 - t70;
00847 const double t72 = t71 * v1x0;
00848 const double t75 = 0.1e1 / t45;
00849 const double t76 = t65 * t75;
00850 const double t78 = 0.20e1 * t76 * v1x1;
00851 const double t81 = t60 * t37 - t12 * t63;
00852 const double t82 = t81 * t47;
00853 const double t84 = 0.20e1 * v1x2 * v1x0;
00854 const double t86 = 0.20e1 * v1x1 * v1x3;
00855 const double t87 = t84 + t86;
00856 const double t88 = t87 * v1x0;
00857 const double t91 = t81 * t75;
00858 const double t93 = 0.20e1 * t91 * v1x2;
00859 const double t95 = t47 * t51;
00860 const double t99 = 0.40e1 * t75 * v1x1;
00861 const double t100 = -0.2e1 * t95 * v1x1 - t99;
00862 const double t102 = t71 * v1x1;
00863 const double t106 = 0.20e1 * t76 * v1x0;
00864 const double t107 = t87 * v1x1;
00865 const double t111 = 0.20e1 * t91 * v1x3;
00866 const double t116 = 0.40e1 * t75 * v1x2;
00867 const double t117 = -0.2e1 * t95 * v1x2 - t116;
00868 const double t119 = t71 * v1x2;
00869 const double t123 = 0.20e1 * t76 * v1x3;
00870 const double t124 = t87 * v1x2;
00871 const double t128 = 0.20e1 * t91 * v1x0;
00872 const double t130 = t51 * v1x3;
00873 const double t133 = t71 * v1x3;
00874 const double t137 = 0.20e1 * t76 * v1x2;
00875 const double t138 = t87 * v1x3;
00876 const double t142 = 0.20e1 * t91 * v1x1;
00877 const double t145 = 0.1e1 / t26 / t25;
00878 const double t146 = t145 * t28;
00879 const double t147 = -0.2e1 * t146 * t62;
00880 const double t149 = t145 * t37;
00881 const double t150 = -0.2e1 * t149 * t62;
00882 const double t152 = -t12 * t147 + t36 * t150;
00883 const double t154 = 0.1e1 + t75 * t51;
00884 const double t156 = t59 * t145;
00885 const double t157 = -2 * t28 * t62;
00886 const double t160 = t145 * t62;
00887 const double t161 = -0.2e1 * t160 * t62;
00888 const double t164 = t36 * t27;
00889 const double t165 = t156 * t157 / 0.2e1 - t36 * t161 / 0.2e1 - t164;
00890 const double t166 = t165 * t75;
00891 const double t168 = -2 * t37 * t62;
00892 const double t173 = t12 * t27;
00893 const double t174 = -t156 * t168 / 0.2e1 + t12 * t161 / 0.2e1 + t173;
00894 const double t175 = t174 * t75;
00895 const double t178 = -0.2e1 * t146 * t37;
00896 const double t181 = -0.2e1 * t149 * t37;
00897 const double t184 = -t12 * t178 / 0.2e1 + t36 * t181 / 0.2e1 + t164;
00898 const double t186 = -2 * t28 * t37;
00899 const double t187 = t156 * t186;
00900 const double t188 = -0.2e1 * t160 * t37;
00901 const double t190 = t187 - t36 * t188;
00902 const double t191 = t190 * t75 / 0.2e1;
00903 const double t193 = -2 * t37 * t37;
00904 const double t198 = -t156 * t193 / 0.2e1 - t60 + t12 * t188 / 0.2e1;
00905 const double t199 = t198 * t75;
00906 const double t202 = -0.2e1 * t146 * t28;
00907 const double t205 = -0.2e1 * t149 * t28;
00908 const double t208 = -t12 * t202 / 0.2e1 - t173 + t36 * t205 / 0.2e1;
00909 const double t210 = -2 * t28 * t28;
00910 const double t213 = -0.2e1 * t160 * t28;
00911 const double t216 = t156 * t210 / 0.2e1 + t60 - t36 * t213 / 0.2e1;
00912 const double t217 = t216 * t75;
00913 const double t220 = -t187 + t12 * t213;
00914 const double t221 = t220 * t75 / 0.2e1;
00915 const double t228 = t68 + t70;
00916 const double t229 = t228 * v1x0;
00917 const double t232 = t40 * t75;
00918 const double t234 = 0.20e1 * t232 * v1x1;
00919 const double t235 = 0.20e1 * t41;
00920 const double t236 = -t50 - t235;
00921 const double t237 = t47 * t236;
00922 const double t241 = 0.40e1 * t75 * v1x0;
00923 const double t242 = -0.2e1 * t237 * v1x0 - t241;
00924 const double t245 = 0.20e1 * v1x1 * v1x2;
00925 const double t247 = 0.20e1 * v1x0 * v1x3;
00926 const double t248 = t245 - t247;
00927 const double t249 = t248 * v1x0;
00928 const double t253 = t228 * v1x1;
00929 const double t257 = 0.20e1 * t232 * v1x0;
00930 const double t258 = t236 * v1x1;
00931 const double t261 = t248 * v1x1;
00932 const double t265 = t228 * v1x2;
00933 const double t269 = 0.20e1 * t232 * v1x3;
00934 const double t272 = -0.2e1 * t237 * v1x2 - t116;
00935 const double t274 = t248 * v1x2;
00936 const double t278 = t228 * v1x3;
00937 const double t282 = 0.20e1 * t232 * v1x2;
00938 const double t283 = t236 * v1x3;
00939 const double t286 = t248 * v1x3;
00940 const double t290 = t152 * t75 / 0.2e1;
00941 const double t293 = 0.1e1 + t75 * t236;
00942 const double t297 = t184 * t75;
00943 const double t302 = t208 * t75;
00944 const double t311 = t84 - t86;
00945 const double t312 = t311 * v1x0;
00946 const double t315 = t245 + t247;
00947 const double t316 = t315 * v1x0;
00948 const double t319 = -t49 - t235;
00949 const double t320 = t47 * t319;
00950 const double t323 = -0.2e1 * t320 * v1x0 - t241;
00951 const double t326 = t311 * v1x1;
00952 const double t329 = t315 * v1x1;
00953 const double t334 = -0.2e1 * t320 * v1x1 - t99;
00954 const double t337 = t311 * v1x2;
00955 const double t340 = t315 * v1x2;
00956 const double t343 = t319 * v1x2;
00957 const double t347 = t311 * v1x3;
00958 const double t350 = t315 * v1x3;
00959 const double t353 = t319 * v1x3;
00960 const double t360 = 0.1e1 + t75 * t319;
00961 const double t375 = 0.20e1 * t1;
00962 const double t378 = 0.1e1 + t6 * (-t56 - t375);
00963 const double t379 = t378 * t27;
00964 const double t382 = 0.20e1 * v2x1 * v2x2;
00965 const double t384 = 0.20e1 * v2x0 * v2x3;
00966 const double t386 = t6 * (t382 - t384);
00967 const double t388 = t379 * t28 - t386 * t38;
00968 const double t389 = t388 * t47;
00969 const double t393 = t6 * (t8 + t10);
00970 const double t396 = -t393 * t29 + t386 * t63;
00971 const double t397 = t396 * t47;
00972 const double t400 = t396 * t75;
00973 const double t402 = 0.20e1 * t400 * v1x1;
00974 const double t405 = t393 * t38 - t379 * t62;
00975 const double t406 = t405 * t47;
00976 const double t409 = t405 * t75;
00977 const double t411 = 0.20e1 * t409 * v1x2;
00978 const double t417 = 0.20e1 * t400 * v1x0;
00979 const double t421 = 0.20e1 * t409 * v1x3;
00980 const double t427 = 0.20e1 * t400 * v1x3;
00981 const double t431 = 0.20e1 * t409 * v1x0;
00982 const double t438 = 0.20e1 * t400 * v1x2;
00983 const double t442 = 0.20e1 * t409 * v1x1;
00984 const double t444 = t378 * t145;
00985 const double t445 = t444 * t157;
00986 const double t447 = -t445 + t386 * t150;
00987 const double t453 = t386 * t27;
00988 const double t454 = t393 * t147 / 0.2e1 - t386 * t161 / 0.2e1 - t453;
00989 const double t455 = t454 * t75;
00990 const double t459 = -2 * t62 * t62;
00991 const double t462 = -t393 * t150 / 0.2e1 + t444 * t459 / 0.2e1 + t379;
00992 const double t463 = t462 * t75;
00993 const double t470 = -t444 * t186 / 0.2e1 + t386 * t181 / 0.2e1 + t453;
00994 const double t474 = t393 * t178 - t386 * t188;
00995 const double t475 = t474 * t75 / 0.2e1;
00996 const double t479 = t393 * t27;
00997 const double t482 = -t393 * t181 / 0.2e1 - t479 + t444 * t168 / 0.2e1;
00998 const double t483 = t482 * t75;
00999 const double t490 = -t444 * t210 / 0.2e1 - t379 + t386 * t205 / 0.2e1;
01000 const double t496 = t393 * t202 / 0.2e1 + t479 - t386 * t213 / 0.2e1;
01001 const double t497 = t496 * t75;
01002 const double t500 = -t393 * t205 + t445;
01003 const double t501 = t500 * t75 / 0.2e1;
01004 const double t510 = t388 * t75;
01005 const double t512 = 0.20e1 * t510 * v1x1;
01006 const double t520 = 0.20e1 * t510 * v1x0;
01007 const double t529 = 0.20e1 * t510 * v1x3;
01008 const double t537 = 0.20e1 * t510 * v1x2;
01009 const double t543 = t447 * t75 / 0.2e1;
01010 const double t548 = t470 * t75;
01011 const double t553 = t490 * t75;
01012 const double t605 = t6 * (t382 + t384);
01013 const double t609 = 0.1e1 + t6 * (-t55 - t375);
01014 const double t610 = t609 * t27;
01015 const double t612 = t605 * t29 - t610 * t37;
01016 const double t613 = t612 * t47;
01017 const double t617 = t6 * (t32 - t34);
01018 const double t620 = -t617 * t29 + t610 * t62;
01019 const double t621 = t620 * t47;
01020 const double t624 = t620 * t75;
01021 const double t626 = 0.20e1 * t624 * v1x1;
01022 const double t629 = t617 * t38 - t605 * t63;
01023 const double t630 = t629 * t47;
01024 const double t633 = t629 * t75;
01025 const double t635 = 0.20e1 * t633 * v1x2;
01026 const double t641 = 0.20e1 * t624 * v1x0;
01027 const double t645 = 0.20e1 * t633 * v1x3;
01028 const double t651 = 0.20e1 * t624 * v1x3;
01029 const double t655 = 0.20e1 * t633 * v1x0;
01030 const double t662 = 0.20e1 * t624 * v1x2;
01031 const double t666 = 0.20e1 * t633 * v1x1;
01032 const double t669 = t609 * t145;
01033 const double t670 = t669 * t168;
01034 const double t671 = -t605 * t147 + t670;
01035 const double t677 = t617 * t147 / 0.2e1 - t669 * t459 / 0.2e1 - t610;
01036 const double t678 = t677 * t75;
01037 const double t684 = t605 * t27;
01038 const double t685 = -t617 * t150 / 0.2e1 + t605 * t161 / 0.2e1 + t684;
01039 const double t686 = t685 * t75;
01040 const double t693 = -t605 * t178 / 0.2e1 + t669 * t193 / 0.2e1 + t610;
01041 const double t696 = t617 * t178 - t670;
01042 const double t697 = t696 * t75 / 0.2e1;
01043 const double t701 = t617 * t27;
01044 const double t704 = -t617 * t181 / 0.2e1 - t701 + t605 * t188 / 0.2e1;
01045 const double t705 = t704 * t75;
01046 const double t712 = -t605 * t202 / 0.2e1 - t684 + t669 * t186 / 0.2e1;
01047 const double t718 = t617 * t202 / 0.2e1 + t701 - t669 * t157 / 0.2e1;
01048 const double t719 = t718 * t75;
01049 const double t723 = -t617 * t205 + t605 * t213;
01050 const double t724 = t723 * t75 / 0.2e1;
01051 const double t733 = t612 * t75;
01052 const double t735 = 0.20e1 * t733 * v1x1;
01053 const double t743 = 0.20e1 * t733 * v1x0;
01054 const double t752 = 0.20e1 * t733 * v1x3;
01055 const double t760 = 0.20e1 * t733 * v1x2;
01056 const double t766 = t671 * t75 / 0.2e1;
01057 const double t771 = t693 * t75;
01058 const double t776 = t712 * t75;
01059 cg[8*0 + 0] = -0.2e1 * t48 * t52 - 0.2e1 * t66 * t72 + t78 - 0.2e1 * t82 * t88 + t93;
01060 cg[8*0 + 1] = t40 * t100 - 0.2e1 * t66 * t102 + t106 - 0.2e1 * t82 * t107 + t111;
01061 cg[8*0 + 2] = t40 * t117 - 0.2e1 * t66 * t119 - t123 - 0.2e1 * t82 * t124 + t128;
01062 cg[8*0 + 3] = -0.2e1 * t48 * t130 - 0.2e1 * t66 * t133 - t137 - 0.2e1 * t82 * t138 + t142;
01063 cg[8*0 + 4] = t152 * t154 / 0.2e1 + t166 * t71 + t175 * t87;
01064 cg[8*0 + 5] = t184 * t154 + t191 * t71 + t199 * t87;
01065 cg[8*0 + 6] = t208 * t154 + t217 * t71 + t221 * t87;
01066 cg[8*0 + 7] = t40 * t154 + t76 * t71 + t91 * t87;
01067 cg[8*1 + 0] = -0.2e1 * t48 * t229 + t234 + t65 * t242 - 0.2e1 * t82 * t249 - t111;
01068 cg[8*1 + 1] = -0.2e1 * t48 * t253 + t257 - 0.2e1 * t66 * t258 - 0.2e1 * t82 * t261 + t93;
01069 cg[8*1 + 2] = -0.2e1 * t48 * t265 + t269 + t65 * t272 - 0.2e1 * t82 * t274 + t142;
01070 cg[8*1 + 3] = -0.2e1 * t48 * t278 + t282 - 0.2e1 * t66 * t283 - 0.2e1 * t82 * t286 - t128;
01071 cg[8*1 + 4] = t290 * t228 + t165 * t293 + t175 * t248;
01072 cg[8*1 + 5] = t297 * t228 + t190 * t293 / 0.2e1 + t199 * t248;
01073 cg[8*1 + 6] = t302 * t228 + t216 * t293 + t221 * t248;
01074 cg[8*1 + 7] = t232 * t228 + t65 * t293 + t91 * t248;
01075 cg[8*2 + 0] = -0.2e1 * t48 * t312 + t282 - 0.2e1 * t66 * t316 + t123 + t81 * t323;
01076 cg[8*2 + 1] = -0.2e1 * t48 * t326 - t269 - 0.2e1 * t66 * t329 + t137 + t81 * t334;
01077 cg[8*2 + 2] = -0.2e1 * t48 * t337 + t257 - 0.2e1 * t66 * t340 + t78 - 0.2e1 * t82 * t343;
01078 cg[8*2 + 3] = -0.2e1 * t48 * t347 - t234 - 0.2e1 * t66 * t350 + t106 - 0.2e1 * t82 * t353;
01079 cg[8*2 + 4] = t290 * t311 + t166 * t315 + t174 * t360;
01080 cg[8*2 + 5] = t297 * t311 + t191 * t315 + t198 * t360;
01081 cg[8*2 + 6] = t302 * t311 + t217 * t315 + t220 * t360 / 0.2e1;
01082 cg[8*2 + 7] = t232 * t311 + t76 * t315 + t81 * t360;
01083 cg[8*3 + 0] = -0.2e1 * t389 * t52 - 0.2e1 * t397 * t72 + t402 - 0.2e1 * t406 * t88 + t411;
01084 cg[8*3 + 1] = t388 * t100 - 0.2e1 * t397 * t102 + t417 - 0.2e1 * t406 * t107 + t421;
01085 cg[8*3 + 2] = t388 * t117 - 0.2e1 * t397 * t119 - t427 - 0.2e1 * t406 * t124 + t431;
01086 cg[8*3 + 3] = -0.2e1 * t389 * t130 - 0.2e1 * t397 * t133 - t438 - 0.2e1 * t406 * t138 + t442;
01087 cg[8*3 + 4] = t447 * t154 / 0.2e1 + t455 * t71 + t463 * t87;
01088 cg[8*3 + 5] = t470 * t154 + t475 * t71 + t483 * t87;
01089 cg[8*3 + 6] = t490 * t154 + t497 * t71 + t501 * t87;
01090 cg[8*3 + 7] = t388 * t154 + t400 * t71 + t409 * t87;
01091 cg[8*4 + 0] = -0.2e1 * t389 * t229 + t512 + t396 * t242 - 0.2e1 * t406 * t249 - t421;
01092 cg[8*4 + 1] = -0.2e1 * t389 * t253 + t520 - 0.2e1 * t397 * t258 - 0.2e1 * t406 * t261 + t411;
01093 cg[8*4 + 2] = -0.2e1 * t389 * t265 + t529 + t396 * t272 - 0.2e1 * t406 * t274 + t442;
01094 cg[8*4 + 3] = -0.2e1 * t389 * t278 + t537 - 0.2e1 * t397 * t283 - 0.2e1 * t406 * t286 - t431;
01095 cg[8*4 + 4] = t543 * t228 + t454 * t293 + t463 * t248;
01096 cg[8*4 + 5] = t548 * t228 + t474 * t293 / 0.2e1 + t483 * t248;
01097 cg[8*4 + 6] = t553 * t228 + t496 * t293 + t501 * t248;
01098 cg[8*4 + 7] = t510 * t228 + t396 * t293 + t409 * t248;
01099 cg[8*5 + 0] = -0.2e1 * t389 * t312 + t537 - 0.2e1 * t397 * t316 + t427 + t405 * t323;
01100 cg[8*5 + 1] = -0.2e1 * t389 * t326 - t529 - 0.2e1 * t397 * t329 + t438 + t405 * t334;
01101 cg[8*5 + 2] = -0.2e1 * t389 * t337 + t520 - 0.2e1 * t397 * t340 + t402 - 0.2e1 * t406 * t343;
01102 cg[8*5 + 3] = -0.2e1 * t389 * t347 - t512 - 0.2e1 * t397 * t350 + t417 - 0.2e1 * t406 * t353;
01103 cg[8*5 + 4] = t543 * t311 + t455 * t315 + t462 * t360;
01104 cg[8*5 + 5] = t548 * t311 + t475 * t315 + t482 * t360;
01105 cg[8*5 + 6] = t553 * t311 + t497 * t315 + t500 * t360 / 0.2e1;
01106 cg[8*5 + 7] = t510 * t311 + t400 * t315 + t405 * t360;
01107 cg[8*6 + 0] = -0.2e1 * t613 * t52 - 0.2e1 * t621 * t72 + t626 - 0.2e1 * t630 * t88 + t635;
01108 cg[8*6 + 1] = t612 * t100 - 0.2e1 * t621 * t102 + t641 - 0.2e1 * t630 * t107 + t645;
01109 cg[8*6 + 2] = t612 * t117 - 0.2e1 * t621 * t119 - t651 - 0.2e1 * t630 * t124 + t655;
01110 cg[8*6 + 3] = -0.2e1 * t613 * t130 - 0.2e1 * t621 * t133 - t662 - 0.2e1 * t630 * t138 + t666;
01111 cg[8*6 + 4] = t671 * t154 / 0.2e1 + t678 * t71 + t686 * t87;
01112 cg[8*6 + 5] = t693 * t154 + t697 * t71 + t705 * t87;
01113 cg[8*6 + 6] = t712 * t154 + t719 * t71 + t724 * t87;
01114 cg[8*6 + 7] = t612 * t154 + t624 * t71 + t633 * t87;
01115 cg[8*7 + 0] = -0.2e1 * t613 * t229 + t735 + t620 * t242 - 0.2e1 * t630 * t249 - t645;
01116 cg[8*7 + 1] = -0.2e1 * t613 * t253 + t743 - 0.2e1 * t621 * t258 - 0.2e1 * t630 * t261 + t635;
01117 cg[8*7 + 2] = -0.2e1 * t613 * t265 + t752 + t620 * t272 - 0.2e1 * t630 * t274 + t666;
01118 cg[8*7 + 3] = -0.2e1 * t613 * t278 + t760 - 0.2e1 * t621 * t283 - 0.2e1 * t630 * t286 - t655;
01119 cg[8*7 + 4] = t766 * t228 + t677 * t293 + t686 * t248;
01120 cg[8*7 + 5] = t771 * t228 + t696 * t293 / 0.2e1 + t705 * t248;
01121 cg[8*7 + 6] = t776 * t228 + t718 * t293 + t724 * t248;
01122 cg[8*7 + 7] = t733 * t228 + t620 * t293 + t633 * t248;
01123 cg[8*8 + 0] = -0.2e1 * t613 * t312 + t760 - 0.2e1 * t621 * t316 + t651 + t629 * t323;
01124 cg[8*8 + 1] = -0.2e1 * t613 * t326 - t752 - 0.2e1 * t621 * t329 + t662 + t629 * t334;
01125 cg[8*8 + 2] = -0.2e1 * t613 * t337 + t743 - 0.2e1 * t621 * t340 + t626 - 0.2e1 * t630 * t343;
01126 cg[8*8 + 3] = -0.2e1 * t613 * t347 - t735 - 0.2e1 * t621 * t350 + t641 - 0.2e1 * t630 * t353;
01127 cg[8*8 + 4] = t766 * t311 + t678 * t315 + t685 * t360;
01128 cg[8*8 + 5] = t771 * t311 + t697 * t315 + t704 * t360;
01129 cg[8*8 + 6] = t776 * t311 + t719 * t315 + t723 * t360 / 0.2e1;
01130 cg[8*8 + 7] = t733 * t311 + t624 * t315 + t629 * t360;
01131 }
01132
01133
01134
01135
01136
01137
01138
01139
01140
01141
01142
01143
01144
01145
01146
01147
01148
01149
01150
01151
01152
01153
01154
01155
01156
01157
01158
01159
01160
01161
01162
01163
01164
01165
01166
01167
01168
01169
01170
01171
01172
01173
01174
01175
01176
01177
01178
01179
01180
01181
01182
01183
01184
01185
01186
01187
01188
01189
01190
01191
01192
01193
01194
01195
01196
01197
01198
01199 void partialRightQuaternionEssentialEvaluation(const double *pose1, const double *pose2, double *cg)
01200 {
01201 const double
01202 v1x0 = pose1[0],
01203 v1x1 = pose1[1],
01204 v1x2 = pose1[2],
01205 v1x3 = pose1[3],
01206 v1x4 = pose1[4],
01207 v1x5 = pose1[5],
01208 v1x6 = pose1[6];
01209
01210 const double
01211 v2x0 = pose2[0],
01212 v2x1 = pose2[1],
01213 v2x2 = pose2[2],
01214 v2x3 = pose2[3],
01215 v2x4 = pose2[4],
01216 v2x5 = pose2[5],
01217 v2x6 = pose2[6];
01218
01219 const double t1 = v2x0 * v2x0;
01220 const double t2 = v2x1 * v2x1;
01221 const double t3 = v2x2 * v2x2;
01222 const double t4 = v2x3 * v2x3;
01223 const double t5 = t1 + t2 + t3 + t4;
01224 const double t6 = t5 * t5;
01225 const double t7 = 0.1e1 / t6;
01226 const double t9 = 0.20e1 * v2x0 * v2x1;
01227 const double t11 = 0.20e1 * v2x2 * v2x3;
01228 const double t12 = t9 - t11;
01229 const double t13 = t7 * t12;
01230 const double t14 = ( v2x4 * v2x4);
01231 const double t17 = ( v1x4 * v1x4);
01232 const double t18 = ( v2x5 * v2x5);
01233 const double t21 = ( v1x5 * v1x5);
01234 const double t22 = ( v2x6 * v2x6);
01235 const double t25 = ( v1x6 * v1x6);
01236 const double t26 = t14 - 2 * v2x4 * v1x4 + t17 + t18 - 2 * v2x5 * v1x5 + t21 + t22 - 2 * v2x6 * v1x6 + t25;
01237 const double t27 = sqrt( t26);
01238 const double t28 = 0.1e1 / t27;
01239 const double t29 = v2x6 - v1x6;
01240 const double t30 = t28 * t29;
01241 const double t31 = t30 * v2x0;
01242 const double t34 = 0.1e1 / t5;
01243 const double t35 = t34 * v2x1;
01244 const double t37 = 0.20e1 * t35 * t30;
01245 const double t39 = 0.20e1 * v2x2 * v2x0;
01246 const double t41 = 0.20e1 * v2x1 * v2x3;
01247 const double t42 = t39 + t41;
01248 const double t43 = t7 * t42;
01249 const double t44 = v2x5 - v1x5;
01250 const double t45 = t28 * t44;
01251 const double t46 = t45 * v2x0;
01252 const double t49 = t34 * v2x2;
01253 const double t51 = 0.20e1 * t49 * t45;
01254 const double t52 = -0.2e1 * t13 * t31 + t37 + 0.2e1 * t43 * t46 - t51;
01255 const double t53 = v1x0 * v1x0;
01256 const double t54 = v1x1 * v1x1;
01257 const double t55 = v1x2 * v1x2;
01258 const double t56 = v1x3 * v1x3;
01259 const double t58 = 0.1e1 / (t53 + t54 + t55 + t56);
01260 const double t59 = 0.20e1 * t54;
01261 const double t60 = 0.20e1 * t55;
01262 const double t63 = 0.1e1 + t58 * (-t59 - t60);
01263 const double t65 = 0.20e1 * t2;
01264 const double t66 = 0.20e1 * t3;
01265 const double t67 = -t65 - t66;
01266 const double t68 = t7 * t67;
01267 const double t71 = v2x4 - v1x4;
01268 const double t72 = t28 * t71;
01269 const double t73 = t72 * v2x0;
01270 const double t77 = 0.20e1 * t49 * t72;
01271 const double t78 = 0.2e1 * t68 * t31 - 0.2e1 * t43 * t73 + t77;
01272 const double t79 = t78 * t58;
01273 const double t81 = 0.20e1 * v1x0 * v1x1;
01274 const double t83 = 0.20e1 * v1x2 * v1x3;
01275 const double t84 = t81 - t83;
01276 const double t91 = 0.20e1 * t35 * t72;
01277 const double t92 = -0.2e1 * t68 * t46 + 0.2e1 * t13 * t73 - t91;
01278 const double t93 = t92 * t58;
01279 const double t95 = 0.20e1 * v1x2 * v1x0;
01280 const double t97 = 0.20e1 * v1x1 * v1x3;
01281 const double t98 = t95 + t97;
01282 const double t101 = t30 * v2x1;
01283 const double t104 = t34 * v2x0;
01284 const double t106 = 0.20e1 * t104 * t30;
01285 const double t107 = t45 * v2x1;
01286 const double t110 = t34 * v2x3;
01287 const double t112 = 0.20e1 * t110 * t45;
01288 const double t113 = -0.2e1 * t13 * t101 + t106 + 0.2e1 * t43 * t107 - t112;
01289 const double t117 = 0.40e1 * t35;
01290 const double t119 = (-0.2e1 * t68 * v2x1 - t117) * t28;
01291 const double t121 = t72 * v2x1;
01292 const double t125 = 0.20e1 * t110 * t72;
01293 const double t126 = -t119 * t29 - 0.2e1 * t43 * t121 + t125;
01294 const double t127 = t126 * t58;
01295 const double t133 = 0.20e1 * t104 * t72;
01296 const double t134 = t119 * t44 + 0.2e1 * t13 * t121 - t133;
01297 const double t135 = t134 * t58;
01298 const double t138 = t30 * v2x2;
01299 const double t142 = 0.20e1 * t110 * t30;
01300 const double t143 = t45 * v2x2;
01301 const double t147 = 0.20e1 * t104 * t45;
01302 const double t148 = -0.2e1 * t13 * t138 - t142 + 0.2e1 * t43 * t143 - t147;
01303 const double t152 = 0.40e1 * t49;
01304 const double t154 = (-0.2e1 * t68 * v2x2 - t152) * t28;
01305 const double t156 = t72 * v2x2;
01306 const double t159 = -t154 * t29 - 0.2e1 * t43 * t156 + t133;
01307 const double t160 = t159 * t58;
01308 const double t165 = t154 * t44 + 0.2e1 * t13 * t156 + t125;
01309 const double t166 = t165 * t58;
01310 const double t169 = t30 * v2x3;
01311 const double t173 = 0.20e1 * t49 * t30;
01312 const double t174 = t45 * v2x3;
01313 const double t178 = 0.20e1 * t35 * t45;
01314 const double t179 = -0.2e1 * t13 * t169 - t173 + 0.2e1 * t43 * t174 - t178;
01315 const double t183 = t72 * v2x3;
01316 const double t186 = 0.2e1 * t68 * t169 - 0.2e1 * t43 * t183 + t91;
01317 const double t187 = t186 * t58;
01318 const double t193 = -0.2e1 * t68 * t174 + 0.2e1 * t13 * t183 + t77;
01319 const double t194 = t193 * t58;
01320 const double t197 = t34 * t12;
01321 const double t199 = 0.1e1 / t27 / t26;
01322 const double t200 = t199 * t29;
01323 const double t201 = 0.2e1 * t200 * t71;
01324 const double t203 = t34 * t42;
01325 const double t204 = t199 * t44;
01326 const double t205 = 0.2e1 * t204 * t71;
01327 const double t207 = -t197 * t201 + t203 * t205;
01328 const double t210 = 0.1e1 + t34 * t67;
01329 const double t211 = t210 * t199;
01330 const double t212 = 2 * t29 * t71;
01331 const double t215 = t199 * t71;
01332 const double t216 = 0.2e1 * t215 * t71;
01333 const double t219 = t203 * t28;
01334 const double t220 = t211 * t212 / 0.2e1 - t203 * t216 / 0.2e1 + t219;
01335 const double t221 = t220 * t58;
01336 const double t223 = 2 * t44 * t71;
01337 const double t228 = t197 * t28;
01338 const double t229 = -t211 * t223 / 0.2e1 + t197 * t216 / 0.2e1 - t228;
01339 const double t230 = t229 * t58;
01340 const double t233 = 0.2e1 * t200 * t44;
01341 const double t236 = 0.2e1 * t204 * t44;
01342 const double t239 = -t197 * t233 / 0.2e1 + t203 * t236 / 0.2e1 - t219;
01343 const double t241 = 2 * t29 * t44;
01344 const double t242 = t211 * t241;
01345 const double t243 = 0.2e1 * t215 * t44;
01346 const double t245 = t242 - t203 * t243;
01347 const double t246 = t245 * t58 / 0.2e1;
01348 const double t248 = 2 * t44 * t44;
01349 const double t251 = t210 * t28;
01350 const double t254 = -t211 * t248 / 0.2e1 + t251 + t197 * t243 / 0.2e1;
01351 const double t255 = t254 * t58;
01352 const double t258 = 0.2e1 * t200 * t29;
01353 const double t261 = 0.2e1 * t204 * t29;
01354 const double t264 = -t197 * t258 / 0.2e1 + t228 + t203 * t261 / 0.2e1;
01355 const double t266 = 2 * t29 * t29;
01356 const double t269 = 0.2e1 * t215 * t29;
01357 const double t272 = t211 * t266 / 0.2e1 - t251 - t203 * t269 / 0.2e1;
01358 const double t273 = t272 * t58;
01359 const double t276 = -t242 + t197 * t269;
01360 const double t277 = t276 * t58 / 0.2e1;
01361 const double t282 = t197 * t30 - t203 * t45;
01362 const double t286 = -t251 * t29 + t203 * t72;
01363 const double t287 = t286 * t58;
01364 const double t291 = t251 * t44 - t197 * t72;
01365 const double t292 = t291 * t58;
01366 const double t295 = t52 * t58;
01367 const double t296 = t81 + t83;
01368 const double t298 = 0.20e1 * t53;
01369 const double t301 = 0.1e1 + t58 * (-t60 - t298);
01370 const double t304 = 0.20e1 * v1x1 * v1x2;
01371 const double t306 = 0.20e1 * v1x0 * v1x3;
01372 const double t307 = t304 - t306;
01373 const double t310 = t113 * t58;
01374 const double t315 = t148 * t58;
01375 const double t320 = t179 * t58;
01376 const double t325 = t207 * t58 / 0.2e1;
01377 const double t330 = t239 * t58;
01378 const double t335 = t264 * t58;
01379 const double t340 = t282 * t58;
01380 const double t345 = t95 - t97;
01381 const double t347 = t304 + t306;
01382 const double t351 = 0.1e1 + t58 * (-t59 - t298);
01383 const double t382 = 0.20e1 * t1;
01384 const double t383 = -t66 - t382;
01385 const double t384 = t7 * t383;
01386 const double t387 = 0.40e1 * t104;
01387 const double t389 = (-0.2e1 * t384 * v2x0 - t387) * t28;
01388 const double t392 = 0.20e1 * v2x1 * v2x2;
01389 const double t394 = 0.20e1 * v2x0 * v2x3;
01390 const double t395 = t392 - t394;
01391 const double t396 = t7 * t395;
01392 const double t399 = t389 * t29 + 0.2e1 * t396 * t46 + t112;
01393 const double t401 = t9 + t11;
01394 const double t402 = t7 * t401;
01395 const double t407 = 0.2e1 * t402 * t31 - t37 - 0.2e1 * t396 * t73 - t125;
01396 const double t408 = t407 * t58;
01397 const double t413 = -0.2e1 * t402 * t46 + t178 - t389 * t71;
01398 const double t414 = t413 * t58;
01399 const double t421 = -0.2e1 * t384 * t101 + 0.2e1 * t396 * t107 - t51;
01400 const double t427 = 0.2e1 * t402 * t101 - t106 - 0.2e1 * t396 * t121 + t77;
01401 const double t428 = t427 * t58;
01402 const double t434 = -0.2e1 * t402 * t107 + t147 + 0.2e1 * t384 * t121;
01403 const double t435 = t434 * t58;
01404 const double t441 = (-0.2e1 * t384 * v2x2 - t152) * t28;
01405 const double t445 = t441 * t29 + 0.2e1 * t396 * t143 - t178;
01406 const double t451 = 0.2e1 * t402 * t138 - t142 - 0.2e1 * t396 * t156 + t91;
01407 const double t452 = t451 * t58;
01408 const double t457 = -0.2e1 * t402 * t143 + t112 - t441 * t71;
01409 const double t458 = t457 * t58;
01410 const double t465 = -0.2e1 * t384 * t169 + 0.2e1 * t396 * t174 + t147;
01411 const double t471 = 0.2e1 * t402 * t169 - t173 - 0.2e1 * t396 * t183 - t133;
01412 const double t472 = t471 * t58;
01413 const double t478 = -0.2e1 * t402 * t174 + t51 + 0.2e1 * t384 * t183;
01414 const double t479 = t478 * t58;
01415 const double t483 = 0.1e1 + t34 * t383;
01416 const double t484 = t483 * t199;
01417 const double t485 = t484 * t212;
01418 const double t486 = t34 * t395;
01419 const double t488 = -t485 + t486 * t205;
01420 const double t490 = t34 * t401;
01421 const double t495 = t486 * t28;
01422 const double t496 = t490 * t201 / 0.2e1 - t486 * t216 / 0.2e1 + t495;
01423 const double t497 = t496 * t58;
01424 const double t501 = 2 * t71 * t71;
01425 const double t504 = t483 * t28;
01426 const double t505 = -t490 * t205 / 0.2e1 + t484 * t501 / 0.2e1 - t504;
01427 const double t506 = t505 * t58;
01428 const double t513 = -t484 * t241 / 0.2e1 + t486 * t236 / 0.2e1 - t495;
01429 const double t517 = t490 * t233 - t486 * t243;
01430 const double t518 = t517 * t58 / 0.2e1;
01431 const double t522 = t490 * t28;
01432 const double t525 = -t490 * t236 / 0.2e1 + t522 + t484 * t223 / 0.2e1;
01433 const double t526 = t525 * t58;
01434 const double t533 = -t484 * t266 / 0.2e1 + t504 + t486 * t261 / 0.2e1;
01435 const double t539 = t490 * t258 / 0.2e1 - t522 - t486 * t269 / 0.2e1;
01436 const double t540 = t539 * t58;
01437 const double t543 = -t490 * t261 + t485;
01438 const double t544 = t543 * t58 / 0.2e1;
01439 const double t549 = t504 * t29 - t486 * t45;
01440 const double t553 = -t490 * t30 + t486 * t72;
01441 const double t554 = t553 * t58;
01442 const double t558 = t490 * t45 - t504 * t71;
01443 const double t559 = t558 * t58;
01444 const double t562 = t399 * t58;
01445 const double t567 = t421 * t58;
01446 const double t572 = t445 * t58;
01447 const double t577 = t465 * t58;
01448 const double t582 = t488 * t58 / 0.2e1;
01449 const double t587 = t513 * t58;
01450 const double t592 = t533 * t58;
01451 const double t597 = t549 * t58;
01452 const double t634 = t392 + t394;
01453 const double t635 = t7 * t634;
01454 const double t638 = -t65 - t382;
01455 const double t639 = t7 * t638;
01456 const double t643 = (-0.2e1 * t639 * v2x0 - t387) * t28;
01457 const double t645 = -0.2e1 * t635 * t31 + t142 - t643 * t44;
01458 const double t647 = t39 - t41;
01459 const double t648 = t7 * t647;
01460 const double t652 = 0.2e1 * t648 * t31 - t173 + t643 * t71;
01461 const double t653 = t652 * t58;
01462 const double t659 = -0.2e1 * t648 * t46 + t51 + 0.2e1 * t635 * t73 - t125;
01463 const double t660 = t659 * t58;
01464 const double t668 = (-0.2e1 * t639 * v2x1 - t117) * t28;
01465 const double t670 = -0.2e1 * t635 * t101 + t173 - t668 * t44;
01466 const double t675 = 0.2e1 * t648 * t101 + t142 + t668 * t71;
01467 const double t676 = t675 * t58;
01468 const double t682 = -0.2e1 * t648 * t107 - t112 + 0.2e1 * t635 * t121 - t77;
01469 const double t683 = t682 * t58;
01470 const double t690 = -0.2e1 * t635 * t138 + t37 + 0.2e1 * t639 * t143;
01471 const double t696 = 0.2e1 * t648 * t138 - t106 - 0.2e1 * t639 * t156;
01472 const double t697 = t696 * t58;
01473 const double t703 = -0.2e1 * t648 * t143 + t147 + 0.2e1 * t635 * t156 - t91;
01474 const double t704 = t703 * t58;
01475 const double t711 = -0.2e1 * t635 * t169 + t106 + 0.2e1 * t639 * t174;
01476 const double t717 = 0.2e1 * t648 * t169 + t37 - 0.2e1 * t639 * t183;
01477 const double t718 = t717 * t58;
01478 const double t724 = -0.2e1 * t648 * t174 - t178 + 0.2e1 * t635 * t183 - t133;
01479 const double t725 = t724 * t58;
01480 const double t728 = t34 * t634;
01481 const double t731 = 0.1e1 + t34 * t638;
01482 const double t732 = t731 * t199;
01483 const double t733 = t732 * t223;
01484 const double t734 = -t728 * t201 + t733;
01485 const double t736 = t34 * t647;
01486 const double t741 = t731 * t28;
01487 const double t742 = t736 * t201 / 0.2e1 - t732 * t501 / 0.2e1 + t741;
01488 const double t743 = t742 * t58;
01489 const double t749 = t728 * t28;
01490 const double t750 = -t736 * t205 / 0.2e1 + t728 * t216 / 0.2e1 - t749;
01491 const double t751 = t750 * t58;
01492 const double t758 = -t728 * t233 / 0.2e1 + t732 * t248 / 0.2e1 - t741;
01493 const double t761 = t736 * t233 - t733;
01494 const double t762 = t761 * t58 / 0.2e1;
01495 const double t766 = t736 * t28;
01496 const double t769 = -t736 * t236 / 0.2e1 + t766 + t728 * t243 / 0.2e1;
01497 const double t770 = t769 * t58;
01498 const double t777 = -t728 * t258 / 0.2e1 + t749 + t732 * t241 / 0.2e1;
01499 const double t783 = t736 * t258 / 0.2e1 - t766 - t732 * t212 / 0.2e1;
01500 const double t784 = t783 * t58;
01501 const double t788 = -t736 * t261 + t728 * t269;
01502 const double t789 = t788 * t58 / 0.2e1;
01503 const double t794 = t728 * t30 - t741 * t44;
01504 const double t798 = -t736 * t30 + t741 * t71;
01505 const double t799 = t798 * t58;
01506 const double t803 = t736 * t45 - t728 * t72;
01507 const double t804 = t803 * t58;
01508 const double t807 = t645 * t58;
01509 const double t812 = t670 * t58;
01510 const double t817 = t690 * t58;
01511 const double t822 = t711 * t58;
01512 const double t827 = t734 * t58 / 0.2e1;
01513 const double t832 = t758 * t58;
01514 const double t837 = t777 * t58;
01515 const double t842 = t794 * t58;
01516 cg[8*0 + 0] = t52 * t63 + t79 * t84 + t93 * t98;
01517 cg[8*0 + 1] = t113 * t63 + t127 * t84 + t135 * t98;
01518 cg[8*0 + 2] = t148 * t63 + t160 * t84 + t166 * t98;
01519 cg[8*0 + 3] = t179 * t63 + t187 * t84 + t194 * t98;
01520 cg[8*0 + 4] = t207 * t63 / 0.2e1 + t221 * t84 + t230 * t98;
01521 cg[8*0 + 5] = t239 * t63 + t246 * t84 + t255 * t98;
01522 cg[8*0 + 6] = t264 * t63 + t273 * t84 + t277 * t98;
01523 cg[8*0 + 7] = t282 * t63 + t287 * t84 + t292 * t98;
01524 cg[8*1 + 0] = t295 * t296 + t78 * t301 + t93 * t307;
01525 cg[8*1 + 1] = t310 * t296 + t126 * t301 + t135 * t307;
01526 cg[8*1 + 2] = t315 * t296 + t159 * t301 + t166 * t307;
01527 cg[8*1 + 3] = t320 * t296 + t186 * t301 + t194 * t307;
01528 cg[8*1 + 4] = t325 * t296 + t220 * t301 + t230 * t307;
01529 cg[8*1 + 5] = t330 * t296 + t245 * t301 / 0.2e1 + t255 * t307;
01530 cg[8*1 + 6] = t335 * t296 + t272 * t301 + t277 * t307;
01531 cg[8*1 + 7] = t340 * t296 + t286 * t301 + t292 * t307;
01532 cg[8*2 + 0] = t295 * t345 + t79 * t347 + t92 * t351;
01533 cg[8*2 + 1] = t310 * t345 + t127 * t347 + t134 * t351;
01534 cg[8*2 + 2] = t315 * t345 + t160 * t347 + t165 * t351;
01535 cg[8*2 + 3] = t320 * t345 + t187 * t347 + t193 * t351;
01536 cg[8*2 + 4] = t325 * t345 + t221 * t347 + t229 * t351;
01537 cg[8*2 + 5] = t330 * t345 + t246 * t347 + t254 * t351;
01538 cg[8*2 + 6] = t335 * t345 + t273 * t347 + t276 * t351 / 0.2e1;
01539 cg[8*2 + 7] = t340 * t345 + t287 * t347 + t291 * t351;
01540 cg[8*3 + 0] = t399 * t63 + t408 * t84 + t414 * t98;
01541 cg[8*3 + 1] = t421 * t63 + t428 * t84 + t435 * t98;
01542 cg[8*3 + 2] = t445 * t63 + t452 * t84 + t458 * t98;
01543 cg[8*3 + 3] = t465 * t63 + t472 * t84 + t479 * t98;
01544 cg[8*3 + 4] = t488 * t63 / 0.2e1 + t497 * t84 + t506 * t98;
01545 cg[8*3 + 5] = t513 * t63 + t518 * t84 + t526 * t98;
01546 cg[8*3 + 6] = t533 * t63 + t540 * t84 + t544 * t98;
01547 cg[8*3 + 7] = t549 * t63 + t554 * t84 + t559 * t98;
01548 cg[8*4 + 0] = t562 * t296 + t407 * t301 + t414 * t307;
01549 cg[8*4 + 1] = t567 * t296 + t427 * t301 + t435 * t307;
01550 cg[8*4 + 2] = t572 * t296 + t451 * t301 + t458 * t307;
01551 cg[8*4 + 3] = t577 * t296 + t471 * t301 + t479 * t307;
01552 cg[8*4 + 4] = t582 * t296 + t496 * t301 + t506 * t307;
01553 cg[8*4 + 5] = t587 * t296 + t517 * t301 / 0.2e1 + t526 * t307;
01554 cg[8*4 + 6] = t592 * t296 + t539 * t301 + t544 * t307;
01555 cg[8*4 + 7] = t597 * t296 + t553 * t301 + t559 * t307;
01556 cg[8*5 + 0] = t562 * t345 + t408 * t347 + t413 * t351;
01557 cg[8*5 + 1] = t567 * t345 + t428 * t347 + t434 * t351;
01558 cg[8*5 + 2] = t572 * t345 + t452 * t347 + t457 * t351;
01559 cg[8*5 + 3] = t577 * t345 + t472 * t347 + t478 * t351;
01560 cg[8*5 + 4] = t582 * t345 + t497 * t347 + t505 * t351;
01561 cg[8*5 + 5] = t587 * t345 + t518 * t347 + t525 * t351;
01562 cg[8*5 + 6] = t592 * t345 + t540 * t347 + t543 * t351 / 0.2e1;
01563 cg[8*5 + 7] = t597 * t345 + t554 * t347 + t558 * t351;
01564 cg[8*6 + 0] = t645 * t63 + t653 * t84 + t660 * t98;
01565 cg[8*6 + 1] = t670 * t63 + t676 * t84 + t683 * t98;
01566 cg[8*6 + 2] = t690 * t63 + t697 * t84 + t704 * t98;
01567 cg[8*6 + 3] = t711 * t63 + t718 * t84 + t725 * t98;
01568 cg[8*6 + 4] = t734 * t63 / 0.2e1 + t743 * t84 + t751 * t98;
01569 cg[8*6 + 5] = t758 * t63 + t762 * t84 + t770 * t98;
01570 cg[8*6 + 6] = t777 * t63 + t784 * t84 + t789 * t98;
01571 cg[8*6 + 7] = t794 * t63 + t799 * t84 + t804 * t98;
01572 cg[8*7 + 0] = t807 * t296 + t652 * t301 + t660 * t307;
01573 cg[8*7 + 1] = t812 * t296 + t675 * t301 + t683 * t307;
01574 cg[8*7 + 2] = t817 * t296 + t696 * t301 + t704 * t307;
01575 cg[8*7 + 3] = t822 * t296 + t717 * t301 + t725 * t307;
01576 cg[8*7 + 4] = t827 * t296 + t742 * t301 + t751 * t307;
01577 cg[8*7 + 5] = t832 * t296 + t761 * t301 / 0.2e1 + t770 * t307;
01578 cg[8*7 + 6] = t837 * t296 + t783 * t301 + t789 * t307;
01579 cg[8*7 + 7] = t842 * t296 + t798 * t301 + t804 * t307;
01580 cg[8*8 + 0] = t807 * t345 + t653 * t347 + t659 * t351;
01581 cg[8*8 + 1] = t812 * t345 + t676 * t347 + t682 * t351;
01582 cg[8*8 + 2] = t817 * t345 + t697 * t347 + t703 * t351;
01583 cg[8*8 + 3] = t822 * t345 + t718 * t347 + t724 * t351;
01584 cg[8*8 + 4] = t827 * t345 + t743 * t347 + t750 * t351;
01585 cg[8*8 + 5] = t832 * t345 + t762 * t347 + t769 * t351;
01586 cg[8*8 + 6] = t837 * t345 + t784 * t347 + t788 * t351 / 0.2e1;
01587 cg[8*8 + 7] = t842 * t345 + t799 * t347 + t803 * t351;
01588 }
01589
01590