aboutsummaryrefslogtreecommitdiff
path: root/src/gr.cg/expansion_Jacobian.c
blob: b5d2427000c5a505918df53b5f650c016ee9f220 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
/*
 * inputs = {r, partial_d_ln_sqrt_g, partial_d_g_uu, X_ud, X_udd, g_uu, K_uu, Theta_A, Theta_B, Theta_C, Theta_D, h}
 * outputs = {partial_Theta_wrt_partial_d_h, partial_Theta_wrt_partial_dd_h}
 * cost = 458*assignments+1692*multiplications+10*divisions+7*functions+729*additions
 */
fp t1, t2, t3, t4, t5, t7, t8, t10, t11, t13;
fp t14, t16, t18, t20, t22, t24, t26, t28, t29, t31;
fp t32, t35, t37, t38, t41, t42, t43, t46, t48, t52;
fp t54, t55, t59, t60, t63, t67, t68, t69, t70, t71;
fp t74, t76, t78, t80, t83, t85, t86, t92, t93, t94;
fp t98, t99, t102, t103, t104, t107, t108, t112, t113, t114;
fp t115, t116, t118, t119, t120, t122, t123, t126, t127, t128;
fp t133, t136, t140, t141, t142, t143, t153, t156, t158, t160;
fp t162, t165, t167, t168, t171, t172, t173, t174, t179, t183;
fp t185, t189, t190, t193, t194, t195, t197, t198, t202, t205;
fp t208, t209, t212, t216, t217, t218, t220, t222, t223, t224;
fp t226, t227, t232, t235, t236, t237, t238, t240, t247, t248;
fp t249, t254, t259, t263, t266, t267, t275, t278, t281, t284;
fp t287, t288, t291, t296, t297, t298, t300, t307, t309, t311;
fp t314, t316, t317, t322, t325, t326, t329, t334, t335, t336;
fp t340, t346, t350, t351, t352, t354, t357, t358, t359, t361;
fp t364, t365, t366, t368, t370, t373, t374, t376, t381, t385;
fp t386, t392, t398, t401, t404, t405, t407, t408, t411, t414;
fp t416, t417, t419, t421, t422, t424, t428, t431, t432, t434;
fp t437, t440, t442, t449, t454, t458, t461, t467, t470, t471;
fp t474, t475, t481, t485, t489, t494, t498, t503, t504, t505;
fp t507, t514, t518, t534, t536, t542, t545, t548, t551, t552;
fp t559, t561, t562, t565, t569, t571, t572, t573, t575, t576;
fp t588, t589, t590, t593, t594, t599, t601, t605, t608, t609;
fp t612, t613, t627, t632, t633, t640, t644, t652, t656, t664;
fp t669, t672, t677, t678, t680, t694, t704, t707, t712, t716;
fp t723, t738, t741, t746, t748, t750, t774, t776, t780, t785;
fp t787, t792, t796, t797, t799, t800, t802, t803, t805, t807;
fp t809, t811, t813, t815, t817, t819, t822, t824, t827, t829;
fp t832, t835, t837, t840, t843, t847, t860, t869, t871, t876;
fp t882, t886, t890, t891, t897, t899, t900, t902, t904, t905;
fp t907, t913, t920, t929, t930, t933, t938, t944, t947, t949;
fp t962, t970, t971, t976, t979, t983, t996, t997, t1000, t1001;
fp t1004, t1010, t1012, t1015, t1033, t1036, t1039, t1047, t1048, t1050;
fp t1062, t1065, t1070, t1074, t1075, t1078, t1080, t1082, t1087, t1093;
fp t1095, t1097, t1103, t1107, t1112, t1114, t1138, t1139, t1141, t1145;
fp t1150, t1163, t1166, t1169, t1174, t1186, t1189, t1192, t1200, t1214;
fp t1234, t1266, t1281, t1289, t1300, t1301, t1308, t1335, t1342, t1345;
fp t1364, t1370, t1405, t1414, t1427, t1457, t1460, t1463, t1465, t1469;
fp t1475, t1476, t1477, t1483, t1486, t1487, t1491, t1492, t1493, t1497;
fp t1505, t1508, t1510, t1513, t1516, t1517, t1520, t1526, t1536, t1547;
fp t1552, t1555, t1558, t1561, t1572, t1580, t1594, t1600, t1606, t1610;
fp t1622, t1629, t1639, t1641, t1643, t1645, t1648, t1655, t1659, t1660;
fp t1666, t1667, t1684, t1697, t1704, t1718, t1721, t1739, t1748, t1751;
fp t1757, t1760, t1761, t1768, t1771, t1783, t1785, t1788, t1791, t1803;
fp t1809, t1812, t1825;
      t1 = g_uu_13;
      t2 = X_ud_13;
      t3 = t1*t2;
      t4 = g_uu_12;
      t5 = 1/r;
      t7 = X_ud_11;
      t8 = PARTIAL_RHO(h);
      t10 = X_ud_21;
      t11 = PARTIAL_SIGMA(h);
      t13 = xx*t5-t7*t8-t10*t11;
      t14 = t4*t13;
      t16 = r*r;
      t18 = 1/t16/r;
      t20 = X_udd_112;
      t22 = X_udd_212;
      t24 = X_ud_12;
      t26 = PARTIAL_RHO_RHO(h);
      t28 = t10*t24;
      t29 = PARTIAL_RHO_SIGMA(h);
      t31 = X_ud_22;
      t32 = t7*t31;
      t35 = PARTIAL_SIGMA_SIGMA(h);
      t37 = -xx*yy*t18-t20*t8-t22*t11-t7*t24*t26-t28*t29-t32*t29-t10*t31*t35;
      t38 = t14*t37;
      t41 = g_uu_22;
      t42 = t41*t24;
      t43 = t1*t13;
      t46 = X_udd_123;
      t48 = X_udd_223;
      t52 = t31*t2;
      t54 = X_ud_23;
      t55 = t24*t54;
      t59 = -yy*zz*t18-t46*t8-t48*t11-t24*t2*t26-t52*t29-t55*t29-t31*t54*t35;
      t60 = t43*t59;
      t63 = g_uu_23;
      t67 = yy*t5-t24*t8-t31*t11;
      t68 = t63*t67;
      t69 = t1*t7;
      t70 = xx*xx;
      t71 = yy*yy;
      t74 = X_udd_133;
      t76 = X_udd_233;
      t78 = t2*t2;
      t80 = t54*t2;
      t83 = t54*t54;
      t85 = (t70+t71)*t18-t74*t8-t76*t11-t78*t26-2.0*t80*t29-t83*t35;
      t86 = t69*t85;
      t92 = zz*t5-t2*t8-t54*t11;
      t93 = t63*t92;
      t94 = t4*t67;
      t98 = t41*t67;
      t99 = t69*t59;
      t102 = g_uu_33;
      t103 = t102*t92;
      t104 = t43*t74;
      t107 = t1*t92;
      t108 = t4*t7;
      t112 = g_uu_11;
      t113 = t112*t13;
      t114 = partial_d_g_uu_123;
      t115 = t114*t2;
      t116 = t115*t67;
      t118 = partial_d_g_uu_211;
      t119 = t118*t13;
      t120 = t119*t7;
      t122 = t63*t2;
      t123 = t94*t37;
      t126 = partial_d_g_uu_122;
      t127 = t126*t67;
      t128 = t127*t24;
      t133 = t98*t37;
      t136 = X_udd_113;
      t140 = 2.0*t3*t38+2.0*t42*t60+2.0*t68*t86+2.0*t93*t94*t20+2.0*t98*t99+2.0
*t103*t104+2.0*t107*t108*t37+t113*t116+t93*t120+2.0*t122*t123+t113*t128+2.0*
t107*t14*t20+2.0*t3*t133+2.0*t107*t68*t136;
      t141 = partial_d_g_uu_311;
      t142 = t141*t13;
      t143 = t142*t7;
      t153 = zz*zz;
      t156 = X_udd_122;
      t158 = X_udd_222;
      t160 = t24*t24;
      t162 = t31*t24;
      t165 = t31*t31;
      t167 = (t70+t153)*t18-t156*t8-t158*t11-t160*t26-2.0*t162*t29-t165*t35;
      t168 = t108*t167;
      t171 = t13*t13;
      t172 = t112*t171;
      t173 = partial_d_g_uu_112;
      t174 = t173*t24;
      t179 = X_udd_213;
      t183 = t10*t2;
      t185 = t7*t54;
      t189 = -xx*zz*t18-t136*t8-t179*t11-t7*t2*t26-t183*t29-t185*t29-t10*t54*
t35;
      t190 = t68*t189;
      t193 = t112*t7;
      t194 = t114*t92;
      t195 = t194*t67;
      t197 = t4*t4;
      t198 = t197*t67;
      t202 = t108*t59;
      t205 = t193*t37;
      t208 = t102*t2;
      t209 = t14*t59;
      t212 = t63*t24;
      t216 = t63*t63;
      t217 = t92*t92;
      t218 = t216*t217;
      t220 = t103*t143+2.0*t94*t43*t136+2.0*t107*t98*t20+2.0*t68*t104+2.0*t93*
t168+t172*t174+2.0*t3*t190+t193*t195+2.0*t198*t7*t37+2.0*t103*t202+2.0*t93*t205
+2.0*t208*t209+2.0*t107*t212*t189+t218*t156;
      t222 = t1*t1;
      t223 = t222*t217;
      t224 = X_udd_111;
      t226 = t102*t102;
      t227 = t226*t217;
      t232 = t113*t189;
      t235 = t67*t67;
      t236 = t41*t235;
      t237 = partial_d_g_uu_223;
      t238 = t237*t2;
      t240 = t194*t24;
      t247 = partial_d_g_uu_333;
      t248 = t247*t92;
      t249 = t248*t2;
      t254 = t113*t136;
      t259 = t1*t171;
      t263 = t193*t189;
      t266 = t223*t224+t227*t74+2.0*t107*t42*t37+2.0*t208*t232+t236*t238+t113*
t240+2.0*t93*t98*t156+2.0*t68*t202+t43*t249+2.0*t93*t42*t167+2.0*t103*t254+2.0*
t212*t209+2.0*t259*t4*t46+2.0*t103*t263;
      t267 = t98*t167;
      t275 = t14*t46;
      t278 = t43*t46;
      t281 = t113*t224;
      t284 = t113*t37;
      t287 = t102*t217;
      t288 = t63*t46;
      t291 = t113*t20;
      t296 = partial_d_g_uu_312;
      t297 = t296*t67;
      t298 = t297*t13;
      t300 = t222*t92;
      t307 = X_udd_211;
      t309 = t7*t7;
      t311 = t10*t7;
      t314 = t10*t10;
      t316 = (t71+t153)*t18-t224*t8-t307*t11-t309*t26-2.0*t311*t29-t314*t35;
      t317 = t113*t316;
      t322 = 2.0*t122*t267+2.0*t94*t69*t189+4.0*t43*t263+2.0*t103*t275+2.0*t98*
t278+2.0*t107*t281+2.0*t122*t284+2.0*t287*t288+2.0*t93*t291+2.0*t68*t275+t208*
t298+2.0*t300*t7*t189+2.0*t3*t317+2.0*t103*t86;
      t325 = t4*t24;
      t326 = t325*t189;
      t329 = t43*t85;
      t334 = partial_d_g_uu_313;
      t335 = t334*t92;
      t336 = t335*t13;
      t340 = t335*t7;
      t346 = t63*t59;
      t350 = partial_d_g_uu_111;
      t351 = t350*t13;
      t352 = t351*t7;
      t354 = t193*t316;
      t357 = partial_d_g_uu_113;
      t358 = t357*t2;
      t359 = t358*t13;
      t361 = t94*t189;
      t364 = partial_d_g_uu_323;
      t365 = t364*t2;
      t366 = t365*t67;
      t368 = 2.0*t103*t326+2.0*t208*t329+2.0*t212*t329+t212*t336+4.0*t68*t326+
t68*t340+2.0*t93*t278+4.0*t43*t202+4.0*t103*t346*t2+t94*t352+2.0*t107*t354+t94*
t359+2.0*t208*t361+t43*t366;
      t370 = t41*t59*t24;
      t373 = t357*t92;
      t374 = t373*t13;
      t376 = t1*t189;
      t381 = t63*t235;
      t385 = partial_d_g_uu_133;
      t386 = t385*t217;
      t392 = t4*t20;
      t398 = t350*t171;
      t401 = t118*t171;
      t404 = t334*t2;
      t405 = t404*t13;
      t407 = t4*t37;
      t408 = t407*t24;
      t411 = t43*t189;
      t414 = 4.0*t68*t370+t325*t374+4.0*t103*t376*t2+t98*t120+2.0*t381*t41*t46+
RATIONAL(1.0,2.0)*t193*t386+2.0*t381*t4*t136+2.0*t236*t392+2.0*t259*t112*t136+
RATIONAL(1.0,2.0)*t3*t398+RATIONAL(1.0,2.0)*t122*t401+t68*t405+4.0*t98*t408+2.0
*t325*t411;
      t416 = t364*t92;
      t417 = t416*t67;
      t419 = t297*t7;
      t421 = t296*t24;
      t422 = t421*t13;
      t424 = t1*t37;
      t428 = t94*t316;
      t431 = t41*t41;
      t432 = t431*t235;
      t434 = t126*t235;
      t437 = t247*t217;
      t440 = t416*t24;
      t442 = t373*t7;
      t449 = t431*t67;
      t454 = t69*t417+t103*t419+t103*t422+4.0*t93*t424*t2+2.0*t3*t428+t432*t156
+RATIONAL(1.0,2.0)*t193*t434+RATIONAL(1.0,2.0)*t69*t437+t43*t440+t94*t442+2.0*
t300*t13*t136+t381*t296*t7+2.0*t449*t167*t24+t259*t421;
      t458 = t350*t7;
      t461 = t4*t235;
      t467 = t13*t189;
      t470 = t237*t92;
      t471 = t470*t24;
      t474 = t385*t92;
      t475 = t474*t2;
      t481 = t13*t37;
      t485 = t67*t59;
      t489 = t238*t67;
      t494 = RATIONAL(3.0,2.0)*t259*t141*t7+RATIONAL(3.0,2.0)*t172*t458+t461*
t115+2.0*t198*t13*t20+2.0*t222*t2*t467+2.0*t98*t471+t113*t475+2.0*t107*t94*t224
+2.0*t197*t24*t481+2.0*t216*t2*t485+t68*t249+t14*t489+t107*t128+2.0*t93*t99;
      t498 = t470*t67;
      t503 = partial_d_g_uu_233;
      t504 = t503*t92;
      t505 = t504*t2;
      t507 = t4*t171;
      t514 = t216*t92;
      t518 = t334*t7;
      t534 = t108*t498+2.0*t103*t94*t136+t14*t505+RATIONAL(3.0,2.0)*t507*t118*
t7+2.0*t107*t325*t316+2.0*t514*t24*t59+t287*t518+t259*t404+RATIONAL(3.0,2.0)*
t461*t126*t24+2.0*t514*t67*t46+RATIONAL(1.0,2.0)*t3*t434+2.0*t68*t440+t172*t358
+2.0*t68*t422;
      t536 = partial_d_g_uu_213;
      t542 = t98*t59;
      t545 = t68*t85;
      t548 = t216*t235;
      t551 = t536*t13;
      t552 = t551*t2;
      t559 = t174*t13;
      t561 = t536*t92;
      t562 = t561*t7;
      t565 = t226*t92;
      t569 = t94*t475+t507*t536*t2+2.0*t43*t340+t14*t471+2.0*t208*t542+2.0*t208
*t545+t548*t74+t98*t505+2.0*t93*t552+2.0*t94*t240+2.0*t113*t442+t107*t559+2.0*
t14*t562+2.0*t565*t85*t2;
      t571 = partial_d_g_uu_322;
      t572 = t571*t67;
      t573 = t572*t24;
      t575 = t173*t67;
      t576 = t575*t13;
      t588 = partial_d_g_uu_212;
      t589 = t588*t24;
      t590 = t589*t13;
      t593 = t588*t67;
      t594 = t593*t13;
      t599 = t575*t7;
      t601 = t63*t217;
      t605 = t141*t171;
      t608 = t43*t573+t3*t576+2.0*t103*t405+2.0*t43*t419+t103*t573+2.0*t107*
t359+2.0*t514*t167*t2+t93*t590+t381*t365+t122*t594+2.0*t103*t98*t46+t107*t599+
2.0*t601*t1*t20+RATIONAL(1.0,2.0)*t208*t605;
      t609 = t593*t7;
      t612 = partial_d_g_uu_222;
      t613 = t612*t24;
      t627 = t588*t7;
      t632 = t612*t67;
      t633 = t632*t24;
      t640 = t216*t67;
      t644 = 2.0*t14*t609+RATIONAL(3.0,2.0)*t236*t613+t93*t609+2.0*t113*t599+
RATIONAL(1.0,2.0)*t42*t401+2.0*t107*t116+RATIONAL(1.0,2.0)*t325*t398+2.0*t103*
t366+t236*t627+2.0*t103*t212*t85+t14*t633+2.0*t93*t489+RATIONAL(3.0,2.0)*t381*
t571*t24+2.0*t640*t85*t24;
      t652 = t364*t24;
      t656 = t1*t217;
      t664 = t247*t2;
      t669 = t1*t136;
      t672 = t503*t217;
      t677 = t112*t112;
      t678 = t677*t171;
      t680 = 4.0*t14*t205+2.0*t103*t68*t74+t287*t652+t461*t173*t7+t656*t114*t24
+t601*t237*t24+t507*t589+t601*t536*t7+RATIONAL(3.0,2.0)*t287*t664+RATIONAL(1.0,
2.0)*t212*t437+2.0*t287*t669+RATIONAL(1.0,2.0)*t108*t672+RATIONAL(1.0,2.0)*t42*
t672+t678*t224;
      t694 = t677*t13;
      t704 = t571*t235;
      t707 = t612*t235;
      t712 = t222*t13;
      t716 = 2.0*t98*t590+2.0*t300*t316*t2+2.0*t94*t559+t98*t562+2.0*t122*t60+
t93*t633+2.0*t103*t370+2.0*t694*t316*t7+RATIONAL(3.0,2.0)*t656*t385*t2+RATIONAL
(3.0,2.0)*t601*t503*t2+RATIONAL(1.0,2.0)*t208*t704+RATIONAL(1.0,2.0)*t122*t707+
RATIONAL(1.0,2.0)*t69*t704+2.0*t712*t85*t7;
      t723 = t197*t13;
      t738 = t14*t167;
      t741 = t14*t156;
      t746 = t561*t13;
      t748 = t197*t235;
      t750 = 2.0*t198*t316*t24+t656*t357*t7+2.0*t723*t167*t7+t68*t143+2.0*t507*
t112*t20+2.0*t94*t354+t98*t552+RATIONAL(1.0,2.0)*t108*t707+RATIONAL(1.0,2.0)*
t212*t605+2.0*t122*t738+2.0*t98*t741+2.0*t93*t408+t42*t746+t748*t224;
      t774 = t197*t171;
      t776 = t222*t171;
      t780 = 2.0*t94*t281+2.0*t42*t284+2.0*t98*t168+t107*t352+2.0*t212*t232+2.0
*t93*t741+RATIONAL(1.0,2.0)*t325*t386+2.0*t42*t738+2.0*t98*t205+2.0*t98*t291+
2.0*t325*t317+2.0*t68*t254+t774*t156+t776*t74+2.0*t68*t263;
      t785 = pow(Theta_D,1.0*RATIONAL(1.0,2.0));
      t787 = 1/t785/Theta_D;
      t792 = -t458-t627-t518-t174-t613-t652-t358-t238-t664-t112*t224-2.0*t392
-2.0*t669;
      t796 = partial_d_ln_sqrt_g_1;
      t797 = t112*t796;
      t799 = partial_d_ln_sqrt_g_2;
      t800 = t4*t799;
      t802 = partial_d_ln_sqrt_g_3;
      t803 = t1*t802;
      t805 = t4*t796;
      t807 = t41*t799;
      t809 = t63*t802;
      t811 = t1*t796;
      t813 = t63*t799;
      t815 = t102*t802;
      t817 = -t41*t156-2.0*t288-t102*t74-t797*t7-t800*t7-t803*t7-t805*t24-t807*
t24-t809*t24-t811*t2-t813*t2-t815*t2;
      t819 = 1/t785;
      t822 = K_uu_11*t13;
      t824 = K_uu_12;
      t827 = t824*t67;
      t829 = K_uu_13;
      t832 = t829*t92;
      t835 = K_uu_22*t67;
      t837 = K_uu_23;
      t840 = t837*t92;
      t843 = K_uu_33*t92;
      t847 = 1/Theta_D;
      t860 = Theta_D*Theta_D;
      t869 = RATIONAL(3.0,2.0)*Theta_A/t785/t860+RATIONAL(1.0,2.0)*Theta_B*t787
+Theta_C/t860;
      partial_Theta_wrt_partial_d_h_1 = (t140+t220+t266+t322+t368+t414+t454+
t494+t534+t569+t608+t644+t680+t716+t750+t780)*t787+(t792+t817)*t819+(-2.0*t822*
t7-2.0*t824*t24*t13-2.0*t827*t7-2.0*t829*t2*t13-2.0*t832*t7-2.0*t835*t24-2.0*
t837*t2*t67-2.0*t840*t24-2.0*t843*t2)*t847-(-2.0*t113*t7-2.0*t325*t13-2.0*t94*
t7-2.0*t3*t13-2.0*t107*t7-2.0*t98*t24-2.0*t122*t67-2.0*t93*t24-2.0*t103*t2)*
t869;
      t871 = t113*t22;
      t876 = t63*t54;
      t882 = t551*t54;
      t886 = t561*t10;
      t890 = t112*t10;
      t891 = t890*t316;
      t897 = t334*t10;
      t899 = 2.0*t93*t871+t381*t296*t10+t876*t594+2.0*t93*t94*t22+t432*t158+2.0
*t93*t882+t218*t158+2.0*t14*t886+t748*t307+2.0*t94*t891+t890*t195+t548*t76+t223
*t307+t287*t897;
      t900 = t194*t31;
      t902 = t334*t54;
      t904 = t114*t54;
      t905 = t904*t67;
      t907 = t63*t31;
      t913 = t102*t54;
      t920 = t14*t48;
      t929 = t4*t10;
      t930 = t929*t59;
      t933 = t335*t10;
      t938 = t113*t900+t259*t902+t113*t905+2.0*t907*t209+2.0*t300*t13*t179+2.0*
t913*t545+t507*t536*t54+t601*t536*t10+2.0*t68*t920+2.0*t712*t85*t10+2.0*t449*
t167*t31+2.0*t68*t930+t68*t933+2.0*t197*t31*t481;
      t944 = t1*t54;
      t947 = t588*t31;
      t949 = t113*t307;
      t962 = t364*t54;
      t970 = t4*t31;
      t971 = t970*t189;
      t976 = t913*t298+2.0*t103*t907*t85+2.0*t944*t317+t507*t947+2.0*t107*t949+
RATIONAL(3.0,2.0)*t507*t118*t10+2.0*t259*t4*t48+t259*t296*t31+2.0*t107*t891+
t381*t962+2.0*t198*t13*t22+2.0*t103*t68*t76+2.0*t103*t971+2.0*t876*t60;
      t979 = t416*t31;
      t983 = t351*t10;
      t996 = t1*t10;
      t997 = t996*t85;
      t1000 = t41*t31;
      t1001 = t1000*t59;
      t1004 = t996*t59;
      t1010 = t142*t10;
      t1012 = 2.0*t907*t329+t43*t979+2.0*t913*t361+t107*t983+2.0*t944*t38+4.0*
t93*t424*t54+2.0*t107*t929*t37+2.0*t103*t94*t179+2.0*t68*t997+2.0*t103*t1001+
2.0*t98*t1004+t970*t374+2.0*t913*t542+t103*t1010;
      t1015 = t119*t10;
      t1033 = t43*t48;
      t1036 = t297*t10;
      t1039 = t373*t10;
      t1047 = t357*t54;
      t1048 = t1047*t13;
      t1050 = t93*t1015+2.0*t107*t1000*t37+2.0*t259*t112*t179+2.0*t970*t411+2.0
*t944*t133+2.0*t93*t1004+2.0*t103*t98*t48+t774*t158+2.0*t98*t1033+2.0*t43*t1036
+2.0*t113*t1039+2.0*t1000*t60+2.0*t94*t43*t179+t94*t1048;
      t1062 = t43*t76;
      t1065 = t113*t179;
      t1070 = t470*t31;
      t1074 = t237*t54;
      t1075 = t1074*t67;
      t1078 = t504*t54;
      t1080 = t474*t54;
      t1082 = 2.0*t107*t98*t22+2.0*t94*t996*t189+t98*t1015+2.0*t970*t317+2.0*
t876*t123+2.0*t68*t1062+2.0*t68*t1065+2.0*t944*t428+t14*t1070+2.0*t94*t949+t14*
t1075+t94*t1039+t14*t1078+t113*t1080;
      t1087 = t112*t189*t10;
      t1093 = t248*t54;
      t1095 = t127*t31;
      t1097 = t572*t31;
      t1103 = t296*t13*t31;
      t1107 = t407*t31;
      t1112 = t632*t31;
      t1114 = 4.0*t43*t930+4.0*t43*t1087+t227*t76+4.0*t68*t971+t68*t1093+t107*
t1095+t103*t1097+4.0*t68*t1001+t98*t1078+2.0*t68*t1103+t678*t307+4.0*t98*t1107+
RATIONAL(1.0,2.0)*t1000*t672+t93*t1112;
      t1138 = t173*t31;
      t1139 = t1138*t13;
      t1141 = t4*t22;
      t1145 = 2.0*t381*t41*t48+2.0*t216*t54*t485+t103*t1103+RATIONAL(1.0,2.0)*
t996*t704+t103*t1036+t601*t237*t31+t172*t1047+RATIONAL(3.0,2.0)*t601*t503*t54+
2.0*t514*t31*t59+2.0*t514*t67*t48+t776*t76+t107*t1139+2.0*t236*t1141+t996*t417;
      t1150 = t593*t10;
      t1163 = t947*t13;
      t1166 = t962*t67;
      t1169 = t575*t10;
      t1174 = t944*t576+t93*t1150+2.0*t723*t167*t10+RATIONAL(1.0,2.0)*t890*t386
+RATIONAL(1.0,2.0)*t929*t672+RATIONAL(1.0,2.0)*t944*t434+RATIONAL(1.0,2.0)*t907
*t437+t93*t1163+t98*t882+t43*t1166+t1000*t746+t107*t1169+t43*t1097+2.0*t107*
t1048;
      t1186 = t112*t37*t10;
      t1189 = t929*t167;
      t1192 = t14*t158;
      t1200 = t43*t1093+t907*t336+2.0*t98*t1070+t113*t1095+2.0*t113*t1169+t68*
t1010+t98*t886+t94*t1080+4.0*t14*t1186+2.0*t93*t1189+2.0*t93*t1192+2.0*t913*
t232+2.0*t876*t738+t14*t1112;
      t1214 = t902*t13;
      t1234 = 2.0*t107*t14*t22+2.0*t1000*t738+2.0*t876*t267+2.0*t107*t68*t179+
2.0*t94*t900+t68*t1214+2.0*t103*t920+2.0*t944*t190+2.0*t68*t1087+2.0*t93*t98*
t158+2.0*t907*t232+2.0*t93*t1000*t167+2.0*t98*t1192+2.0*t98*t1189;
      t1266 = 2.0*t103*t1065+t94*t983+2.0*t1000*t284+2.0*t198*t316*t31+2.0*t107
*t907*t189+RATIONAL(1.0,2.0)*t890*t434+2.0*t103*t1166+2.0*t43*t933+2.0*t103*
t930+2.0*t94*t1139+2.0*t98*t1163+2.0*t98*t1186+RATIONAL(3.0,2.0)*t259*t141*t10+
2.0*t222*t54*t467;
      t1281 = t588*t10;
      t1289 = t247*t54;
      t1300 = 2.0*t300*t10*t189+RATIONAL(3.0,2.0)*t656*t385*t54+t461*t904+t172*
t1138+t236*t1074+2.0*t694*t316*t10+t236*t1281+RATIONAL(3.0,2.0)*t381*t571*t31+
RATIONAL(3.0,2.0)*t461*t126*t31+RATIONAL(3.0,2.0)*t287*t1289+2.0*t103*t1087+2.0
*t107*t905+2.0*t68*t979+2.0*t98*t871;
      t1301 = t612*t31;
      t1308 = t364*t31;
      t1335 = RATIONAL(3.0,2.0)*t236*t1301+2.0*t93*t1075+2.0*t14*t1150+t287*
t1308+t656*t114*t31+t461*t173*t10+RATIONAL(1.0,2.0)*t1000*t401+t656*t357*t10+
2.0*t300*t316*t54+2.0*t507*t112*t22+2.0*t640*t85*t31+2.0*t601*t1*t22+RATIONAL(
1.0,2.0)*t876*t707+2.0*t565*t85*t54;
      t1342 = t63*t48;
      t1345 = t1*t179;
      t1364 = t350*t10;
      t1370 = RATIONAL(1.0,2.0)*t913*t704+2.0*t514*t167*t54+2.0*t287*t1342+2.0*
t287*t1345+RATIONAL(1.0,2.0)*t970*t398+RATIONAL(1.0,2.0)*t996*t437+RATIONAL(1.0
,2.0)*t907*t605+RATIONAL(1.0,2.0)*t944*t398+RATIONAL(1.0,2.0)*t876*t401+
RATIONAL(1.0,2.0)*t913*t605+RATIONAL(1.0,2.0)*t929*t707+RATIONAL(1.0,2.0)*t970*
t386+RATIONAL(3.0,2.0)*t172*t1364+2.0*t198*t10*t37;
      t1405 = 4.0*t103*t376*t54+2.0*t103*t1214+4.0*t103*t346*t54+2.0*t93*t1107+
2.0*t107*t94*t307+2.0*t107*t970*t316+2.0*t913*t209+2.0*t381*t4*t179+t929*t498+
2.0*t93*t1033+2.0*t103*t997+2.0*t103*t1062+2.0*t913*t329+2.0*t876*t284+2.0*t93*
t1186;
      t1414 = -t1364-t1281-t897-t1138-t1301-t1308-t1047-t1074-t1289-t112*t307
-2.0*t1141-2.0*t1345;
      t1427 = -t41*t158-2.0*t1342-t102*t76-t797*t10-t800*t10-t803*t10-t805*t31-
t807*t31-t809*t31-t811*t54-t813*t54-t815*t54;
      partial_Theta_wrt_partial_d_h_2 = (t899+t938+t976+t1012+t1050+t1082+t1114
+t1145+t1174+t1200+t1234+t1266+t1300+t1335+t1370+t1405)*t787+(t1414+t1427)*t819
+(-2.0*t822*t10-2.0*t824*t31*t13-2.0*t827*t10-2.0*t829*t54*t13-2.0*t832*t10-2.0
*t835*t31-2.0*t837*t54*t67-2.0*t840*t31-2.0*t843*t54)*t847-(-2.0*t113*t10-2.0*
t970*t13-2.0*t94*t10-2.0*t944*t13-2.0*t107*t10-2.0*t98*t31-2.0*t876*t67-2.0*t93
*t31-2.0*t103*t54)*t869;
      t1457 = t14*t160;
      t1460 = t69*t2;
      t1463 = t68*t4;
      t1465 = t13*t24*t2;
      t1469 = t43*t78;
      t1475 = t103*t4;
      t1476 = t67*t7;
      t1477 = t1476*t2;
      t1483 = t212*t2;
      t1486 = t107*t41;
      t1487 = t1476*t24;
      t1491 = 2.0*t98*t1457+2.0*t287*t1460+2.0*t1463*t1465+t774*t160+2.0*t68*
t1469+2.0*t107*t94*t309+2.0*t1475*t1477+2.0*t381*t108*t2+2.0*t287*t1483+2.0*
t1486*t1487+t218*t160;
      t1492 = t13*t7;
      t1493 = t1492*t24;
      t1497 = t113*t309;
      t1505 = t98*t1;
      t1508 = t103*t41;
      t1510 = t67*t24*t2;
      t1513 = t93*t4;
      t1516 = t94*t1;
      t1517 = t1492*t2;
      t1520 = t107*t4;
      t1526 = 2.0*t198*t1493+t223*t309+2.0*t107*t1497+2.0*t259*t193*t2+2.0*t93*
t1457+2.0*t1505*t1465+2.0*t1508*t1510+2.0*t1513*t1487+2.0*t1516*t1517+2.0*t1520
*t1493+2.0*t103*t68*t78;
      t1536 = t93*t112;
      t1547 = t93*t1;
      t1552 = t432*t160+2.0*t93*t98*t160+t548*t78+2.0*t514*t1510+t748*t309+2.0*
t1536*t1493+2.0*t300*t1517+2.0*t381*t42*t2+2.0*t507*t193*t24+2.0*t1547*t1465+
2.0*t1475*t1465;
      t1555 = t103*t112;
      t1558 = t98*t112;
      t1561 = t108*t24;
      t1572 = t68*t112;
      t1580 = 2.0*t1547*t1477+2.0*t1555*t1517+2.0*t1558*t1493+2.0*t236*t1561+
2.0*t259*t325*t2+t776*t78+t678*t309+t227*t78+2.0*t94*t1497+2.0*t1572*t1517+2.0*
t103*t1469+2.0*t601*t69*t24;
      partial_Theta_wrt_partial_dd_h_11 = (t1491+t1526+t1552+t1580)*t787+(-t112
*t309-2.0*t1561-2.0*t1460-t41*t160-2.0*t1483-t102*t78)*t819;
      t1594 = -t183-t185;
      t1600 = t67*t10;
      t1606 = -t28-t32;
      t1610 = t1*t1594;
      t1622 = 2.0*t218*t162-2.0*t107*t68*t1594+2.0*t432*t162+4.0*t1520*t1600*t7
+2.0*t776*t80-2.0*t601*t1*t1606-2.0*t287*t1610+2.0*t223*t311+2.0*t748*t311-2.0*
t93*t94*t1606+2.0*t774*t162;
      t1629 = -t52-t55;
      t1639 = t113*t1606;
      t1641 = t113*t1594;
      t1643 = t14*t1629;
      t1645 = -t381*t4*t1594-t300*t13*t1594-t107*t98*t1606-t259*t4*t1629-t103*
t94*t1594-t107*t14*t1606+t678*t311-t507*t112*t1606-t93*t1639-t103*t1641-t103*
t1643;
      t1648 = t43*t1629;
      t1655 = t13*t54*t2;
      t1659 = t13*t10;
      t1660 = t1659*t7;
      t1666 = t13*t31;
      t1667 = t1666*t24;
      t1684 = -2.0*t93*t1648+2.0*t227*t80+4.0*t103*t1*t1655+4.0*t94*t112*t1660
-2.0*t198*t13*t1606+4.0*t1513*t1667-2.0*t514*t67*t1629-2.0*t94*t43*t1594+4.0*
t68*t1*t1655+4.0*t98*t4*t1667-2.0*t98*t1639;
      t1697 = t4*t1606;
      t1704 = t67*t31;
      t1718 = t63*t1629;
      t1721 = -2.0*t259*t112*t1594-2.0*t68*t1643-2.0*t68*t1641-2.0*t98*t1648+
4.0*t107*t112*t1660-2.0*t236*t1697-2.0*t381*t41*t1629+4.0*t93*t41*t1704*t24-2.0
*t103*t98*t1629+2.0*t548*t80+4.0*t103*t63*t67*t54*t2-2.0*t287*t1718;
      partial_Theta_wrt_partial_dd_h_12 = (t1622+2.0*t1645+t1684+t1721)*t787+(
-2.0*t890*t7+2.0*t1697+2.0*t1610-2.0*t1000*t24+2.0*t1718-2.0*t913*t2)*t819;
      t1739 = t996*t54;
      t1748 = t1704*t54;
      t1751 = t1600*t54;
      t1757 = t1600*t31;
      t1760 = 2.0*t507*t890*t31+2.0*t93*t98*t165+t227*t83+t548*t83+2.0*t287*
t1739+2.0*t259*t970*t54+2.0*t601*t996*t31+2.0*t514*t1748+2.0*t1547*t1751+2.0*
t107*t94*t314+2.0*t1486*t1757;
      t1761 = t907*t54;
      t1768 = t1659*t31;
      t1771 = t113*t314;
      t1783 = 2.0*t287*t1761+t748*t314+t774*t165+t678*t314+t223*t314+2.0*t198*
t1768+2.0*t94*t1771+2.0*t1513*t1757+2.0*t1520*t1768+2.0*t1475*t1751+2.0*t103*
t68*t83;
      t1785 = t1666*t54;
      t1788 = t1659*t54;
      t1791 = t43*t83;
      t1803 = t14*t165;
      t1809 = 2.0*t1547*t1785+2.0*t1516*t1788+2.0*t68*t1791+2.0*t1558*t1768+2.0
*t259*t890*t54+2.0*t107*t1771+2.0*t1463*t1785+2.0*t98*t1803+t218*t165+t776*t83+
t432*t165;
      t1812 = t929*t31;
      t1825 = t1572*t1788+t1505*t1785+t236*t1812+t103*t1791+t300*t1788+t381*
t1000*t54+t381*t929*t54+t93*t1803+t1555*t1788+t1536*t1768+t1475*t1785+t1508*
t1748;
      partial_Theta_wrt_partial_dd_h_22 = (t1760+t1783+t1809+2.0*t1825)*t787+(-
t112*t314-2.0*t1812-2.0*t1739-t41*t165-2.0*t1761-t102*t83)*t819;