aboutsummaryrefslogtreecommitdiff
path: root/src/gr.cg/horizon_Jacobian.c
blob: eff036bd627cd0ce45bcde7c13868e3e3df0bca8 (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
/*
 * inputs = {r, partial_d_ln_sqrt_g, partial_d_g_uu, X_ud, X_udd, g_uu, K_uu, h, HA, HB, HC, HD}
 * outputs = {partial_H_wrt_partial_d_h, partial_H_wrt_partial_dd_h}
 * cost = 457*assignments+10*divisions+7*functions+1685*multiplications+729*additions
 */
fp t1, t2, t4, t5, t7, t8, t10, t11, t12, t14;
fp t16, t18, t19, t20, t21, t23, t24, t25, t26, t29;
fp t30, t33, t35, t36, t37, t38, t40, t42, t44, t46;
fp t48, t49, t51, t52, t55, t56, t58, t59, t62, t63;
fp t66, t68, t72, t74, t78, t82, t83, t86, t87, t88;
fp t91, t92, t93, t94, t95, t97, t98, t101, t104, t107;
fp t108, t109, t112, t113, t115, t119, t121, t125, t127, t131;
fp t132, t135, t136, t137, t138, t142, t143, t146, t147, t150;
fp t151, t152, t154, t157, t160, t162, t164, t166, t169, t171;
fp t175, t182, t186, t188, t194, t196, t199, t206, t207, t210;
fp t213, t215, t216, t219, t220, t221, t224, t226, t229, t235;
fp t236, t239, t240, t242, t243, t244, t247, t248, t255, t259;
fp t261, t265, t266, t270, t271, t273, t274, t275, t277, t280;
fp t281, t282, t283, t286, t289, t290, t292, t295, t296, t299;
fp t303, t309, t313, t319, t320, t323, t327, t333, t335, t337;
fp t339, t342, t344, t345, t348, t351, t354, t359, t360, t361;
fp t363, t366, t370, t371, t374, t375, t378, t381, t384, t385;
fp t387, t390, t396, t398, t399, t403, t404, t406, t416, t417;
fp t419, t423, t426, t429, t432, t440, t443, t445, t453, t454;
fp t458, t460, t462, t464, t465, t467, t468, t470, t473, t479;
fp t484, t485, t487, t488, t491, t494, t495, t497, t499, t503;
fp t510, t514, t518, t521, t522, t537, t538, t540, t557, t560;
fp t561, t566, t570, t573, t579, t581, t582, t589, t596, t606;
fp t611, t619, t620, t622, t626, t630, t631, t636, t645, t647;
fp t649, t650, t654, t659, t660, t662, t663, t672, t675, t676;
fp t685, t686, t688, t697, t715, t719, t722, t725, t730, t747;
fp t750, t751, t752, t758, t764, t777, t779, t786, t791, t793;
fp t798, t802, t803, t805, t806, t808, t809, t811, t813, t815;
fp t817, t819, t821, t823, t825, t828, t830, t833, t835, t838;
fp t841, t843, t846, t849, t853, t866, t875, t877, t880, t883;
fp t884, t886, t889, t895, t897, t900, t902, t905, t907, t909;
fp t911, t912, t914, t924, t930, t936, t946, t948, t950, t954;
fp t956, t957, t960, t963, t966, t971, t974, t978, t980, t985;
fp t987, t988, t993, t994, t999, t1005, t1017, t1022, t1028, t1038;
fp t1043, t1044, t1048, t1051, t1057, t1066, t1068, t1073, t1081, t1088;
fp t1092, t1094, t1104, t1107, t1116, t1120, t1122, t1129, t1153, t1163;
fp t1165, t1187, t1209, t1226, t1252, t1258, t1288, t1292, t1302, t1307;
fp t1310, t1315, t1327, t1344, t1359, t1361, t1368, t1373, t1377, t1383;
fp t1394, t1409, t1418, t1431, t1461, t1464, t1465, t1466, t1472, t1474;
fp t1477, t1478, t1479, t1483, t1492, t1493, t1494, t1497, t1500, t1505;
fp t1507, t1513, t1518, t1526, t1528, t1536, t1540, t1542, t1546, t1548;
fp t1550, t1552, t1556, t1559, t1562, t1582, t1583, t1586, t1590, t1594;
fp t1595, t1598, t1607, t1612, t1615, t1618, t1623, t1626, t1644, t1656;
fp t1657, t1677, t1679, t1686, t1695, t1714, t1730, t1742, t1745, t1746;
fp t1749, t1768, t1774, t1776, t1784, t1791, t1794, t1797, t1800, t1803;
fp t1806, t1818;
      t1 = g_uu_23;
      t2 = 1/r;
      t4 = X_ud_12;
      t5 = PARTIAL_RHO(h);
      t7 = X_ud_22;
      t8 = PARTIAL_SIGMA(h);
      t10 = yy*t2-t4*t5-t7*t8;
      t11 = t1*t10;
      t12 = partial_d_g_uu_313;
      t14 = X_ud_13;
      t16 = X_ud_23;
      t18 = zz*t2-t14*t5-t16*t8;
      t19 = t12*t18;
      t20 = X_ud_11;
      t21 = t19*t20;
      t23 = g_uu_13;
      t24 = t18*t18;
      t25 = t23*t24;
      t26 = partial_d_g_uu_113;
      t29 = t1*t14;
      t30 = g_uu_12;
      t33 = X_ud_21;
      t35 = xx*t2-t20*t5-t33*t8;
      t36 = t30*t35;
      t37 = xx*xx;
      t38 = zz*zz;
      t40 = r*r;
      t42 = 1/t40/r;
      t44 = X_udd_122;
      t46 = X_udd_222;
      t48 = t4*t4;
      t49 = PARTIAL_RHO_RHO(h);
      t51 = t7*t4;
      t52 = PARTIAL_RHO_SIGMA(h);
      t55 = t7*t7;
      t56 = PARTIAL_SIGMA_SIGMA(h);
      t58 = (t37+t38)*t42-t44*t5-t46*t8-t48*t49-2.0*t51*t52-t55*t56;
      t59 = t36*t58;
      t62 = t23*t18;
      t63 = t1*t4;
      t66 = X_udd_113;
      t68 = X_udd_213;
      t72 = t33*t14;
      t74 = t20*t16;
      t78 = -xx*zz*t42-t66*t5-t68*t8-t20*t14*t49-t72*t52-t74*t52-t33*t16*t56;
      t82 = partial_d_g_uu_333;
      t83 = t82*t24;
      t86 = t1*t18;
      t87 = t30*t20;
      t88 = t87*t58;
      t91 = g_uu_11;
      t92 = t91*t35;
      t93 = partial_d_g_uu_122;
      t94 = t93*t10;
      t95 = t94*t4;
      t97 = t35*t35;
      t98 = t23*t97;
      t101 = t23*t35;
      t104 = t23*t20;
      t107 = t91*t20;
      t108 = partial_d_g_uu_133;
      t109 = t108*t24;
      t112 = t1*t1;
      t113 = t112*t24;
      t115 = t30*t30;
      t119 = X_udd_112;
      t121 = X_udd_212;
      t125 = t33*t4;
      t127 = t20*t7;
      t131 = -xx*yy*t42-t119*t5-t121*t8-t20*t4*t49-t125*t52-t127*t52-t33*t7*t56
;
      t132 = t35*t131;
      t135 = t10*t10;
      t136 = t1*t135;
      t137 = g_uu_22;
      t138 = X_udd_123;
      t142 = t11*t21+t25*t26*t20+2.0*t29*t59+2.0*t62*t63*t78+RATIONAL(1.0,2.0)*
t63*t83+2.0*t86*t88+t92*t95+t98*t12*t14+2.0*t101*t21+RATIONAL(1.0,2.0)*t104*t83
+RATIONAL(1.0,2.0)*t107*t109+t113*t44+2.0*t115*t4*t132+2.0*t136*t137*t138;
      t143 = t30*t4;
      t146 = t137*t135;
      t147 = t30*t119;
      t150 = g_uu_33;
      t151 = t150*t18;
      t152 = partial_d_g_uu_323;
      t154 = t152*t10*t14;
      t157 = yy*yy;
      t160 = X_udd_133;
      t162 = X_udd_233;
      t164 = t14*t14;
      t166 = t16*t14;
      t169 = t16*t16;
      t171 = (t37+t157)*t42-t160*t5-t162*t8-t164*t49-2.0*t166*t52-t169*t56;
      t175 = t115*t10;
      t182 = t23*t131;
      t186 = partial_d_g_uu_223;
      t188 = t186*t10*t14;
      t194 = t23*t23;
      t196 = t35*t78;
      t199 = t194*t18;
      t206 = t150*t14;
      t207 = t101*t171;
      t210 = t101*t160;
      t213 = RATIONAL(1.0,2.0)*t143*t109+2.0*t146*t147+2.0*t151*t154+2.0*t151*
t63*t171+2.0*t175*t20*t131+RATIONAL(3.0,2.0)*t25*t108*t14+4.0*t86*t182*t14+2.0*
t86*t188+2.0*t175*t35*t119+2.0*t194*t14*t196+2.0*t199*t20*t78+2.0*t199*t35*t66+
2.0*t206*t207+2.0*t151*t210;
      t215 = t26*t35;
      t216 = t215*t14;
      t219 = t91*t97;
      t220 = partial_d_g_uu_111;
      t221 = t220*t20;
      t224 = partial_d_g_uu_123;
      t226 = t224*t10*t14;
      t229 = t104*t171;
      t235 = t137*t10;
      t236 = t107*t131;
      t239 = partial_d_g_uu_312;
      t240 = t239*t4;
      t242 = partial_d_g_uu_213;
      t243 = t242*t35;
      t244 = t243*t14;
      t247 = t150*t150;
      t248 = t247*t24;
      t255 = X_udd_223;
      t259 = t7*t14;
      t261 = t4*t16;
      t265 = -yy*zz*t42-t138*t5-t255*t8-t4*t14*t49-t259*t52-t261*t52-t7*t16*t56
;
      t266 = t1*t265;
      t270 = partial_d_g_uu_212;
      t271 = t270*t20;
      t273 = partial_d_g_uu_322;
      t274 = t273*t10;
      t275 = t274*t4;
      t277 = t1*t24;
      t280 = 2.0*t62*t216+RATIONAL(3.0,2.0)*t219*t221+2.0*t62*t226+2.0*t151*
t229+2.0*t62*t11*t66+2.0*t235*t236+t98*t240+2.0*t86*t244+t248*t160+t136*t239*
t20+4.0*t151*t266*t14+t146*t271+t101*t275+t277*t186*t4;
      t281 = t137*t4;
      t282 = partial_d_g_uu_211;
      t283 = t282*t97;
      t286 = t36*t138;
      t289 = t30*t10;
      t290 = partial_d_g_uu_112;
      t292 = t290*t35*t4;
      t295 = partial_d_g_uu_311;
      t296 = t295*t97;
      t299 = t23*t78;
      t303 = t92*t119;
      t309 = t247*t18;
      t313 = t87*t265;
      t319 = t150*t24;
      t320 = t82*t14;
      t323 = t30*t135;
      t327 = t112*t18;
      t333 = X_udd_111;
      t335 = X_udd_211;
      t337 = t20*t20;
      t339 = t33*t20;
      t342 = t33*t33;
      t344 = (t157+t38)*t42-t333*t5-t335*t8-t337*t49-2.0*t339*t52-t342*t56;
      t345 = t107*t344;
      t348 = RATIONAL(1.0,2.0)*t281*t283+2.0*t11*t286+2.0*t289*t292+RATIONAL(
1.0,2.0)*t63*t296+4.0*t151*t299*t14+2.0*t235*t303+RATIONAL(3.0,2.0)*t136*t273*
t4+2.0*t309*t171*t14+2.0*t11*t313+2.0*t98*t30*t138+RATIONAL(3.0,2.0)*t319*t320+
RATIONAL(3.0,2.0)*t323*t93*t4+2.0*t327*t58*t14+2.0*t289*t345;
      t351 = t273*t135;
      t354 = t92*t333;
      t359 = partial_d_g_uu_222;
      t360 = t359*t10;
      t361 = t360*t4;
      t363 = t359*t4;
      t366 = partial_d_g_uu_233;
      t370 = t23*t14;
      t371 = t11*t78;
      t374 = t152*t18;
      t375 = t374*t4;
      t378 = t92*t344;
      t381 = t92*t78;
      t384 = t242*t18;
      t385 = t384*t35;
      t387 = t36*t265;
      t390 = t30*t97;
      t396 = RATIONAL(1.0,2.0)*t206*t351+2.0*t289*t354+RATIONAL(1.0,2.0)*t104*
t351+t36*t361+RATIONAL(3.0,2.0)*t146*t363+RATIONAL(3.0,2.0)*t277*t366*t14+2.0*
t370*t371+2.0*t11*t375+2.0*t143*t378+2.0*t63*t381+t281*t385+2.0*t63*t387+
RATIONAL(3.0,2.0)*t390*t282*t20+t323*t290*t20;
      t398 = t186*t18;
      t399 = t398*t4;
      t403 = t270*t10;
      t404 = t403*t35;
      t406 = t107*t78;
      t416 = t290*t10;
      t417 = t416*t20;
      t419 = t186*t14;
      t423 = t1*t138;
      t426 = t23*t66;
      t429 = t220*t97;
      t432 = t62*t292+2.0*t235*t399+t235*t244+t29*t404+2.0*t11*t406+2.0*t390*
t91*t119+t289*t216+2.0*t289*t104*t78+t62*t417+t146*t419+t136*t152*t14+2.0*t319*
t423+2.0*t319*t426+RATIONAL(1.0,2.0)*t143*t429;
      t440 = t36*t131;
      t443 = t416*t35;
      t445 = t36*t44;
      t453 = t270*t4;
      t454 = t453*t35;
      t458 = t194*t97;
      t460 = t115*t135;
      t462 = t115*t97;
      t464 = t91*t91;
      t465 = t464*t97;
      t467 = 2.0*t277*t23*t119+RATIONAL(3.0,2.0)*t98*t295*t20+2.0*t370*t440+
t370*t443+2.0*t86*t445+2.0*t281*t59+RATIONAL(1.0,2.0)*t206*t296+t92*t226+t86*
t454+2.0*t235*t445+t458*t160+t460*t333+t462*t44+t465*t333;
      t468 = t384*t20;
      t470 = t92*t66;
      t473 = t101*t78;
      t479 = t403*t20;
      t484 = t282*t35;
      t485 = t484*t20;
      t487 = t220*t35;
      t488 = t487*t20;
      t491 = t12*t35*t14;
      t494 = t239*t10;
      t495 = t494*t35;
      t497 = t494*t20;
      t499 = t101*t265;
      t503 = t235*t468+2.0*t11*t470+2.0*t143*t473+2.0*t289*t101*t66+t86*t479+
2.0*t235*t88+t86*t361+t235*t485+t289*t488+2.0*t151*t491+t206*t495+t151*t497+2.0
*t281*t499+t62*t488;
      t510 = t101*t138;
      t514 = t112*t10;
      t518 = t104*t265;
      t521 = t295*t35;
      t522 = t521*t20;
      t537 = t62*t95+4.0*t36*t236+2.0*t235*t510+t86*t485+2.0*t514*t171*t4+2.0*
t235*t518+t11*t522+2.0*t86*t303+2.0*t63*t207+2.0*t36*t479+2.0*t11*t210+2.0*t11*
t229+2.0*t92*t417+t151*t522;
      t538 = t240*t35;
      t540 = t289*t131;
      t557 = t289*t78;
      t560 = t137*t265;
      t561 = t560*t4;
      t566 = t464*t35;
      t570 = t93*t135;
      t573 = t359*t135;
      t579 = t151*t538+2.0*t29*t540+4.0*t101*t406+2.0*t136*t30*t66+2.0*t98*t91*
t66+2.0*t62*t36*t119+2.0*t62*t87*t131+2.0*t206*t557+4.0*t11*t561+t323*t224*t14+
2.0*t566*t344*t20+RATIONAL(1.0,2.0)*t370*t570+RATIONAL(1.0,2.0)*t29*t573+2.0*
t175*t344*t4;
      t581 = t30*t78;
      t582 = t581*t4;
      t589 = t143*t131;
      t596 = t374*t10;
      t606 = t115*t35;
      t611 = t10*t265;
      t619 = 4.0*t11*t582+2.0*t86*t289*t119+t151*t275+2.0*t86*t589+4.0*t101*
t313+4.0*t235*t589+t104*t596+2.0*t62*t289*t333+2.0*t151*t289*t66+2.0*t151*t582+
2.0*t606*t58*t20+2.0*t112*t14*t611+2.0*t327*t4*t265+2.0*t101*t497;
      t620 = t26*t14;
      t622 = t92*t131;
      t626 = t289*t344;
      t630 = t224*t18;
      t631 = t630*t4;
      t636 = t194*t35;
      t645 = t630*t10;
      t647 = t194*t24;
      t649 = t26*t18;
      t650 = t649*t20;
      t654 = t219*t620+2.0*t29*t622+t101*t375+2.0*t370*t626+t101*t154+t92*t631+
2.0*t327*t10*t138+2.0*t636*t171*t20+2.0*t62*t143*t344+2.0*t235*t454+t107*t645+
t647*t333+t289*t650+2.0*t86*t236;
      t659 = t108*t18;
      t660 = t659*t14;
      t662 = t366*t18;
      t663 = t662*t14;
      t672 = t398*t10;
      t675 = t82*t18;
      t676 = t675*t14;
      t685 = 2.0*t289*t631+t92*t660+t235*t663+2.0*t281*t622+2.0*t11*t538+t36*
t188+RATIONAL(1.0,2.0)*t370*t429+t87*t672+t36*t399+t101*t676+t289*t660+t11*t676
+2.0*t62*t354+2.0*t62*t281*t131;
      t686 = t290*t4;
      t688 = t19*t35;
      t697 = t235*t58;
      t715 = t219*t686+t63*t688+t36*t663+2.0*t370*t378+RATIONAL(1.0,2.0)*t29*
t283+2.0*t206*t381+2.0*t29*t697+2.0*t62*t345+2.0*t86*t281*t58+2.0*t36*t468+2.0*
t86*t235*t44+t390*t453+2.0*t151*t313+2.0*t151*t561;
      t719 = t366*t24;
      t722 = t235*t131;
      t725 = t12*t20;
      t730 = t235*t265;
      t747 = t152*t4;
      t750 = 2.0*t151*t470+RATIONAL(1.0,2.0)*t281*t719+2.0*t370*t722+t319*t725+
2.0*t62*t235*t119+2.0*t206*t730+2.0*t206*t387+2.0*t151*t11*t160+2.0*t92*t650+
t390*t242*t14+2.0*t199*t344*t14+2.0*t151*t286+t319*t747+t11*t491;
      t751 = t137*t137;
      t752 = t751*t10;
      t758 = t649*t35;
      t764 = t11*t171;
      t777 = t112*t135;
      t779 = t751*t135;
      t786 = 2.0*t752*t58*t4+RATIONAL(1.0,2.0)*t87*t719+t143*t758+2.0*t86*t518+
t277*t242*t20+2.0*t206*t764+2.0*t151*t406+t25*t224*t4+2.0*t29*t499+2.0*t86*t510
+RATIONAL(1.0,2.0)*t107*t570+t777*t160+t779*t44+2.0*t151*t235*t138+RATIONAL(1.0
,2.0)*t87*t573;
      t791 = pow(HD,1.0*RATIONAL(1.0,2.0));
      t793 = 1/t791/HD;
      t798 = -t221-t271-t725-t686-t363-t747-t620-t419-t320-t91*t333-2.0*t147
-2.0*t426;
      t802 = partial_d_ln_sqrt_g_1;
      t803 = t91*t802;
      t805 = partial_d_ln_sqrt_g_2;
      t806 = t30*t805;
      t808 = partial_d_ln_sqrt_g_3;
      t809 = t23*t808;
      t811 = t30*t802;
      t813 = t137*t805;
      t815 = t1*t808;
      t817 = t23*t802;
      t819 = t1*t805;
      t821 = t150*t808;
      t823 = -t137*t44-2.0*t423-t150*t160-t803*t20-t806*t20-t809*t20-t811*t4-
t813*t4-t815*t4-t817*t14-t819*t14-t821*t14;
      t825 = 1/t791;
      t828 = K_uu_11*t35;
      t830 = K_uu_12;
      t833 = t830*t10;
      t835 = K_uu_13;
      t838 = t835*t18;
      t841 = K_uu_22*t10;
      t843 = K_uu_23;
      t846 = t843*t18;
      t849 = K_uu_33*t18;
      t853 = 1/HD;
      t866 = HD*HD;
      t875 = RATIONAL(3.0,2.0)*HA/t791/t866+RATIONAL(1.0,2.0)*HB*t793+HC/t866;
      partial_H_wrt_partial_d_h_1 = (t142+t213+t280+t348+t396+t432+t467+t503+
t537+t579+t619+t654+t685+t715+t750+t786)*t793+(t798+t823)*t825+(-2.0*t828*t20
-2.0*t830*t4*t35-2.0*t833*t20-2.0*t835*t14*t35-2.0*t838*t20-2.0*t841*t4-2.0*
t843*t14*t10-2.0*t846*t4-2.0*t849*t14)*t853-(-2.0*t92*t20-2.0*t143*t35-2.0*t289
*t20-2.0*t370*t35-2.0*t62*t20-2.0*t235*t4-2.0*t29*t10-2.0*t86*t4-2.0*t151*t14)*
t875;
      t877 = t215*t16;
      t880 = t23*t16;
      t883 = t290*t7;
      t884 = t883*t35;
      t886 = t220*t33;
      t889 = t30*t33;
      t895 = t662*t16;
      t897 = t243*t16;
      t900 = t675*t16;
      t902 = t150*t16;
      t905 = t270*t33;
      t907 = t239*t7;
      t909 = t659*t16;
      t911 = t224*t16;
      t912 = t911*t10;
      t914 = 2.0*t62*t877+2.0*t880*t440+t62*t884+RATIONAL(3.0,2.0)*t219*t886+
RATIONAL(1.0,2.0)*t889*t573+2.0*t327*t58*t16+t36*t895+2.0*t86*t897+t11*t900+2.0
*t902*t207+t146*t905+t98*t907+t92*t909+t92*t912;
      t924 = t82*t16;
      t930 = t359*t7;
      t936 = t23*t33;
      t946 = t416*t33;
      t948 = t26*t16;
      t950 = 2.0*t289*t884+t101*t900+RATIONAL(3.0,2.0)*t25*t108*t16+RATIONAL(
3.0,2.0)*t277*t366*t16+RATIONAL(3.0,2.0)*t319*t924+RATIONAL(3.0,2.0)*t323*t93*
t7+RATIONAL(3.0,2.0)*t146*t930+RATIONAL(3.0,2.0)*t136*t273*t7+RATIONAL(1.0,2.0)
*t936*t351+2.0*t880*t378+2.0*t309*t171*t16+t390*t242*t16+t62*t946+t219*t948;
      t954 = t630*t7;
      t956 = t91*t33;
      t957 = t956*t344;
      t960 = t936*t265;
      t963 = t36*t255;
      t966 = t889*t265;
      t971 = t92*t121;
      t974 = t1*t16;
      t978 = t487*t33;
      t980 = t403*t33;
      t985 = t1*t7;
      t987 = t136*t239*t33+t92*t954+2.0*t62*t957+2.0*t86*t960+2.0*t151*t963+2.0
*t151*t966+2.0*t92*t946+2.0*t235*t971+2.0*t974*t499+t974*t404+t62*t978+2.0*t36*
t980+2.0*t289*t957+t985*t688;
      t988 = t30*t7;
      t993 = t12*t16;
      t994 = t993*t35;
      t999 = t92*t335;
      t1005 = t956*t131;
      t1017 = t936*t171;
      t1022 = 2.0*t988*t378+2.0*t11*t966+t11*t994+2.0*t985*t387+t880*t443+2.0*
t289*t999+2.0*t62*t889*t131+2.0*t235*t1005+2.0*t902*t387+2.0*t11*t963+2.0*t151*
t985*t171+2.0*t86*t971+2.0*t151*t1017+2.0*t86*t1005;
      t1028 = t137*t7;
      t1038 = t956*t78;
      t1043 = t186*t16;
      t1044 = t1043*t10;
      t1048 = t36*t46;
      t1051 = t889*t58;
      t1057 = 2.0*t902*t381+t219*t883+2.0*t1028*t499+t86*t980+2.0*t151*t11*t162
+2.0*t289*t101*t68+2.0*t151*t1038+2.0*t985*t381+t36*t1044+2.0*t1028*t622+2.0*
t235*t1048+2.0*t235*t1051+2.0*t62*t912+t889*t672;
      t1066 = t398*t7;
      t1068 = t92*t68;
      t1073 = t101*t162;
      t1081 = t581*t7;
      t1088 = 2.0*t289*t954+t289*t909+2.0*t988*t473+2.0*t327*t10*t255+t36*t1066
+2.0*t11*t1068+2.0*t11*t1038+2.0*t11*t1073+2.0*t11*t1017+2.0*t985*t207+t235*
t895+4.0*t11*t1081+2.0*t151*t1068+2.0*t974*t540;
      t1092 = t494*t33;
      t1094 = t560*t7;
      t1104 = t988*t131;
      t1107 = t101*t255;
      t1116 = t384*t33;
      t1120 = t649*t33;
      t1122 = 2.0*t1028*t59+t151*t1092+4.0*t11*t1094+2.0*t235*t960+2.0*t289*
t936*t78+2.0*t151*t1073+2.0*t86*t1104+2.0*t235*t1107+2.0*t86*t289*t121+4.0*t151
*t299*t16+t235*t1116+t235*t897+t1028*t385+t289*t1120;
      t1129 = t484*t33;
      t1153 = 2.0*t151*t994+RATIONAL(1.0,2.0)*t956*t109+2.0*t880*t626+t86*t1129
+t235*t1129+2.0*t902*t557+2.0*t752*t58*t7+RATIONAL(1.0,2.0)*t936*t83+RATIONAL(
1.0,2.0)*t889*t719+2.0*t62*t289*t335+2.0*t62*t988*t344+t289*t978+2.0*t62*t999+
2.0*t62*t11*t68;
      t1163 = t521*t33;
      t1165 = t907*t35;
      t1187 = 2.0*t136*t30*t68+4.0*t151*t266*t16+t11*t1163+t151*t1165+RATIONAL(
1.0,2.0)*t974*t573+RATIONAL(1.0,2.0)*t880*t570+t151*t1163+2.0*t86*t1051+2.0*
t606*t58*t33+2.0*t974*t59+t956*t645+2.0*t902*t730+2.0*t390*t91*t121+2.0*t86*
t1048;
      t1209 = t30*t121;
      t1226 = 2.0*t62*t985*t78+2.0*t194*t16*t196+2.0*t199*t33*t78+2.0*t199*t35*
t68+2.0*t112*t16*t611+2.0*t327*t7*t265+2.0*t98*t30*t255+2.0*t146*t1209+RATIONAL
(1.0,2.0)*t902*t351+RATIONAL(1.0,2.0)*t988*t109+RATIONAL(1.0,2.0)*t1028*t719+
2.0*t974*t697+2.0*t98*t91*t68+2.0*t151*t289*t68;
      t1252 = t152*t7;
      t1258 = 2.0*t62*t235*t121+2.0*t566*t344*t33+2.0*t880*t722+t777*t162+t146*
t1043+2.0*t636*t171*t33+2.0*t86*t235*t46+2.0*t86*t1028*t58+t779*t46+RATIONAL(
1.0,2.0)*t985*t83+RATIONAL(1.0,2.0)*t956*t570+t319*t1252+t277*t186*t7+t25*t224*
t7;
      t1288 = t152*t16;
      t1292 = 2.0*t136*t137*t255+t323*t911+2.0*t151*t1081+2.0*t151*t235*t255+
4.0*t86*t182*t16+2.0*t880*t371+t458*t162+RATIONAL(1.0,2.0)*t880*t429+2.0*t62*
t1028*t131+2.0*t115*t7*t132+2.0*t175*t33*t131+2.0*t175*t35*t121+t136*t1288+
RATIONAL(1.0,2.0)*t974*t283;
      t1302 = t12*t33;
      t1307 = t23*t68;
      t1310 = t1*t255;
      t1315 = t374*t7;
      t1327 = RATIONAL(1.0,2.0)*t902*t296+t390*t270*t7+2.0*t199*t344*t16+t319*
t1302+2.0*t277*t23*t121+2.0*t319*t1307+2.0*t319*t1310+RATIONAL(1.0,2.0)*t988*
t429+2.0*t11*t1315+2.0*t902*t764+RATIONAL(1.0,2.0)*t1028*t283+RATIONAL(1.0,2.0)
*t985*t296+t98*t993+t25*t26*t33;
      t1344 = t19*t33;
      t1359 = t274*t7;
      t1361 = t277*t242*t33+t323*t290*t33+2.0*t514*t171*t7+2.0*t175*t344*t7+
RATIONAL(3.0,2.0)*t98*t295*t33+RATIONAL(3.0,2.0)*t390*t282*t33+t11*t1344+2.0*
t974*t622+2.0*t62*t36*t121+2.0*t86*t1107+2.0*t151*t1094+2.0*t235*t1066+4.0*t101
*t1038+t151*t1359;
      t1368 = t1288*t10;
      t1373 = t360*t7;
      t1377 = t94*t7;
      t1383 = t936*t596+t289*t877+t460*t335+t462*t46+t465*t335+t101*t1368+t101*
t1315+2.0*t101*t1344+t86*t1373+4.0*t36*t1005+t62*t1377+t902*t495+t988*t758+4.0*
t101*t966;
      t1394 = t270*t35*t7;
      t1409 = 4.0*t235*t1104+t92*t1377+2.0*t151*t1368+2.0*t86*t1044+2.0*t101*
t1092+2.0*t235*t1394+2.0*t11*t1165+2.0*t92*t1120+2.0*t36*t1116+t36*t1373+t101*
t1359+t248*t162+t113*t46+t647*t335+t86*t1394;
      t1418 = -t886-t905-t1302-t883-t930-t1252-t948-t1043-t924-t91*t335-2.0*
t1209-2.0*t1307;
      t1431 = -t137*t46-2.0*t1310-t150*t162-t803*t33-t806*t33-t809*t33-t811*t7-
t813*t7-t815*t7-t817*t16-t819*t16-t821*t16;
      partial_H_wrt_partial_d_h_2 = (t914+t950+t987+t1022+t1057+t1088+t1122+
t1153+t1187+t1226+t1258+t1292+t1327+t1361+t1383+t1409)*t793+(t1418+t1431)*t825+
(-2.0*t828*t33-2.0*t830*t7*t35-2.0*t833*t33-2.0*t835*t16*t35-2.0*t838*t33-2.0*
t841*t7-2.0*t843*t16*t10-2.0*t846*t7-2.0*t849*t16)*t853-(-2.0*t92*t33-2.0*t988*
t35-2.0*t289*t33-2.0*t880*t35-2.0*t62*t33-2.0*t235*t7-2.0*t974*t10-2.0*t86*t7
-2.0*t151*t16)*t875;
      t1461 = t36*t48;
      t1464 = t11*t91;
      t1465 = t35*t20;
      t1466 = t1465*t14;
      t1472 = t11*t30;
      t1474 = t35*t4*t14;
      t1477 = t151*t30;
      t1478 = t10*t20;
      t1479 = t1478*t14;
      t1483 = t101*t164;
      t1492 = 2.0*t235*t1461+2.0*t1464*t1466+2.0*t62*t289*t337+2.0*t1472*t1474+
2.0*t1477*t1479+t779*t48+2.0*t11*t1483+t462*t48+t460*t337+2.0*t277*t104*t4+t458
*t164;
      t1493 = t86*t30;
      t1494 = t1478*t4;
      t1497 = t235*t23;
      t1500 = t63*t14;
      t1505 = t151*t137;
      t1507 = t10*t4*t14;
      t1513 = t104*t14;
      t1518 = 2.0*t1493*t1494+2.0*t1497*t1474+2.0*t319*t1500+t465*t337+t647*
t337+2.0*t1505*t1507+t248*t164+t113*t48+t777*t164+2.0*t319*t1513+2.0*t199*t1466
;
      t1526 = t289*t23;
      t1528 = t62*t137;
      t1536 = t62*t1;
      t1540 = t136*t87*t14+t86*t235*t48+t136*t281*t14+t1526*t1466+t1528*t1494+
t151*t11*t164+t86*t1461+t327*t1507+t98*t107*t14+t1536*t1479+t390*t107*t4;
      t1542 = t87*t4;
      t1546 = t1465*t4;
      t1548 = t92*t337;
      t1550 = t62*t30;
      t1552 = t86*t91;
      t1556 = t151*t91;
      t1559 = t235*t91;
      t1562 = t146*t1542+t98*t143*t14+t175*t1546+t62*t1548+t1550*t1546+t1552*
t1546+t151*t1483+t289*t1548+t1556*t1466+t1536*t1474+t1559*t1546+t1477*t1474;
      partial_H_wrt_partial_dd_h_11 = (t1492+t1518+2.0*t1540+2.0*t1562)*t793+(-
t91*t337-2.0*t1542-2.0*t1513-t137*t48-2.0*t1500-t150*t164)*t825;
      t1582 = -t72-t74;
      t1583 = t92*t1582;
      t1586 = -t125-t127;
      t1590 = t92*t1586;
      t1594 = t35*t33;
      t1595 = t1594*t20;
      t1598 = -t259-t261;
      t1607 = t30*t1586;
      t1612 = 2.0*t777*t166+4.0*t151*t1*t10*t16*t14-2.0*t151*t1583-2.0*t175*t35
*t1586-2.0*t86*t1590+4.0*t62*t91*t1595-2.0*t98*t30*t1598-2.0*t390*t91*t1586-2.0
*t235*t1590-2.0*t146*t1607+2.0*t113*t51;
      t1615 = t35*t16*t14;
      t1618 = t36*t1598;
      t1623 = t23*t1582;
      t1626 = t101*t1598;
      t1644 = 4.0*t151*t23*t1615-2.0*t151*t1618+2.0*t460*t339-2.0*t319*t1623
-2.0*t86*t1626+2.0*t462*t51+2.0*t458*t166-2.0*t98*t91*t1582+4.0*t289*t91*t1595
-2.0*t11*t1583-2.0*t199*t35*t1582;
      t1656 = t35*t7;
      t1657 = t1656*t4;
      t1677 = -2.0*t11*t1618+2.0*t647*t339-2.0*t136*t137*t1598-2.0*t235*t1626+
4.0*t235*t30*t1657+4.0*t11*t23*t1615-2.0*t136*t30*t1582-2.0*t62*t235*t1586-2.0*
t277*t23*t1586-2.0*t151*t289*t1582+2.0*t465*t339;
      t1679 = t10*t7;
      t1686 = t10*t33;
      t1695 = t1*t1598;
      t1714 = 4.0*t86*t137*t1679*t4-2.0*t86*t289*t1586+4.0*t1550*t1686*t20+2.0*
t248*t166-2.0*t151*t235*t1598-2.0*t319*t1695-2.0*t327*t10*t1598-2.0*t289*t101*
t1582-2.0*t62*t11*t1582+4.0*t1493*t1657+2.0*t779*t51-2.0*t62*t36*t1586;
      partial_H_wrt_partial_dd_h_12 = (t1612+t1644+t1677+t1714)*t793+(-2.0*t956
*t20+2.0*t1607+2.0*t1623-2.0*t1028*t4+2.0*t1695-2.0*t902*t14)*t825;
      t1730 = t1686*t7;
      t1742 = t1656*t16;
      t1745 = t458*t169+t248*t169+t465*t342+t113*t55+t462*t55+t460*t342+2.0*
t1528*t1730+2.0*t62*t289*t342+2.0*t136*t1028*t16+2.0*t136*t889*t16+2.0*t1497*
t1742;
      t1746 = t889*t7;
      t1749 = t1594*t16;
      t1768 = t101*t169;
      t1774 = 2.0*t146*t1746+2.0*t1526*t1749+2.0*t390*t956*t7+2.0*t199*t1749+
2.0*t1493*t1730+t647*t342+2.0*t98*t988*t16+2.0*t98*t956*t16+2.0*t1464*t1749+2.0
*t11*t1768+2.0*t277*t936*t7;
      t1776 = t36*t55;
      t1784 = t1594*t7;
      t1791 = t1686*t16;
      t1794 = t1679*t16;
      t1797 = t985*t16;
      t1800 = t92*t342;
      t1803 = 2.0*t86*t1776+2.0*t151*t11*t169+2.0*t1556*t1749+2.0*t175*t1784+
2.0*t235*t1776+t779*t55+t777*t169+2.0*t1477*t1791+2.0*t327*t1794+2.0*t319*t1797
+2.0*t62*t1800;
      t1806 = t936*t16;
      t1818 = t86*t235*t55+t319*t1806+t1505*t1794+t1550*t1784+t1536*t1791+t151*
t1768+t1559*t1784+t289*t1800+t1472*t1742+t1477*t1742+t1552*t1784+t1536*t1742;
      partial_H_wrt_partial_dd_h_22 = (t1745+t1774+t1803+2.0*t1818)*t793+(-t91*
t342-2.0*t1746-2.0*t1806-t137*t55-2.0*t1797-t150*t169)*t825;