diff options
author | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2002-09-16 18:09:06 +0000 |
---|---|---|
committer | jthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5> | 2002-09-16 18:09:06 +0000 |
commit | 93ba52d99144d33f182d723bdd411d527af7b042 (patch) | |
tree | e4ba341d96daace5915b9cfba0296c2de69a250a /src/gr.cg | |
parent | b732b6e17361c6099502b10c0cdf7a9315cf8435 (diff) |
add files I forgot to checkin to cvs before :)
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@751 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'src/gr.cg')
-rw-r--r-- | src/gr.cg/extrinsic_curvature_trace_raise.c | 48 | ||||
-rw-r--r-- | src/gr.cg/horizon_Jacobian.c | 626 | ||||
-rw-r--r-- | src/gr.cg/horizon_function.c | 184 | ||||
-rw-r--r-- | src/gr.cg/inverse_metric.c | 25 | ||||
-rw-r--r-- | src/gr.cg/inverse_metric_gradient.c | 91 | ||||
-rw-r--r-- | src/gr.cg/metric_det_gradient.c | 24 |
6 files changed, 998 insertions, 0 deletions
diff --git a/src/gr.cg/extrinsic_curvature_trace_raise.c b/src/gr.cg/extrinsic_curvature_trace_raise.c new file mode 100644 index 0000000..b85e441 --- /dev/null +++ b/src/gr.cg/extrinsic_curvature_trace_raise.c @@ -0,0 +1,48 @@ +/* + * inputs = {K_dd, g_uu} + * outputs = {K_uu, K} + * cost = 37*assignments+44*additions+84*multiplications + */ +fp t1, t2, t4, t5, t8, t9, t12, t13, t15, t16; +fp t19, t20, t22, t24, t27, t30, t32, t35, t42, t44; +fp t46, t48, t50, t60, t62, t69, t71, t74, t85, t95; + t1 = g_uu_11; + t2 = K_dd_11; + t4 = g_uu_12; + t5 = K_dd_12; + t8 = g_uu_13; + t9 = K_dd_13; + t12 = g_uu_22; + t13 = K_dd_22; + t15 = g_uu_23; + t16 = K_dd_23; + t19 = g_uu_33; + t20 = K_dd_33; + K = t1*t2+2.0*t4*t5+2.0*t8*t9+t12*t13+2.0*t15*t16+t19*t20; + t22 = t1*t1; + t24 = t4*t1; + t27 = t8*t1; + t30 = t4*t4; + t32 = t8*t4; + t35 = t8*t8; + K_uu_11 = t22*t2+2.0*t24*t5+2.0*t27*t9+t30*t13+2.0*t32*t16+t35*t20; + t42 = t4*t12; + t44 = t8*t12; + t46 = t1*t15; + t48 = t15*t4; + t50 = t8*t15; + K_uu_12 = t24*t2+t30*t5+t32*t9+t1*t12*t5+t42*t13+t44*t16+t46*t9+t48*t16+ +t50*t20; + t60 = t4*t19; + t62 = t8*t19; + K_uu_13 = t27*t2+t32*t5+t35*t9+t46*t5+t48*t13+t50*t16+t1*t19*t9+t60*t16+ +t62*t20; + t69 = t12*t12; + t71 = t15*t12; + t74 = t15*t15; + K_uu_22 = t30*t2+2.0*t42*t5+2.0*t48*t9+t69*t13+2.0*t71*t16+t74*t20; + t85 = t15*t19; + K_uu_23 = t32*t2+t44*t5+t50*t9+t48*t5+t71*t13+t74*t16+t60*t9+t12*t19*t16+ +t85*t20; + t95 = t19*t19; + K_uu_33 = t35*t2+2.0*t50*t5+2.0*t62*t9+t74*t13+2.0*t85*t16+t95*t20; diff --git a/src/gr.cg/horizon_Jacobian.c b/src/gr.cg/horizon_Jacobian.c new file mode 100644 index 0000000..3d540e1 --- /dev/null +++ b/src/gr.cg/horizon_Jacobian.c @@ -0,0 +1,626 @@ +/* + * 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+1708*multiplications+729*additions + */ +fp t1, t2, t4, t5, t7, t8, t10, t11, t12, t14; +fp t16, t18, t19, t20, t21, t24, t26, t28, t30, t31; +fp t32, t33, t34, t36, t38, t41, t43, t44, t46, t47; +fp t50, t51, t53, t54, t57, t58, t61, t63, t67, t69; +fp t73, t74, t77, t78, t79, t81, t82, t83, t84, t87; +fp t89, t91, t93, t96, t98, t102, t103, t104, t105, t107; +fp t108, t109, t112, t113, t116, t117, t118, t122, t123, t124; +fp t130, t134, t136, t138, t141, t143, t147, t148, t149, t151; +fp t154, t155, t156, t159, t160, t161, t164, t168, t172, t174; +fp t178, t179, t182, t183, t184, t187, t188, t189, t192, t193; +fp t194, t197, t198, t201, t203, t207, t208, t209, t212, t217; +fp t218, t221, t223, t224, t226, t227, t228, t232, t236, t240; +fp t241, t245, t246, t247, t250, t251, t253, t255, t256, t259; +fp t260, t264, t268, t269, t272, t274, t275, t277, t280, t281; +fp t287, t288, t292, t293, t297, t300, t304, t305, t306, t310; +fp t311, t314, t317, t324, t327, t329, t330, t338, t340, t343; +fp t344, t345, t349, t350, t359, t363, t365, t369, t373, t376; +fp t383, t386, t393, t397, t398, t401, t404, t405, t407, t411; +fp t415, t419, t423, t429, t430, t433, t435, t438, t441, t442; +fp t445, t448, t449, t454, t457, t460, t465, t470, t472, t473; +fp t476, t479, t488, t489, t491, t501, t502, t504, t506, t507; +fp t508, t510, t514, t519, t520, t522, t523, t530, t531, t535; +fp t539, t540, t543, t551, t552, t553, t559, t562, t570, t572; +fp t573, t575, t578, t582, t584, t589, t602, t612, t615, t616; +fp t617, t621, t624, t639, t640, t642, t647, t654, t665, t687; +fp t688, t692, t695, t697, t699, t707, t710, t714, t717, t722; +fp t724, t726, t745, t752, t754, t764, t773, t784, t789, t791; +fp t796, t800, t801, t803, t804, t806, t807, t809, t811, t813; +fp t815, t817, t819, t821, t823, t826, t828, t831, t833, t836; +fp t839, t841, t844, t847, t851, t864, t873, t876, t879, t882; +fp t884, t889, t893, t901, t908, t914, t918, t921, t922, t925; +fp t935, t943, t947, t953, t955, t958, t968, t972, t981, t985; +fp t988, t989, t992, t1002, t1008, t1017, t1020, t1028, t1047, t1050; +fp t1062, t1065, t1067, t1070, t1078, t1081, t1082, t1084, t1086, t1088; +fp t1095, t1098, t1100, t1106, t1136, t1137, t1138, t1148, t1165, t1170; +fp t1197, t1205, t1221, t1225, t1227, t1234, t1240, t1253, t1255, t1257; +fp t1260, t1266, t1269, t1271, t1295, t1302, t1308, t1311, t1322, t1326; +fp t1331, t1337, t1345, t1352, t1354, t1360, t1362, t1373, t1375, t1386; +fp t1394, t1410, t1419, t1432, t1466, t1469, t1472, t1473, t1474, t1477; +fp t1478, t1485, t1486, t1487, t1490, t1491, t1495, t1498, t1501, t1502; +fp t1511, t1517, t1520, t1523, t1526, t1529, t1532, t1534, t1539, t1557; +fp t1560, t1573, t1576, t1582, t1585, t1597, t1598, t1603, t1606, t1607; +fp t1609, t1616, t1619, t1621, t1633, t1634, t1639, t1651, t1654, t1659; +fp t1660, t1663, t1669, t1680, t1692, t1726, t1737, t1741, t1744, t1747; +fp t1756, t1762, t1763, t1766, t1769, t1772, t1778, t1793, t1795, t1800; +fp t1818, t1842; + t1 = g_uu_12; + 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 = g_uu_11; + t14 = X_ud_11; + t16 = X_ud_21; + t18 = xx*t2-t14*t5-t16*t8; + t19 = t12*t18; + t20 = X_udd_111; + t21 = t19*t20; + t24 = g_uu_13; + t26 = X_ud_13; + t28 = X_ud_23; + t30 = zz*t2-t26*t5-t28*t8; + t31 = t24*t30; + t32 = t12*t14; + t33 = yy*yy; + t34 = zz*zz; + t36 = r*r; + t38 = 1/t36/r; + t41 = X_udd_211; + t43 = t14*t14; + t44 = PARTIAL_RHO_RHO(h); + t46 = t16*t14; + t47 = PARTIAL_RHO_SIGMA(h); + t50 = t16*t16; + t51 = PARTIAL_SIGMA_SIGMA(h); + t53 = (t33+t34)*t38-t20*t5-t41*t8-t43*t44-2.0*t46*t47-t50*t51; + t54 = t32*t53; + t57 = g_uu_23; + t58 = t57*t10; + t61 = X_udd_113; + t63 = X_udd_213; + t67 = t16*t26; + t69 = t14*t28; + t73 = -xx*zz*t38-t61*t5-t63*t8-t14*t26*t44-t67*t47-t69*t47-t16*t28*t51; + t74 = t32*t73; + t77 = t1*t1; + t78 = t10*t10; + t79 = t77*t78; + t81 = t57*t30; + t82 = g_uu_22; + t83 = t82*t4; + t84 = xx*xx; + t87 = X_udd_122; + t89 = X_udd_222; + t91 = t4*t4; + t93 = t7*t4; + t96 = t7*t7; + t98 = (t84+t34)*t38-t87*t5-t89*t8-t91*t44-2.0*t93*t47-t96*t51; + t102 = t1*t18; + t103 = partial_d_g_uu_223; + t104 = t103*t26; + t105 = t104*t10; + t107 = t82*t10; + t108 = X_udd_112; + t109 = t19*t108; + t112 = t57*t26; + t113 = t107*t98; + t116 = g_uu_33; + t117 = t116*t30; + t118 = X_udd_133; + t122 = t1*t4; + t123 = t24*t18; + t124 = t123*t73; + t130 = t57*t4; + t134 = X_udd_233; + t136 = t26*t26; + t138 = t28*t26; + t141 = t28*t28; + t143 = (t84+t33)*t38-t118*t5-t134*t8-t136*t44-2.0*t138*t47-t141*t51; + t147 = partial_d_g_uu_112; + t148 = t147*t4; + t149 = t148*t18; + t151 = t19*t53; + t154 = 2.0*t11*t21+2.0*t31*t54+2.0*t58*t74+t79*t20+2.0*t81*t83*t98+t102* +t105+2.0*t107*t109+2.0*t112*t113+2.0*t117*t58*t118+2.0*t122*t124+2.0*t81*t107* +t87+2.0*t117*t130*t143+t31*t149+2.0*t122*t151; + t155 = X_udd_123; + t156 = t102*t155; + t159 = partial_d_g_uu_213; + t160 = t159*t30; + t161 = t160*t14; + t164 = t1*t14; + t168 = X_udd_223; + t172 = t7*t26; + t174 = t4*t28; + t178 = -yy*zz*t38-t155*t5-t168*t8-t4*t26*t44-t172*t47-t174*t47-t7*t28*t51 +; + t179 = t164*t178; + t182 = partial_d_g_uu_113; + t183 = t182*t30; + t184 = t183*t14; + t187 = partial_d_g_uu_133; + t188 = t187*t30; + t189 = t188*t26; + t192 = partial_d_g_uu_313; + t193 = t192*t30; + t194 = t193*t14; + t197 = partial_d_g_uu_222; + t198 = t197*t78; + t201 = partial_d_g_uu_312; + t203 = t201*t18*t4; + t207 = partial_d_g_uu_233; + t208 = t30*t30; + t209 = t207*t208; + t212 = t187*t208; + t217 = t116*t26; + t218 = t107*t178; + t221 = 2.0*t58*t156+2.0*t102*t161+2.0*t58*t179+2.0*t19*t184+t19*t189+t11* +t184+2.0*t123*t194+RATIONAL(1.0,2.0)*t112*t198+2.0*t58*t203+t11*t189+RATIONAL( +1.0,2.0)*t83*t209+RATIONAL(1.0,2.0)*t32*t212+RATIONAL(1.0,2.0)*t122*t212+2.0* +t217*t218; + t223 = t201*t10; + t224 = t223*t18; + t226 = partial_d_g_uu_212; + t227 = t226*t10; + t228 = t227*t14; + t232 = t77*t10; + t236 = t77*t18; + t240 = t24*t24; + t241 = t240*t18; + t245 = t24*t26; + t246 = partial_d_g_uu_122; + t247 = t246*t78; + t250 = t192*t26; + t251 = t250*t18; + t253 = t82*t78; + t255 = t1*t78; + t256 = partial_d_g_uu_123; + t259 = t57*t57; + t260 = t259*t10; + t264 = t57*t208; + t268 = t147*t10; + t269 = t268*t14; + t272 = t223*t14; + t274 = t217*t224+2.0*t102*t228+t117*t203+2.0*t232*t53*t4+2.0*t236*t98*t14 ++2.0*t241*t143*t14+RATIONAL(1.0,2.0)*t245*t247+t58*t251+t253*t104+t255*t256*t26 ++2.0*t260*t143*t4+2.0*t264*t24*t108+2.0*t19*t269+t117*t272; + t275 = partial_d_g_uu_323; + t277 = t275*t10*t26; + t280 = t182*t26; + t281 = t280*t18; + t287 = t12*t12; + t288 = t287*t18; + t292 = t82*t178; + t293 = t292*t4; + t297 = t10*t178; + t300 = t259*t30; + t304 = partial_d_g_uu_111; + t305 = t304*t18; + t306 = t305*t14; + t310 = t226*t4; + t311 = t310*t18; + t314 = t159*t18*t26; + t317 = t240*t30; + t324 = 2.0*t117*t277+t11*t281+RATIONAL(3.0,2.0)*t255*t246*t4+t81*t228+2.0 +*t288*t53*t14+4.0*t58*t293+2.0*t259*t26*t297+2.0*t300*t10*t155+t11*t306+2.0* +t117*t293+t81*t311+2.0*t81*t314+2.0*t317*t18*t61+2.0*t11*t123*t61; + t327 = t259*t78; + t329 = partial_d_g_uu_322; + t330 = t329*t78; + t338 = t183*t18; + t340 = t123*t155; + t343 = t18*t18; + t344 = t24*t343; + t345 = partial_d_g_uu_311; + t349 = partial_d_g_uu_333; + t350 = t349*t208; + t359 = X_udd_212; + t363 = t16*t4; + t365 = t14*t7; + t369 = -xx*yy*t38-t108*t5-t359*t8-t14*t4*t44-t363*t47-t365*t47-t16*t7*t51 +; + t373 = t123*t178; + t376 = t1*t343; + t383 = t18*t73; + t386 = t327*t118+RATIONAL(1.0,2.0)*t217*t330+2.0*t317*t14*t73+2.0*t117* +t251+t122*t338+2.0*t107*t340+RATIONAL(3.0,2.0)*t344*t345*t14+RATIONAL(1.0,2.0)* +t130*t350+2.0*t117*t107*t155+2.0*t232*t14*t369+2.0*t83*t373+2.0*t376*t12*t108+ +2.0*t31*t281+2.0*t240*t26*t383; + t393 = t24*t14; + t397 = t116*t208; + t398 = t24*t61; + t401 = t19*t61; + t404 = t349*t30; + t405 = t404*t26; + t407 = t24*t369; + t411 = t123*t143; + t415 = t24*t73; + t419 = t107*t369; + t423 = t18*t369; + t429 = t256*t10; + t430 = t429*t26; + t433 = 2.0*t232*t18*t108+RATIONAL(3.0,2.0)*t264*t207*t26+2.0*t11*t393*t73 ++2.0*t397*t398+2.0*t117*t401+t123*t405+4.0*t81*t407*t26+2.0*t130*t411+t58*t194+ +4.0*t117*t415*t26+2.0*t245*t419+2.0*t77*t4*t423+2.0*t300*t4*t178+2.0*t31*t430; + t435 = t393*t143; + t438 = t11*t369; + t441 = t1*t369; + t442 = t441*t4; + t445 = t393*t178; + t448 = t207*t30; + t449 = t448*t26; + t454 = t123*t118; + t457 = t19*t73; + t460 = t11*t73; + t465 = t32*t369; + t470 = t227*t18; + t472 = 2.0*t58*t435+2.0*t112*t438+4.0*t107*t442+2.0*t107*t445+t107*t449+ +t376*t310+4.0*t123*t74+2.0*t58*t454+2.0*t217*t457+2.0*t217*t460+2.0*t130*t457+ +2.0*t81*t465+2.0*t58*t401+t112*t470; + t473 = t11*t53; + t476 = t164*t98; + t479 = t77*t343; + t488 = t345*t18; + t489 = t488*t14; + t491 = t19*t369; + t501 = t103*t30; + t502 = t501*t4; + t504 = t501*t10; + t506 = partial_d_g_uu_211; + t507 = t506*t18; + t508 = t507*t14; + t510 = 2.0*t245*t473+2.0*t107*t476+t479*t87+2.0*t117*t74+2.0*t117*t435+ +2.0*t117*t11*t61+t117*t489+2.0*t112*t491+2.0*t217*t411+2.0*t31*t83*t369+2.0*t11 +*t54+t102*t502+t164*t504+t107*t508; + t514 = t24*t208; + t519 = t275*t30; + t520 = t519*t10; + t522 = t256*t30; + t523 = t522*t4; + t530 = t82*t82; + t531 = t530*t10; + t535 = t519*t4; + t539 = t1*t73; + t540 = t539*t4; + t543 = t57*t78; + t551 = t514*t182*t14+2.0*t107*t465+t393*t520+t19*t523+2.0*t83*t491+t58* +t489+2.0*t117*t454+2.0*t531*t98*t4+t123*t535+2.0*t123*t272+4.0*t58*t540+2.0* +t543*t1*t61+2.0*t81*t11*t108+t123*t277; + t552 = t329*t10; + t553 = t552*t4; + t559 = t1*t108; + t562 = t275*t4; + t570 = t287*t343; + t572 = t197*t10; + t573 = t572*t4; + t575 = t522*t10; + t578 = t12*t343; + t582 = t123*t553+2.0*t107*t311+2.0*t81*t445+2.0*t253*t559+t397*t562+ +RATIONAL(1.0,2.0)*t393*t350+t264*t103*t4+t514*t256*t4+t570*t20+t102*t573+t32* +t575+t344*t250+t578*t280+t543*t201*t14; + t584 = t226*t14; + t589 = t193*t18; + t602 = t192*t14; + t612 = t57*t155; + t615 = t253*t584+2.0*t317*t53*t26+t130*t589+t19*t430+t376*t159*t26+ +RATIONAL(1.0,2.0)*t393*t330+t255*t147*t14+RATIONAL(1.0,2.0)*t32*t247+t264*t159* +t14+t397*t602+RATIONAL(1.0,2.0)*t164*t209+RATIONAL(3.0,2.0)*t376*t506*t14+2.0* +t344*t1*t155+2.0*t397*t612; + t616 = t116*t116; + t617 = t616*t30; + t621 = t506*t343; + t624 = t345*t343; + t639 = t246*t10; + t640 = t639*t4; + t642 = t197*t4; + t647 = t304*t343; + t654 = 2.0*t617*t143*t26+RATIONAL(1.0,2.0)*t112*t621+RATIONAL(1.0,2.0)* +t217*t624+2.0*t31*t122*t53+RATIONAL(3.0,2.0)*t514*t187*t26+t543*t275*t26+2.0* +t344*t12*t61+t117*t553+t31*t640+RATIONAL(3.0,2.0)*t253*t642+RATIONAL(1.0,2.0)* +t130*t624+RATIONAL(1.0,2.0)*t245*t647+t344*t201*t4+RATIONAL(1.0,2.0)*t122*t647; + t665 = t349*t26; + t687 = RATIONAL(1.0,2.0)*t83*t621+RATIONAL(3.0,2.0)*t543*t329*t4+2.0*t31* +t11*t20+RATIONAL(3.0,2.0)*t397*t665+t81*t573+2.0*t107*t502+2.0*t543*t82*t155+ +2.0*t11*t523+2.0*t31*t21+2.0*t31*t164*t369+t31*t269+2.0*t11*t149+t578*t148+ +RATIONAL(1.0,2.0)*t164*t198; + t688 = t58*t73; + t692 = t102*t98; + t695 = t530*t78; + t697 = t240*t343; + t699 = t102*t369; + t707 = t102*t87; + t710 = t57*t178; + t714 = t102*t178; + t717 = t268*t18; + t722 = 2.0*t245*t688+t81*t508+2.0*t83*t692+t695*t87+t697*t118+2.0*t245* +t699+2.0*t81*t109+2.0*t31*t102*t108+2.0*t107*t707+4.0*t117*t710*t26+2.0*t130* +t714+t245*t717+t31*t306+2.0*t117*t540; + t724 = t616*t208; + t726 = t58*t143; + t745 = t259*t208; + t752 = t240*t208; + t754 = t724*t118+2.0*t217*t726+2.0*t300*t98*t26+2.0*t31*t130*t73+t58*t405 ++4.0*t102*t465+2.0*t81*t442+t19*t640+2.0*t81*t707+2.0*t58*t535+t745*t87+2.0*t31 +*t58*t61+2.0*t81*t105+t752*t20; + t764 = t304*t14; + t773 = t160*t18; + t784 = 2.0*t112*t692+2.0*t245*t151+2.0*t117*t156+2.0*t117*t179+t107*t161+ +RATIONAL(3.0,2.0)*t578*t764+4.0*t123*t179+2.0*t217*t714+2.0*t81*t340+t83*t773+ +t102*t449+2.0*t31*t107*t108+2.0*t112*t373+t107*t314+2.0*t81*t476; + t789 = pow(HD,1.0*RATIONAL(1.0,2.0)); + t791 = 1/t789/HD; + t796 = -t764-t584-t602-t148-t642-t562-t280-t104-t665-t12*t20-2.0*t559-2.0 +*t398; + t800 = partial_d_ln_sqrt_g_1; + t801 = t12*t800; + t803 = partial_d_ln_sqrt_g_2; + t804 = t1*t803; + t806 = partial_d_ln_sqrt_g_3; + t807 = t24*t806; + t809 = t1*t800; + t811 = t82*t803; + t813 = t57*t806; + t815 = t24*t800; + t817 = t57*t803; + t819 = t116*t806; + t821 = -t82*t87-2.0*t612-t116*t118-t801*t14-t804*t14-t807*t14-t809*t4- +t811*t4-t813*t4-t815*t26-t817*t26-t819*t26; + t823 = 1/t789; + t826 = K_uu_11*t18; + t828 = K_uu_12; + t831 = t828*t10; + t833 = K_uu_13; + t836 = t833*t30; + t839 = K_uu_22*t10; + t841 = K_uu_23; + t844 = t841*t30; + t847 = K_uu_33*t30; + t851 = 1/HD; + t864 = HD*HD; + t873 = RATIONAL(3.0,2.0)*HA/t789/t864+RATIONAL(1.0,2.0)*HB*t791+HC/t864; + partial_H_wrt_partial_d_h_1 = (t154+t221+t274+t324+t386+t433+t472+t510+ +t551+t582+t615+t654+t687+t722+t754+t784)*t791+(t796+t821)*t823+(-2.0*t826*t14 +-2.0*t828*t4*t18-2.0*t831*t14-2.0*t833*t26*t18-2.0*t836*t14-2.0*t839*t4-2.0* +t841*t26*t10-2.0*t844*t4-2.0*t847*t26)*t851-(-2.0*t19*t14-2.0*t122*t18-2.0*t11* +t14-2.0*t245*t18-2.0*t31*t14-2.0*t107*t4-2.0*t112*t10-2.0*t81*t4-2.0*t117*t26)* +t873; + t876 = t103*t10*t28; + t879 = t519*t7; + t882 = t188*t28; + t884 = t429*t28; + t889 = t12*t369*t16; + t893 = t24*t28; + t901 = t57*t7; + t908 = t116*t28; + t914 = 2.0*t81*t876+2.0*t58*t879+t19*t882+2.0*t31*t884+t11*t882+4.0*t102* +t889+t724*t134+2.0*t893*t688+2.0*t317*t53*t28+RATIONAL(1.0,2.0)*t893*t247+2.0* +t31*t901*t73+RATIONAL(3.0,2.0)*t264*t207*t28+2.0*t908*t714+RATIONAL(3.0,2.0)* +t255*t246*t7; + t918 = t304*t16; + t921 = t24*t16; + t922 = t921*t178; + t925 = t57*t28; + t935 = t349*t28; + t943 = t275*t7; + t947 = t1*t16; + t953 = 2.0*t288*t53*t16+RATIONAL(3.0,2.0)*t578*t918+2.0*t81*t922+2.0*t925 +*t113+RATIONAL(1.0,2.0)*t908*t330+2.0*t925*t373+4.0*t81*t407*t28+RATIONAL(3.0, +2.0)*t397*t935+RATIONAL(3.0,2.0)*t543*t329*t7+t514*t256*t7+t397*t943+RATIONAL( +1.0,2.0)*t921*t350+RATIONAL(1.0,2.0)*t947*t209+2.0*t31*t58*t63; + t955 = t102*t168; + t958 = t947*t178; + t968 = t82*t7; + t972 = t123*t168; + t981 = t103*t28; + t985 = t19*t41; + t988 = t12*t16; + t989 = t988*t53; + t992 = 2.0*t117*t955+2.0*t117*t958+2.0*t893*t151+2.0*t81*t107*t89+2.0* +t908*t411+2.0*t81*t968*t98+2.0*t81*t972+t255*t256*t28+RATIONAL(1.0,2.0)*t925* +t198+2.0*t925*t692+t253*t981+2.0*t893*t419+2.0*t31*t985+2.0*t31*t989; + t1002 = t102*t89; + t1008 = t947*t98; + t1017 = t197*t7; + t1020 = t292*t7; + t1028 = 2.0*t11*t123*t63+2.0*t543*t82*t168+2.0*t31*t107*t359+2.0*t81* +t1002+2.0*t31*t968*t369+2.0*t81*t1008+2.0*t260*t143*t7+4.0*t117*t415*t28+ +RATIONAL(3.0,2.0)*t253*t1017+4.0*t58*t1020+2.0*t908*t218+t570*t41+t327*t134+ +t695*t89; + t1047 = t123*t134; + t1050 = t921*t143; + t1062 = t697*t134+t79*t41+RATIONAL(3.0,2.0)*t344*t345*t16+2.0*t107*t972+ +2.0*t107*t922+2.0*t117*t1020+2.0*t968*t373+RATIONAL(3.0,2.0)*t376*t506*t16+2.0* +t58*t1047+2.0*t58*t1050+2.0*t117*t107*t168+t893*t717+2.0*t968*t692+2.0*t531*t98 +*t7; + t1065 = t268*t16; + t1067 = t19*t63; + t1070 = t988*t73; + t1078 = t1*t359; + t1081 = t147*t7; + t1082 = t1081*t18; + t1084 = t552*t7; + t1086 = t639*t7; + t1088 = t19*t359; + t1095 = t501*t7; + t1098 = 2.0*t901*t411+t31*t1065+2.0*t117*t1067+2.0*t117*t1070+2.0*t543*t1 +*t63+2.0*t908*t457+2.0*t253*t1078+t31*t1082+t117*t1084+t31*t1086+2.0*t81*t1088+ +2.0*t81*t889+2.0*t925*t491+2.0*t107*t1095; + t1100 = t522*t7; + t1106 = t572*t7; + t1136 = 2.0*t11*t1100+2.0*t77*t7*t423+t81*t1106+2.0*t31*t102*t359+2.0* +t232*t16*t369+2.0*t31*t947*t369+2.0*t107*t1008+2.0*t893*t699+2.0*t107*t1002+2.0 +*t901*t714+2.0*t240*t28*t383+2.0*t117*t58*t134+2.0*t117*t901*t143+2.0*t908*t726 +; + t1137 = t275*t28; + t1138 = t1137*t10; + t1148 = t1*t7; + t1165 = t441*t7; + t1170 = t123*t1138+2.0*t11*t921*t73+t921*t520+2.0*t58*t958+2.0*t58*t955+ +2.0*t1148*t124+2.0*t317*t18*t63+2.0*t317*t16*t73+t123*t879+2.0*t300*t7*t178+2.0 +*t1148*t151+2.0*t117*t1047+4.0*t107*t1165+2.0*t117*t1050; + t1197 = t192*t16; + t1205 = 2.0*t259*t28*t297+2.0*t300*t10*t168+2.0*t968*t491+2.0*t11*t985+ +2.0*t11*t989+2.0*t901*t457+2.0*t264*t24*t359+2.0*t107*t1088+2.0*t107*t889+t264* +t159*t16+t397*t1197+RATIONAL(1.0,2.0)*t988*t247+RATIONAL(1.0,2.0)*t947*t198+ +RATIONAL(1.0,2.0)*t921*t330; + t1221 = t226*t16; + t1225 = t182*t28; + t1227 = t159*t28; + t1234 = RATIONAL(1.0,2.0)*t901*t350+RATIONAL(1.0,2.0)*t968*t209+2.0*t344* +t12*t63+2.0*t344*t1*t168+t543*t1137+t264*t103*t7+t255*t147*t16+t253*t1221+t543* +t201*t16+t578*t1225+t376*t1227+t344*t192*t28+t514*t182*t16+t102*t1095; + t1240 = t24*t63; + t1253 = t488*t16; + t1255 = t507*t16; + t1257 = t448*t28; + t1260 = t539*t7; + t1266 = t102*t876+t947*t504+2.0*t58*t1067+2.0*t397*t1240+2.0*t58*t1070+ +RATIONAL(3.0,2.0)*t514*t187*t28+RATIONAL(1.0,2.0)*t988*t212+2.0*t236*t98*t16+ +t58*t1253+t107*t1255+t102*t1257+t19*t1100+4.0*t58*t1260+2.0*t232*t53*t7; + t1269 = t226*t7; + t1271 = t201*t7; + t1295 = t19*t884+t578*t1081+t376*t1269+t344*t1271+RATIONAL(1.0,2.0)*t1148 +*t647+RATIONAL(1.0,2.0)*t968*t621+RATIONAL(1.0,2.0)*t901*t624+RATIONAL(1.0,2.0) +*t893*t647+RATIONAL(1.0,2.0)*t925*t621+RATIONAL(1.0,2.0)*t908*t624+2.0*t617* +t143*t28+2.0*t241*t143*t16+t988*t575+2.0*t376*t12*t359; + t1302 = t305*t16; + t1308 = t182*t18*t28; + t1311 = t193*t16; + t1322 = t223*t16; + t1326 = t227*t16; + t1331 = t117*t1253+t81*t1255+RATIONAL(1.0,2.0)*t1148*t212+t31*t1302+2.0* +t300*t98*t28+2.0*t31*t1308+2.0*t123*t1311+4.0*t117*t710*t28+2.0*t11*t1082+2.0* +t117*t11*t63+2.0*t123*t1322+t11*t1302+2.0*t102*t1326+2.0*t117*t1260; + t1337 = t192*t18*t28; + t1345 = t1269*t18; + t1352 = t1271*t18; + t1354 = t160*t16; + t1360 = 2.0*t19*t1065+2.0*t908*t460+2.0*t117*t1337+t19*t1086+2.0*t31* +t1148*t53+t81*t1326+t81*t1345+t925*t470+t117*t1322+2.0*t232*t18*t359+t117*t1352 ++2.0*t102*t1354+t908*t224+2.0*t893*t473; + t1362 = t183*t16; + t1373 = t1227*t18; + t1375 = t57*t168; + t1386 = 2.0*t19*t1362+2.0*t107*t1345+2.0*t58*t1352+2.0*t925*t438+t901* +t589+t58*t1337+t107*t1373+2.0*t397*t1375+t107*t1354+t968*t773+t479*t89+t745*t89 ++t752*t41+2.0*t31*t11*t41; + t1394 = t404*t28; + t1410 = t123*t1084+t102*t1106+2.0*t81*t1373+4.0*t123*t1070+t107*t1257+t58 +*t1394+2.0*t81*t11*t359+t123*t1394+2.0*t117*t1138+2.0*t81*t1165+t11*t1308+t11* +t1362+t1148*t338+t58*t1311+4.0*t123*t958; + t1419 = -t918-t1221-t1197-t1081-t1017-t943-t1225-t981-t935-t12*t41-2.0* +t1078-2.0*t1240; + t1432 = -t82*t89-2.0*t1375-t116*t134-t801*t16-t804*t16-t807*t16-t809*t7- +t811*t7-t813*t7-t815*t28-t817*t28-t819*t28; + partial_H_wrt_partial_d_h_2 = (t914+t953+t992+t1028+t1062+t1098+t1136+ +t1170+t1205+t1234+t1266+t1295+t1331+t1360+t1386+t1410)*t791+(t1419+t1432)*t823+ +(-2.0*t826*t16-2.0*t828*t7*t18-2.0*t831*t16-2.0*t833*t28*t18-2.0*t836*t16-2.0* +t839*t7-2.0*t841*t28*t10-2.0*t844*t7-2.0*t847*t28)*t851-(-2.0*t19*t16-2.0*t1148 +*t18-2.0*t11*t16-2.0*t893*t18-2.0*t31*t16-2.0*t107*t7-2.0*t925*t10-2.0*t81*t7 +-2.0*t117*t28)*t873; + t1466 = t10*t4*t26; + t1469 = t164*t4; + t1472 = t107*t12; + t1473 = t18*t14; + t1474 = t1473*t4; + t1477 = t117*t12; + t1478 = t1473*t26; + t1485 = t117*t1; + t1486 = t10*t14; + t1487 = t1486*t26; + t1490 = t81*t1; + t1491 = t1486*t4; + t1495 = t18*t4*t26; + t1498 = t81*t24; + t1501 = 2.0*t543*t164*t26+2.0*t300*t1466+2.0*t253*t1469+2.0*t1472*t1474+ +2.0*t1477*t1478+t327*t136+2.0*t344*t122*t26+2.0*t1485*t1487+2.0*t1490*t1491+2.0 +*t1485*t1495+2.0*t1498*t1495; + t1502 = t102*t91; + t1511 = t123*t136; + t1517 = t19*t43; + t1520 = t31*t82; + t1523 = t81*t12; + t1526 = t31*t1; + t1529 = t117*t82; + t1532 = 2.0*t81*t1502+2.0*t31*t11*t43+t479*t91+2.0*t1498*t1487+2.0*t117* +t1511+2.0*t81*t107*t91+2.0*t31*t1517+2.0*t1520*t1491+2.0*t1523*t1474+2.0*t1526* +t1474+2.0*t1529*t1466; + t1534 = t58*t12; + t1539 = t11*t24; + t1557 = t58*t1; + t1560 = 2.0*t1534*t1478+t79*t43+t697*t136+2.0*t1539*t1478+2.0*t232*t1474+ +2.0*t11*t1517+2.0*t107*t1502+2.0*t117*t58*t136+2.0*t543*t83*t26+2.0*t264*t393* +t4+2.0*t1557*t1495; + t1573 = t393*t26; + t1576 = t130*t26; + t1582 = t107*t24; + t1585 = 2.0*t317*t1478+t695*t91+2.0*t344*t32*t26+2.0*t376*t32*t4+2.0*t58* +t1511+t570*t43+2.0*t397*t1573+2.0*t397*t1576+t752*t43+t724*t136+t745*t91+2.0* +t1582*t1495; + partial_H_wrt_partial_dd_h_11 = (t1501+t1532+t1560+t1585)*t791+(-t12*t43 +-2.0*t1469-2.0*t1573-t82*t91-2.0*t1576-t116*t136)*t823; + t1597 = -t363-t365; + t1598 = t1*t1597; + t1603 = -t67-t69; + t1606 = -t172-t174; + t1607 = t57*t1606; + t1609 = t19*t1597; + t1616 = t102*t1606; + t1619 = -t253*t1598+t745*t93-t264*t24*t1597-t543*t1*t1603-t397*t1607-t81* +t1609-t317*t18*t1603+t570*t46-t300*t10*t1606-t117*t1616+t479*t93; + t1621 = t123*t1606; + t1633 = t18*t16; + t1634 = t1633*t14; + t1639 = t24*t1603; + t1651 = t18*t28*t26; + t1654 = -2.0*t107*t1621-2.0*t376*t12*t1597-2.0*t344*t1*t1606+2.0*t724* +t138+4.0*t31*t12*t1634+2.0*t752*t46-2.0*t397*t1639+2.0*t79*t46+2.0*t697*t138+ +4.0*t11*t12*t1634+4.0*t58*t24*t1651; + t1659 = t18*t7; + t1660 = t1659*t4; + t1663 = t19*t1603; + t1669 = t10*t16; + t1680 = t10*t7; + t1692 = -2.0*t232*t18*t1597+4.0*t1490*t1660-2.0*t58*t1663+4.0*t107*t1* +t1660+4.0*t1526*t1669*t14-2.0*t117*t11*t1603-2.0*t344*t12*t1603+4.0*t81*t82* +t1680*t4-2.0*t31*t58*t1603+2.0*t327*t138-2.0*t81*t11*t1597; + t1726 = -2.0*t117*t107*t1606+2.0*t695*t93-2.0*t58*t1616-2.0*t31*t107* +t1597-2.0*t31*t102*t1597-2.0*t543*t82*t1606+4.0*t117*t57*t10*t28*t26-2.0*t107* +t1609-2.0*t11*t123*t1603-2.0*t117*t1663-2.0*t81*t1621+4.0*t117*t24*t1651; + partial_H_wrt_partial_dd_h_12 = (2.0*t1619+t1654+t1692+t1726)*t791+(-2.0* +t988*t14+2.0*t1598+2.0*t1639-2.0*t968*t4+2.0*t1607-2.0*t908*t26)*t823; + t1737 = t123*t141; + t1741 = t1659*t28; + t1744 = t1633*t7; + t1747 = t1680*t28; + t1756 = t19*t50; + t1762 = t79*t50+2.0*t117*t1737+t724*t141+2.0*t1498*t1741+2.0*t1472*t1744+ +2.0*t300*t1747+2.0*t232*t1744+2.0*t543*t947*t28+t697*t141+2.0*t11*t1756+2.0*t81 +*t107*t96; + t1763 = t947*t7; + t1766 = t102*t96; + t1769 = t1633*t28; + t1772 = t921*t28; + t1778 = t901*t28; + t1793 = 2.0*t253*t1763+2.0*t107*t1766+2.0*t1534*t1769+2.0*t397*t1772+2.0* +t264*t921*t7+2.0*t397*t1778+t695*t96+2.0*t317*t1769+2.0*t344*t988*t28+2.0*t376* +t988*t7+2.0*t344*t1148*t28; + t1795 = t1669*t7; + t1800 = t1669*t28; + t1818 = 2.0*t1520*t1795+2.0*t1526*t1744+2.0*t1485*t1800+2.0*t1490*t1795+ +2.0*t1498*t1800+2.0*t1529*t1747+2.0*t117*t58*t141+2.0*t1485*t1741+t479*t96+2.0* +t58*t1737+t745*t96; + t1842 = 2.0*t1523*t1744+2.0*t31*t11*t50+2.0*t1477*t1769+2.0*t543*t968*t28 ++2.0*t1539*t1769+2.0*t31*t1756+2.0*t1582*t1741+2.0*t1557*t1741+t752*t50+t570* +t50+2.0*t81*t1766+t327*t141; + partial_H_wrt_partial_dd_h_22 = (t1762+t1793+t1818+t1842)*t791+(-t12*t50 +-2.0*t1763-2.0*t1772-t82*t96-2.0*t1778-t116*t141)*t823; diff --git a/src/gr.cg/horizon_function.c b/src/gr.cg/horizon_function.c new file mode 100644 index 0000000..c31778c --- /dev/null +++ b/src/gr.cg/horizon_function.c @@ -0,0 +1,184 @@ +/* + * inputs = {r, partial_d_ln_sqrt_g, partial_d_g_uu, X_ud, X_udd, g_uu, K_uu, h, HA, HB, HC, HD, K} + * outputs = {H, HA, HB, HC, HD} + * cost = 136*assignments+7*divisions+7*functions+402*multiplications+176*additions + */ +fp t1, t2, t4, t5, t7, t8, t10, t11, t12, t14; +fp t16, t18, t19, t21, t23, t25, t28, t29, t30, t32; +fp t33, t35, t37, t43, t44, t47, t50, t51, t53, t55; +fp t56, t57, t58, t61, t62, t63, t64, t65, t67, t69; +fp t72, t73, t76, t78, t85, t90, t92, t94, t95, t96; +fp t99, t100, t101, t102, t105, t106, t107, t111, t114, t115; +fp t117, t118, t133, t134, t137, t138, t141, t142, t145, t146; +fp t149, t150, t158, t163, t165, t169, t170, t173, t174, t179; +fp t194, t198, t199, t204, t220, t227, t234, t237, t239, t242; +fp t247, t250, t254, t261, t262, t265, t267, t270, t273, t276; +fp t279, t292, t295, t296, t299, t306, t307, t312, t315, t318; +fp t320, t323, t333, t342, t343, t346, t349, t350, t361, t362; +fp t368, t378, t394, t413, t431, t440, t444, t447, t450, t465; +fp t490; + t1 = g_uu_13; + t2 = 1/r; + t4 = X_ud_13; + t5 = PARTIAL_RHO(h); + t7 = X_ud_23; + t8 = PARTIAL_SIGMA(h); + t10 = zz*t2-t4*t5-t7*t8; + t11 = t1*t10; + t12 = partial_d_g_uu_112; + t14 = X_ud_12; + t16 = X_ud_22; + t18 = yy*t2-t14*t5-t16*t8; + t19 = t12*t18; + t21 = X_ud_11; + t23 = X_ud_21; + t25 = xx*t2-t21*t5-t23*t8; + t28 = g_uu_23; + t29 = t28*t28; + t30 = t10*t10; + t32 = xx*xx; + t33 = zz*zz; + t35 = r*r; + t37 = 1/t35/r; + t43 = t14*t14; + t44 = PARTIAL_RHO_RHO(h); + t47 = PARTIAL_RHO_SIGMA(h); + t50 = t16*t16; + t51 = PARTIAL_SIGMA_SIGMA(h); + t53 = (t32+t33)*t37-X_udd_122*t5-X_udd_222*t8-t43*t44-2.0*t16*t14*t47-t50 +*t51; + t55 = g_uu_33; + t56 = t55*t10; + t57 = partial_d_g_uu_312; + t58 = t57*t18; + t61 = g_uu_22; + t62 = t18*t18; + t63 = t61*t62; + t64 = partial_d_g_uu_212; + t65 = t64*t25; + t67 = t30*t10; + t69 = partial_d_g_uu_233; + t72 = t28*t10; + t73 = t64*t18; + t76 = t55*t55; + t78 = yy*yy; + t85 = t4*t4; + t90 = t7*t7; + t92 = (t32+t78)*t37-X_udd_133*t5-X_udd_233*t8-t85*t44-2.0*t7*t4*t47-t90* +t51; + t94 = t61*t18; + t95 = partial_d_g_uu_213; + t96 = t95*t10; + t99 = g_uu_12; + t100 = t99*t18; + t101 = partial_d_g_uu_113; + t102 = t101*t10; + t105 = t28*t18; + t106 = partial_d_g_uu_313; + t107 = t106*t10; + t111 = partial_d_g_uu_133; + t114 = t25*t25; + t115 = t1*t114; + t117 = -t11*t19*t25-t29*t30*t53-t56*t58*t25-t63*t65+RATIONAL(-1.0,2.0)* +t28*t67*t69-t72*t73*t25-t76*t30*t92-t94*t96*t25-t100*t102*t25-t105*t107*t25+ +RATIONAL(-1.0,2.0)*t1*t67*t111-t115*t107; + t118 = t55*t30; + t133 = -yy*zz*t37-X_udd_123*t5-X_udd_223*t8-t14*t4*t44-t16*t4*t47-t14*t7* +t47-t16*t7*t51; + t134 = t28*t133; + t137 = partial_d_g_uu_111; + t138 = t137*t114; + t141 = partial_d_g_uu_311; + t142 = t141*t114; + t145 = partial_d_g_uu_211; + t146 = t145*t114; + t149 = g_uu_11; + t150 = t149*t149; + t158 = t21*t21; + t163 = t23*t23; + t165 = (t78+t33)*t37-X_udd_111*t5-X_udd_211*t8-t158*t44-2.0*t23*t21*t47- +t163*t51; + t169 = t99*t25; + t170 = t69*t30; + t173 = t149*t25; + t174 = t111*t30; + t179 = t99*t114; + t194 = -xx*yy*t37-X_udd_112*t5-X_udd_212*t8-t21*t14*t44-t23*t14*t47-t21* +t16*t47-t23*t16*t51; + t198 = partial_d_g_uu_333; + t199 = t198*t30; + t204 = -2.0*t118*t134+RATIONAL(-1.0,2.0)*t11*t138+RATIONAL(-1.0,2.0)*t105 +*t142+RATIONAL(-1.0,2.0)*t94*t146-t150*t114*t165+RATIONAL(-1.0,2.0)*t100*t138+ +RATIONAL(-1.0,2.0)*t169*t170+RATIONAL(-1.0,2.0)*t173*t174+RATIONAL(-1.0,2.0)* +t100*t174-2.0*t179*t149*t194+RATIONAL(-1.0,2.0)*t105*t199+RATIONAL(-1.0,2.0)* +t94*t170; + t220 = -xx*zz*t37-X_udd_113*t5-X_udd_213*t8-t21*t4*t44-t23*t4*t47-t21*t7* +t47-t23*t7*t51; + t227 = t99*t194; + t234 = t99*t99; + t237 = t149*t114; + t239 = t28*t30; + t242 = t1*t1; + t247 = t61*t61; + t250 = t28*t62; + t254 = -2.0*t115*t149*t220-2.0*t115*t99*t133-2.0*t63*t227+RATIONAL(-1.0, +2.0)*t72*t146+RATIONAL(-1.0,2.0)*t56*t142-t234*t114*t53-t237*t19-t239*t95*t25- +t242*t114*t92-t234*t62*t165-t247*t62*t53-2.0*t250*t99*t220; + t261 = partial_d_g_uu_222; + t262 = t261*t62; + t265 = t106*t25; + t267 = t1*t30; + t270 = t169*t53; + t273 = t173*t220; + t276 = t173*t165; + t279 = t114*t25; + t292 = -2.0*t234*t18*t25*t194-t179*t96-t237*t102+RATIONAL(-1.0,2.0)*t169* +t262-t118*t265-t267*t101*t25-2.0*t94*t270-2.0*t105*t273-2.0*t100*t276+RATIONAL( +-1.0,2.0)*t149*t279*t137+RATIONAL(-1.0,2.0)*t99*t279*t145+RATIONAL(-1.0,2.0)* +t55*t67*t198+RATIONAL(-1.0,2.0)*t1*t279*t141; + t295 = partial_d_g_uu_122; + t296 = t295*t62; + t299 = t173*t194; + t306 = t1*t25; + t307 = t306*t133; + t312 = t169*t133; + t315 = t306*t92; + t318 = t62*t18; + t320 = partial_d_g_uu_322; + t323 = t320*t62; + t333 = RATIONAL(-1.0,2.0)*t173*t296-2.0*t94*t299-2.0*t242*t10*t25*t220 +-2.0*t72*t307-t250*t57*t25-2.0*t56*t312-2.0*t56*t315+RATIONAL(-1.0,2.0)*t28* +t318*t320+RATIONAL(-1.0,2.0)*t306*t323+RATIONAL(-1.0,2.0)*t99*t318*t295-2.0*t72 +*t270+RATIONAL(-1.0,2.0)*t56*t323; + t342 = partial_d_g_uu_223; + t343 = t342*t10; + t346 = t99*t62; + t349 = partial_d_g_uu_323; + t350 = t349*t10; + t361 = partial_d_g_uu_123; + t362 = t361*t10; + t368 = -t179*t73+RATIONAL(-1.0,2.0)*t61*t318*t261-2.0*t56*t273-2.0*t72* +t299-t169*t343*t18-t346*t12*t25-t306*t350*t18-2.0*t11*t276-2.0*t94*t307-2.0* +t105*t315+RATIONAL(-1.0,2.0)*t11*t296-t346*t362-2.0*t29*t10*t18*t133; + t378 = t349*t18; + t394 = RATIONAL(-1.0,2.0)*t72*t262-t63*t343-t250*t350-t239*t342*t18-t267* +t361*t18-t118*t378+RATIONAL(-1.0,2.0)*t306*t199-t173*t362*t18-2.0*t105*t312-2.0 +*t100*t306*t220-2.0*t250*t61*t133-t29*t62*t92; + t413 = t1*t220; + t431 = -2.0*t56*t94*t133-2.0*t56*t105*t92-t115*t58-2.0*t11*t169*t194-t242 +*t30*t165-2.0*t11*t100*t165-2.0*t239*t1*t194-2.0*t118*t413-2.0*t11*t105*t220 +-2.0*t72*t94*t53-2.0*t11*t94*t194-2.0*t56*t100*t220-2.0*t72*t100*t194; + HA = t117+t204+t254+t292+t333+t368+t394+t431; + t440 = t137*t25+t65+t265+t19+t261*t18+t378+t102+t343+t198*t10+t149*t165+ +2.0*t227+2.0*t413; + t444 = partial_d_ln_sqrt_g_1; + t447 = partial_d_ln_sqrt_g_2; + t450 = partial_d_ln_sqrt_g_3; + t465 = t61*t53+2.0*t134+t55*t92+t149*t444*t25+t99*t447*t25+t1*t450*t25+ +t99*t444*t18+t61*t447*t18+t28*t450*t18+t1*t444*t10+t28*t447*t10+t55*t450*t10; + HB = t440+t465; + HC = K_uu_11*t114+2.0*K_uu_12*t18*t25+2.0*K_uu_13*t10*t25+K_uu_22*t62+2.0 +*K_uu_23*t10*t18+K_uu_33*t30; + HD = t237+2.0*t100*t25+2.0*t11*t25+t63+2.0*t72*t18+t118; + t490 = pow(HD,1.0*RATIONAL(1.0,2.0)); + H = HA/t490/HD+HB/t490+HC/HD-K; diff --git a/src/gr.cg/inverse_metric.c b/src/gr.cg/inverse_metric.c new file mode 100644 index 0000000..cb85ae0 --- /dev/null +++ b/src/gr.cg/inverse_metric.c @@ -0,0 +1,25 @@ +/* + * inputs = {g_dd} + * outputs = {g_uu} + * cost = 18*assignments+24*multiplications+divisions+13*additions + */ +fp t1, t2, t4, t5, t7, t8, t11, t12, t14, t15; +fp t18, t21; + t1 = g_dd_22; + t2 = g_dd_33; + t4 = g_dd_23; + t5 = t4*t4; + t7 = g_dd_11; + t8 = t7*t1; + t11 = g_dd_12; + t12 = t11*t11; + t14 = g_dd_13; + t15 = t11*t14; + t18 = t14*t14; + t21 = 1/(t8*t2-t7*t5-t12*t2+2.0*t15*t4-t18*t1); + g_uu_11 = (t1*t2-t5)*t21; + g_uu_12 = -(t11*t2-t14*t4)*t21; + g_uu_13 = -(-t11*t4+t14*t1)*t21; + g_uu_22 = (t7*t2-t18)*t21; + g_uu_23 = -(t7*t4-t15)*t21; + g_uu_33 = (t8-t12)*t21; diff --git a/src/gr.cg/inverse_metric_gradient.c b/src/gr.cg/inverse_metric_gradient.c new file mode 100644 index 0000000..077a3c2 --- /dev/null +++ b/src/gr.cg/inverse_metric_gradient.c @@ -0,0 +1,91 @@ +/* + * inputs = {g_uu, partial_d_g_dd} + * outputs = {partial_d_g_uu} + * cost = 63*assignments+183*multiplications+117*additions + */ +fp t1, t2, t3, t5, t6, t7, t10, t11, t12, t15; +fp t16, t18, t19, t22, t23, t28, t29, t31, t33, t35; +fp t36, t38, t40, t48, t49, t51, t53, t60, t62, t65; +fp t74, t76, t86, t88, t90, t93, t96, t98, t101, t148; +fp t150, t153, t156, t158, t161; + t1 = g_uu_11; + t2 = t1*t1; + t3 = partial_d_g_dd_111; + t5 = g_uu_12; + t6 = t5*t1; + t7 = partial_d_g_dd_112; + t10 = g_uu_13; + t11 = t10*t1; + t12 = partial_d_g_dd_113; + t15 = t5*t5; + t16 = partial_d_g_dd_122; + t18 = t10*t5; + t19 = partial_d_g_dd_123; + t22 = t10*t10; + t23 = partial_d_g_dd_133; + partial_d_g_uu_111 = -t2*t3-2.0*t6*t7-2.0*t11*t12-t15*t16-2.0*t18*t19-t22 +*t23; + t28 = g_uu_22; + t29 = t1*t28; + t31 = t5*t28; + t33 = t10*t28; + t35 = g_uu_23; + t36 = t1*t35; + t38 = t5*t35; + t40 = t10*t35; + partial_d_g_uu_112 = -t6*t3-t15*t7-t18*t12-t29*t7-t31*t16-t33*t19-t36*t12 +-t38*t19-t40*t23; + t48 = g_uu_33; + t49 = t1*t48; + t51 = t48*t5; + t53 = t10*t48; + partial_d_g_uu_113 = -t11*t3-t18*t7-t22*t12-t36*t7-t38*t16-t40*t19-t49* +t12-t51*t19-t53*t23; + t60 = t28*t28; + t62 = t35*t28; + t65 = t35*t35; + partial_d_g_uu_122 = -t15*t3-2.0*t31*t7-2.0*t38*t12-t60*t16-2.0*t62*t19- +t65*t23; + t74 = t28*t48; + t76 = t35*t48; + partial_d_g_uu_123 = -t18*t3-t33*t7-t40*t12-t38*t7-t62*t16-t65*t19-t51* +t12-t74*t19-t76*t23; + t86 = t48*t48; + partial_d_g_uu_133 = -t22*t3-2.0*t40*t7-2.0*t53*t12-t65*t16-2.0*t76*t19- +t86*t23; + t88 = partial_d_g_dd_211; + t90 = partial_d_g_dd_212; + t93 = partial_d_g_dd_213; + t96 = partial_d_g_dd_222; + t98 = partial_d_g_dd_223; + t101 = partial_d_g_dd_233; + partial_d_g_uu_211 = -t2*t88-2.0*t6*t90-2.0*t11*t93-t15*t96-2.0*t18*t98- +t22*t101; + partial_d_g_uu_212 = -t6*t88-t15*t90-t18*t93-t29*t90-t31*t96-t33*t98-t36* +t93-t38*t98-t40*t101; + partial_d_g_uu_213 = -t11*t88-t18*t90-t22*t93-t36*t90-t38*t96-t40*t98-t49 +*t93-t51*t98-t53*t101; + partial_d_g_uu_222 = -t15*t88-2.0*t31*t90-2.0*t38*t93-t60*t96-2.0*t62*t98 +-t65*t101; + partial_d_g_uu_223 = -t18*t88-t33*t90-t40*t93-t38*t90-t62*t96-t65*t98-t51 +*t93-t74*t98-t76*t101; + partial_d_g_uu_233 = -t22*t88-2.0*t40*t90-2.0*t53*t93-t65*t96-2.0*t76*t98 +-t86*t101; + t148 = partial_d_g_dd_311; + t150 = partial_d_g_dd_312; + t153 = partial_d_g_dd_313; + t156 = partial_d_g_dd_322; + t158 = partial_d_g_dd_323; + t161 = partial_d_g_dd_333; + partial_d_g_uu_311 = -t2*t148-2.0*t6*t150-2.0*t11*t153-t15*t156-2.0*t18* +t158-t22*t161; + partial_d_g_uu_312 = -t6*t148-t15*t150-t18*t153-t29*t150-t31*t156-t33* +t158-t36*t153-t38*t158-t40*t161; + partial_d_g_uu_313 = -t11*t148-t18*t150-t22*t153-t36*t150-t38*t156-t40* +t158-t49*t153-t51*t158-t53*t161; + partial_d_g_uu_322 = -t15*t148-2.0*t31*t150-2.0*t38*t153-t60*t156-2.0*t62 +*t158-t65*t161; + partial_d_g_uu_323 = -t18*t148-t33*t150-t40*t153-t38*t150-t62*t156-t65* +t158-t51*t153-t74*t158-t76*t161; + partial_d_g_uu_333 = -t22*t148-2.0*t40*t150-2.0*t53*t153-t65*t156-2.0*t76 +*t158-t86*t161; diff --git a/src/gr.cg/metric_det_gradient.c b/src/gr.cg/metric_det_gradient.c new file mode 100644 index 0000000..16147e4 --- /dev/null +++ b/src/gr.cg/metric_det_gradient.c @@ -0,0 +1,24 @@ +/* + * inputs = {g_uu, partial_d_g_dd} + * outputs = {partial_d_ln_sqrt_g} + * cost = 9*assignments+15*additions+27*multiplications + */ +fp t1, t5, t8, t11, t15, t18; + t1 = g_uu_11; + t5 = g_uu_12; + t8 = g_uu_13; + t11 = g_uu_22; + t15 = g_uu_23; + t18 = g_uu_33; + partial_d_ln_sqrt_g_1 = RATIONAL(1.0,2.0)*t1*partial_d_g_dd_111+t5* +partial_d_g_dd_112+t8*partial_d_g_dd_113+RATIONAL(1.0,2.0)*t11* +partial_d_g_dd_122+t15*partial_d_g_dd_123+RATIONAL(1.0,2.0)*t18* +partial_d_g_dd_133; + partial_d_ln_sqrt_g_2 = RATIONAL(1.0,2.0)*t1*partial_d_g_dd_211+t5* +partial_d_g_dd_212+t8*partial_d_g_dd_213+RATIONAL(1.0,2.0)*t11* +partial_d_g_dd_222+t15*partial_d_g_dd_223+RATIONAL(1.0,2.0)*t18* +partial_d_g_dd_233; + partial_d_ln_sqrt_g_3 = RATIONAL(1.0,2.0)*t1*partial_d_g_dd_311+t5* +partial_d_g_dd_312+t8*partial_d_g_dd_313+RATIONAL(1.0,2.0)*t11* +partial_d_g_dd_322+t15*partial_d_g_dd_323+RATIONAL(1.0,2.0)*t18* +partial_d_g_dd_333; |