24 #include <gsl/gsl_poly.h>
51 switch (InterAmpFlag){
53 double eta = pWF->
eta;
54 double S = pWF->
STotR;
58 double noSpin = sqrt(eta - 4.*eta2)*(21.256776327599113 - 25.594352690383847*eta + 30.14761650482866*eta2);
59 double eqSpin = sqrt(eta - 4.*eta2)*S*(-11.262044985632757 - 1.8167045597937677*S + eta*(-1.1798437990445079 + 6.344825546437461*S - 4.881427482271166*S2));
60 double uneqSpin = -3.6366100759176696*pow(pWF->
dchi,2)*(1. - 4.*eta)*eta - 31.60048733143782*(pWF->
dchi)*eta2*(1. + 2.1502870640831855*eta2);
61 total = noSpin + eqSpin + uneqSpin;
65 double eta = pWF->
eta;
67 double S = pWF->
STotR;
70 double eta2 = eta1 * eta1;
71 double eta3 = eta1 * eta2;
72 double eta4 = eta1 * eta3;
73 double eta5 = eta1 * eta4;
76 double chidiff1 = chidiff;
77 double chidiff2 = chidiff1 * chidiff1;
78 total = fabs(
delta*eta1*(chidiff2*(5.159755997682368*eta1 - 30.293198248154948*eta2 + 63.70715919820867*eta3) + chidiff1*(8.262642080222694*eta1 - 415.88826990259116*eta2 + 1427.5951158851076*eta3)) +
delta*eta1*(18.55363583212328 - 66.46950491124205*eta1 + 447.2214642597892*eta2 - 1614.178472020212*eta3 + 2199.614895727586*eta4) + chidiff1*eta5*(-1698.841763891122 - 195.27885562092342*S1 - 1.3098861736238572*S2) +
delta*eta1*(chidiff1*(34.17829404207186*eta1 - 386.34587928670015*eta2 + 1022.8553774274128*eta3)*S1 + chidiff1*(56.76554600963724*eta1 - 491.4593694689354*eta2 + 1016.6019654342113*eta3)*S2) +
delta*eta1*S1*(-8.276366844994188*(1.0677538075697492 - 24.12941323757896*eta1 + 516.7886322104276*eta2 - 4389.799658723288*eta3 + 16770.447637953577*eta4 - 23896.392706809565*eta5) - 1.6908277400304084*(3.4799140066657928 - 29.00026389706585*eta1 + 114.8330693231833*eta2 - 184.13091281984674*eta3 + 592.300353344717*eta4 - 2085.0821513466053*eta5)*S1 - 0.46006975902558517*(-2.1663474937625975 + 826.026625945615*eta1 - 17333.549622759732*eta2 + 142904.08962903373*eta3 - 528521.6231015554*eta4 + 731179.456702448*eta5)*S2));
88 switch (InterAmpFlag){
90 double eta = pWF->
eta;
91 double S = pWF->
STotR;
92 double eta2 = pow(eta,2);
93 double noSpin = sqrt(eta - 4.*eta2)*(19.15445065708005 - 21.13596229438309*eta + 29.742565944285772*eta2);
94 double eqSpin = sqrt(eta - 4.*eta2)*S*(-12.766814596085734 - 2.123816950673979*S + eta*(-2.913184982025043 + 6.006571549661901*S));
95 double uneqSpin = -25.856046423804255*(pWF->
dchi)*eta2*(1. + 5.7871199275552*eta2);
96 total = noSpin + eqSpin + uneqSpin;
100 double eta = pWF->
eta;
102 double S = pWF->
STotR;
105 double eta2 = eta1 * eta1;
106 double eta3 = eta1 * eta2;
107 double eta4 = eta1 * eta3;
108 double eta5 = eta1 * eta4;
111 double chidiff1 = chidiff;
112 total = fabs(
delta*eta1*(13.757856231617446 - 12.783698329428516*eta1 + 12.048194546899204*eta2) + chidiff1*
delta*eta1*(15.107530092096438*eta1 - 416.811753638553*eta2 + 1333.6181181686939*eta3) + chidiff1*eta5*(-1549.6199518612063 - 102.34716990474509*S1 - 3.3637011939285015*S2) +
delta*eta1*(chidiff1*(36.358142200869295*eta1 - 384.2123173145321*eta2 + 984.6826660818275*eta3)*S1 + chidiff1*(4.159271594881928*eta1 + 105.10911749116399*eta2 - 639.190132707115*eta3)*S2) +
delta*eta1*S1*(-8.097876227116853*(0.6569459700232806 + 9.861355377849485*eta1 - 116.88834714736281*eta2 + 593.8035334117192*eta3 - 1063.0692862578455*eta4) - 1.0546375154878165*(0.745557030602097 + 65.25215540635162*eta1 - 902.5751736558435*eta2 + 4350.442990924205*eta3 - 7141.611333893155*eta4)*S1 - 0.5006664599166409*(10.289020582277626 - 212.00728173197498*eta1 + 2334.0029399672358*eta2 - 11939.621138801092*eta3 + 21974.8201355744*eta4)*S2));
122 switch (InterAmpFlag){
124 double eta = pWF->
eta;
125 double S = pWF->
STotR;
126 double eta2,eta3,eta4,eta6;
131 double noSpin = sqrt(eta - 4.*eta2)*(27.927652424857733 - 133.56611389260297*eta + 974.8550901501316*eta2 - 3744.785831952632*eta3 + 5621.897260910284*eta4);
132 double eqSpin = sqrt(eta - 4.*eta2)*S*(7.348313807306079 + eta*(-60.248696675045565 - 37.07212326362276*S) + 5.059236579431119*S + eta2*(159.68630712802727 + 83.33807316873204*S));
133 double uneqSpin = 1412.367880056888*(pWF->
dchi)*eta6;
134 total = noSpin + eqSpin + uneqSpin;
138 double eta = pWF->
eta;
140 double S = pWF->
STotR;
143 double eta2 = eta1 * eta1;
144 double eta3 = eta1 * eta2;
145 double eta4 = eta1 * eta3;
146 double eta5 = eta1 * eta4;
149 double chidiff1 = chidiff;
150 total = chidiff1*
delta*eta1*(-0.3516244197696068*eta1 + 40.425151307421416*eta2 - 148.3162618111991*eta3) +
delta*eta1*(26.998512565991778 - 146.29035440932105*eta1 + 914.5350366065115*eta2 - 3047.513201789169*eta3 + 3996.417635728702*eta4) + chidiff1*
delta*eta1*(5.575274516197629*eta1 - 44.592719238427094*eta2 + 99.91399033058927*eta3)*S1 +
delta*eta1*S1*(-0.5383304368673182*(-7.456619067234563 + 129.36947401891433*eta1 - 843.7897535238325*eta2 + 3507.3655567272644*eta3 - 9675.194644814854*eta4 + 11959.83533107835*eta5) - 0.28042799223829407*(-6.212827413930676 + 266.69059813274475*eta1 - 4241.537539226717*eta2 + 32634.43965039936*eta3 - 119209.70783201039*eta4 + 166056.27237509796*eta5)*S1) + chidiff1*eta5*(199.6863414922219 + 53.36849263931051*S1 + 7.650565415855383*S2);
160 switch (InterAmpFlag){
162 double eta = pWF->
eta;
163 double S = pWF->
STotR;
167 double noSpin = sqrt(eta - 4.*eta2)*(20.162169689041903 - 18.666422946967764*eta + 53.04107631052987*eta2);
168 double eqSpin = sqrt(eta - 4.*eta2)*S*(3.896260108714186 + eta*(-33.707998325000965 - 61.1244771077077*S) + 4.878506403725656*S + eta2*(91.31681057861915 + 196.40535070402336*S));
169 double uneqSpin = 1637.4256048973248*(pWF->
dchi)*eta6;
170 total = noSpin + eqSpin + uneqSpin;
174 double eta = pWF->
eta;
176 double S = pWF->
STotR;
179 double eta2 = eta1 * eta1;
180 double eta3 = eta1 * eta2;
181 double eta4 = eta1 * eta3;
182 double eta5 = eta1 * eta4;
185 double chidiff1 = chidiff;
186 total =
delta*eta1*(17.42562079069636 - 28.970875603981295*eta1 + 50.726220750178435*eta2) + chidiff1*
delta*eta1*(-7.861956897615623*eta1 + 93.45476935080045*eta2 - 273.1170921735085*eta3) + chidiff1*
delta*eta1*(-0.3265505633310564*eta1 - 9.861644053348053*eta2 + 60.38649425562178*eta3)*S1 + chidiff1*eta5*(234.13476431269862 + 51.2153901931183*S1 - 10.05114600643587*S2) +
delta*eta1*S1*(0.3104472390387834*(6.073591341439855 + 169.85423386969634*eta1 - 4964.199967099143*eta2 + 42566.59565666228*eta3 - 154255.3408672655*eta4 + 205525.13910847943*eta5) + 0.2295327944679772*(19.236275867648594 - 354.7914372697625*eta1 + 1876.408148917458*eta2 + 2404.4151687877525*eta3 - 41567.07396803811*eta4 + 79210.33893514868*eta5)*S1 + 0.30983324991828787*(11.302200127272357 - 719.9854052004307*eta1 + 13278.047199998868*eta2 - 104863.50453518033*eta3 + 376409.2335857397*eta4 - 504089.07690692553*eta5)*S2);
196 switch (InterAmpFlag){
198 double eta = pWF->
eta;
199 double S = pWF->
STotR;
200 double delta=sqrt(1.-4*eta),eta2,eta3,eta4,eta5,eta6;
206 double noSpin = sqrt(eta - 3.*eta2)*(6.523612598187996 - 56.93956111746338*eta + 1021.6414686597869*eta2 - 12107.114370361525*eta3 + 76320.90587515048*eta4 - 244144.92645448362*eta5 + 321790.55131499085*eta6);
207 double eqSpin = sqrt(eta - 3.*eta2)*S*(2.9649243713119895 + eta3*(1790.8363334078751 - 5438.911035114849*S) + eta*(-37.87005271181108 - 126.1263286618178*S) + 4.063724538613828*S + eta2*(48.39743086535961 + 1341.2619677741804*S) + eta4*(-5200.659417644607 + 7369.386205324284*S));
208 double uneqSpin = eta2*(-0.4386152975075188*(pow(pWF->
chi1L,2) - 2.*pWF->
chi1L*pWF->
chi2L + pow(pWF->
chi2L,2)) + (pWF->
chi2L*(3.6527252109313233 - 7.324266404418883*S) + pWF->
chi1L*(-3.6527252109313233 + 7.324266404418883*S))*
delta);
209 total = noSpin + eqSpin + uneqSpin;
213 double eta = pWF->
eta;
215 double sqroot = sqrt(eta);
219 double eta2 = eta1 * eta1;
220 double eta3 = eta1 * eta2;
221 double eta4 = eta1 * eta3;
222 double eta5 = eta1 * eta4;
224 double chidiff1 = chidiff;
225 double chidiff2 = chidiff1 * chidiff1;
226 total = (chidiff2*(-0.2341404256829785*eta1 + 2.606326837996192*eta2 - 8.68296921440857*eta3) + chidiff1*
delta*(0.5454562486736877*eta1 - 25.19759222940851*eta2 + 73.40268975811729*eta3))*sqroot + chidiff1*
delta*(0.4422257616009941*eta1 - 8.490112284851655*eta2 + 32.22238925527844*eta3)*S1*sqroot + S1*(0.7067243321652764*(0.12885110296881636 + 9.608999847549535*eta1 - 85.46581740280585*eta2 + 325.71940024255775*eta3 + 175.4194342269804*eta4 - 1929.9084724384807*eta5) + 0.1540566313813899*(-0.3261041495083288 + 45.55785402900492*eta1 - 827.591235943271*eta2 + 7184.647314370326*eta3 - 28804.241518798244*eta4 + 43309.69769878964*eta5)*S1)*sqroot + (480.0434256230109*eta1 + 25346.341240810478*eta2 - 99873.4707358776*eta3 + 106683.98302194536*eta4)*sqroot*pow(1 + 1082.6574834474493*eta1 + 10083.297670051445*eta2,-1);
236 switch (InterAmpFlag){
238 double eta = pWF->
eta;
239 double S = pWF->
STotR;
240 double delta=sqrt(1.-4.*eta),eta2,eta3,eta4,S2;
245 double noSpin = sqrt(eta - 3.*eta2)*(5.941845842405418 - 31.905244419036794*eta + 271.105632998832*eta2 - 2113.9652334868965*eta3 + 6214.038393898584*eta4);
246 double eqSpin = sqrt(eta - 3.*eta2)*S*(-2.726472456645038 + 2.9454485454761827*S + eta3*(10581.664858726683 - 8474.190197512324*S - 11680.937129551317*S2) + eta*(98.08119212251981 - 119.88112323140916*S - 145.5079981415436*S2) + 3.5684571473795095*S2 + eta2*(-1595.8027347570667 + 1686.7137359336039*S + 2139.8290160628144*S2) + eta4*(-21488.25117198268 + 13866.428366595079*S + 20863.270079587106*S2));
247 double uneqSpin = 0.0038732029045487884*(pWF->
dchi)*eta2*
delta;
248 total = noSpin + eqSpin + uneqSpin;
252 double eta = pWF->
eta;
254 double S = pWF->
STotR;
257 double eta2 = eta1 * eta1;
258 double eta3 = eta1 * eta2;
259 double eta4 = eta1 * eta3;
260 double eta5 = eta1 * eta4;
261 double eta6 = eta1 * eta5;
263 double chidiff1 = chidiff;
264 double chidiff2 = chidiff1 * chidiff1;
265 total = eta1*(chidiff2*(-4.175680729484314*eta1 + 47.54281549129226*eta2 - 128.88334273588077*eta3) + chidiff1*
delta*(-0.18274358639599947*eta1 - 71.01128541687838*eta2 + 208.07105580635888*eta3)) + eta1*(4.760999387359598 - 38.57900689641654*eta1 + 456.2188780552874*eta2 - 4544.076411013166*eta3 + 24956.9592553473*eta4 - 69430.10468748478*eta5 + 77839.74180254337*eta6) + chidiff1*
delta*eta1*(1.2198776533959694*eta1 - 26.816651899746475*eta2 + 68.72798751937934*eta3)*S1 + eta1*S1*(1.5098291294292217*(0.4844667556328104 + 9.848766999273414*eta1 - 143.66427232396376*eta2 + 856.9917885742416*eta3 - 1633.3295758142904*eta4) + 0.32413108737204144*(2.835358206961064 - 62.37317183581803*eta1 + 761.6103793011912*eta2 - 3811.5047139343505*eta3 + 6660.304740652403*eta4)*S1);
275 switch (InterAmpFlag){
277 double eta = pWF->
eta;
278 double S = pWF->
STotR;
279 double delta=sqrt(1.-4.*eta),eta2,eta3,eta4;
283 double noSpin = sqrt(eta - 3.*eta2)*(10.804555518381166 - 72.3834734399584*eta + 540.0541240482852*eta2 - 2612.999845214264*eta3 + 4779.096001663427*eta4);
284 double eqSpin = sqrt(eta - 3.*eta2)*S*(4.26336253142121 + eta*(-47.94914754514519 - 39.31284390368824*S) + 3.0973959822174297*S + eta2*(119.70401520575753 + 106.91295627237112*S));
285 double uneqSpin = 0.7262636326998003*pow(pWF->
dchi,2)*(1. - 4.*eta)*eta + 3.001401833124412*(pWF->
dchi)*eta2*
delta;
286 total = noSpin + eqSpin + uneqSpin;
290 double eta = pWF->
eta;
295 double eta2 = eta1 * eta1;
296 double eta3 = eta1 * eta2;
297 double eta4 = eta1 * eta3;
300 double chidiff1 = chidiff;
301 double chidiff2 = chidiff1 * chidiff1;
302 total = eta1*(chidiff1*
delta*(1.5378890240544967*eta1 - 3.4499418893734903*eta2 + 16.879953490422782*eta3) + chidiff2*(1.720226708214248*eta1 - 11.87925165364241*eta2 + 23.259283336239545*eta3)) + eta1*(8.790173464969538 - 64.95499142822892*eta1 + 324.1998823562892*eta2 - 1111.9864921907126*eta3 + 1575.602443847111*eta4) + eta1*S1*(-0.062333275821238224*(-21.630297087123807 + 137.4395894877131*eta1 + 64.92115530780129*eta2 - 1013.1110639471394*eta3) - 0.11014697070998722*(4.149721483857751 - 108.6912882442823*eta1 + 831.6073263887092*eta2 - 1828.2527520190122*eta3)*S1 - 0.07704777584463054*(4.581767671445529 - 50.35070009227704*eta1 + 344.9177692251726*eta2 - 858.9168637051405*eta3)*S2);
312 switch (InterAmpFlag){
314 double eta = pWF->
eta;
315 double S = pWF->
STotR;
316 double delta=sqrt(1.-4.*eta),eta2,eta3,eta4;
320 double noSpin = sqrt(eta - 3.*eta2)*(9.020721305469884 - 53.221883492311235*eta + 508.07176447172264*eta2 - 3194.0620894511508*eta3 + 6769.9274392345915*eta4);
321 double eqSpin = sqrt(eta - 3.*eta2)*S*(3.256591670091969 + eta*(-38.38922554651356 - 25.286684856422735*S) + 2.374434219852751*S + eta2*(96.41777041220982 + 64.74544118094362*S));
322 double uneqSpin = 3.2337593375595417*(pWF->
dchi)*eta2*
delta;
323 total = noSpin + eqSpin + uneqSpin;
327 double eta = pWF->
eta;
332 double eta2 = eta1 * eta1;
333 double eta3 = eta1 * eta2;
334 double eta4 = eta1 * eta3;
335 double eta5 = eta1 * eta4;
336 double eta6 = eta1 * eta5;
338 double chidiff1 = chidiff;
339 double chidiff2 = chidiff1 * chidiff1;
340 total = eta1*(chidiff1*
delta*(2.3123974306694057*eta1 - 12.237594841284904*eta2 + 44.78225529547671*eta3) + chidiff2*(2.9282931698944292*eta1 - 25.624210264341933*eta2 + 61.05270871360041*eta3)) + eta1*(6.98072197826729 - 46.81443520117986*eta1 + 236.76146303619544*eta2 - 920.358408667518*eta3 + 1478.050456337336*eta4) + eta1*S1*(-0.07801583359561987*(-28.29972282146242 + 752.1603553640072*eta1 - 10671.072606753183*eta2 + 83447.0461509547*eta3 - 350025.2112501252*eta4 + 760889.6919776166*eta5 - 702172.2934567826*eta6) + 0.013159545629626014*(91.1469833190294 - 3557.5003799977294*eta1 + 52391.684517955284*eta2 - 344254.9973814295*eta3 + 1.0141877915334814e6*eta4 - 1.1505186449682908e6*eta5 + 268756.85659532435*eta6)*S1);
353 switch (InterAmpFlag){
355 double eta = pWF->
eta;
356 double S = pWF->
STotR;
360 double noSpin = 0.872895771366973 + 441.76285124642845*eta - 24617.068739152524*eta2 + 518054.9485981792*eta3;
361 double eqSpin = S*(-0.0720494539485585 + eta*(-173.67847091983123 - 113.29725582509889*S) - 0.2687302438646897*S + eta2*(3571.0393588230045 + 2640.919925429635*S));
362 double uneqSpin = 0.;
363 total = noSpin + eqSpin + uneqSpin;
373 switch (InterAmpFlag){
375 double eta = pWF->
eta;
376 double S = pWF->
STotR;
380 double noSpin = -0.8535048463050732 - 93.1876950411214*eta + 13641.071903017495*eta2 - 337621.44851304166*eta3;
381 double eqSpin = S*(-1.2067842398131878 + eta2*(-1972.284151572111 - 8172.057025783849*S) - 0.26539816223182355*S + eta*(77.26350785961219 + 189.63365484152857*S));
382 double uneqSpin = 0.;
383 total = noSpin + eqSpin + uneqSpin;
393 switch (InterAmpFlag){
395 double eta = pWF->
eta;
396 double S = pWF->
STotR;
400 double noSpin = 1.5852399637975103 + 549.5183711492834*eta - 34257.76380246282*eta2 + 743142.8286902909*eta3;
401 double eqSpin = S*(0.7436306553052219 + eta*(-89.49451655594787 - 174.5730646548662*S) + 0.4253024979725725*S + eta2*(1185.1654325913717 + 6510.983041407191*S));
402 double uneqSpin = 0.;
403 total = noSpin + eqSpin + uneqSpin;
413 switch (InterAmpFlag){
415 double eta = pWF->
eta;
416 double S = pWF->
STotR;
420 double noSpin = -4.691600252198376 + 101.4338937535679*eta + 9262.994550540048*eta2 - 310993.1309846956*eta3;
421 double eqSpin = S*(-4.198232394219111 + eta2*(-28714.904192060643 - 5100.09336069277*S) - 0.40986595512314733*S + eta*(734.7118618746317 + 292.04566260701574*S));
422 double uneqSpin = 0.;
423 total = noSpin + eqSpin + uneqSpin;
433 switch (InterAmpFlag){
435 double eta = pWF->
eta;
436 double S = pWF->
STotR;
437 double eta2,eta3,S2,S3;
442 double noSpin = 0.24794156582503746 + 115.81823862983131*eta - 6626.167995915723*eta2 + 141004.29332593994*eta3;
443 double eqSpin = (0.21144389781375486 + 35.10041265469983*eta - 1794.2301585086836*eta2)*S + (0.2781735549493081 - 37.038950686633*eta + 1258.628375238807*eta2)*S2 + (0.23428222791962147 - 63.98011009365723*eta + 2118.213562899934*eta2)*S3;
444 double uneqSpin = 0.;
445 total = noSpin + eqSpin + uneqSpin;
455 switch (InterAmpFlag){
457 double eta = pWF->
eta;
458 double S = pWF->
STotR;
462 double noSpin = -0.3391808620221253 - 14.604141885467747*eta + 3694.1706648870427*eta2 - 95482.02951271653*eta3;
463 double eqSpin = S*(-1.2844502090793946 + eta2*(-5018.762853306415 - 6332.389157828062*S) - 1.2356159239385598*S + eta*(149.04865679660233 + 188.2052849646003*S));
464 double uneqSpin = 0.;
465 total = noSpin + eqSpin + uneqSpin;
475 switch (InterAmpFlag){
477 double eta = pWF->
eta;
478 double S = pWF->
STotR;
479 double eta2,eta3,S2,S3;
484 double noSpin = 0.5664660641971224 + 185.58965113823874*eta - 11458.768824989507*eta2 + 249386.7511724409*eta3;
485 double eqSpin = (0.1741768776210781 - 9.365114803167128*eta + 703.2622732011035*eta2)*S + (0.20169229783048184 - 62.13147149352512*eta + 2833.5738711424974*eta2)*S2 + (0.4423803798742513 - 23.60535149579996*eta - 994.9241585715828*eta2)*S3;
486 double uneqSpin = 0.;
487 total = noSpin + eqSpin + uneqSpin;
497 switch (InterAmpFlag){
499 double eta = pWF->
eta;
500 double S = pWF->
STotR;
501 double eta2 = pow(eta,2);
502 double noSpin = -1.796444922382065 + 111.51170611049032*eta - 1728.7493675776548*eta2;
503 double eqSpin = S*(-1.842119860613924 + eta2*(-11235.484645624338 - 2927.019210835522*S) - 0.36655273031432567*S + eta*(312.34531117524097 + 128.64488103364167*S));
504 double uneqSpin = 0.;
505 total = noSpin + eqSpin + uneqSpin;
516 switch (InterAmpFlag){
518 double eta = pWF->
eta;
520 double S = pWF->
STotR;
523 double eta2 = eta1 * eta1;
524 double eta3 = eta1 * eta2;
525 double eta4 = eta1 * eta3;
526 double eta5 = eta1 * eta4;
529 double chidiff1 = chidiff;
530 total = fabs(
delta*eta1*(13.318990196097973 - 21.755549987331054*eta1 + 76.14884211156267*eta2 - 127.62161159798488*eta3) + chidiff1*
delta*eta1*(17.704321326939414*eta1 - 434.4390350012534*eta2 + 1366.2408490833282*eta3) + chidiff1*
delta*eta1*(11.877985158418596*eta1 - 131.04937626836355*eta2 + 343.79587860999874*eta3)*S1 + chidiff1*eta5*(-1522.8543551416456 - 16.639896279650678*S1 + 3.0053086651515843*S2) +
delta*eta1*S1*(-8.665646058245033*(0.7862132291286934 + 8.293609541933655*eta1 - 111.70764910503321*eta2 + 576.7172598056907*eta3 - 1001.2370065269745*eta4) - 0.9459820574514348*(1.309016452198605 + 48.94077040282239*eta1 - 817.7854010574645*eta2 + 4331.56002883546*eta3 - 7518.309520232795*eta4)*S1 - 0.4308267743835775*(9.970654092010587 - 302.9708323417439*eta1 + 3662.099161055873*eta2 - 17712.883990278668*eta3 + 29480.158198408903*eta4)*S2));
540 switch (InterAmpFlag){
542 double eta = pWF->
eta;
544 double S = pWF->
STotR;
547 double eta2 = eta1 * eta1;
548 double eta3 = eta1 * eta2;
549 double eta4 = eta1 * eta3;
550 double eta5 = eta1 * eta4;
553 double chidiff1 = chidiff;
554 total = fabs(
delta*eta1*(13.094382343446163 - 22.831152256559523*eta1 + 83.20619262213437*eta2 - 139.25546924151664*eta3) + chidiff1*
delta*eta1*(20.120192352555357*eta1 - 458.2592421214168*eta2 + 1430.3698681181*eta3) + chidiff1*
delta*eta1*(12.925363020014743*eta1 - 126.87194512915104*eta2 + 280.6003655502327*eta3)*S1 + chidiff1*eta5*(-1528.956015503355 + 74.44462583487345*S1 - 2.2456928156392197*S2) +
delta*eta1*S1*(-9.499741513411829*(0.912120958549489 + 2.400945118514037*eta1 - 33.651192908287236*eta2 + 166.04254881175257*eta3 - 248.5050377498615*eta4) - 0.7850652143322492*(1.534131218043425 + 60.81773903539479*eta1 - 1032.1319480683567*eta2 + 5381.481380750608*eta3 - 9077.037917192794*eta4)*S1 - 0.21540359093306097*(9.42805409480658 - 109.06544597367301*eta1 + 385.8345793110262*eta2 + 1889.9613367802453*eta3 - 9835.416414460055*eta4)*S2));
564 switch (InterAmpFlag){
566 double eta = pWF->
eta;
568 double S = pWF->
STotR;
571 double eta2 = eta1 * eta1;
572 double eta3 = eta1 * eta2;
573 double eta4 = eta1 * eta3;
574 double eta5 = eta1 * eta4;
577 double chidiff1 = chidiff;
578 total =
delta*eta1*(14.555522136327964 - 12.799844096694798*eta1 + 16.79500349318081*eta2) + chidiff1*
delta*eta1*(-16.292654447108134*eta1 + 190.3516012682791*eta2 - 562.0936797781519*eta3) + chidiff1*
delta*eta1*(-7.048898856045782*eta1 + 49.941617405768135*eta2 - 73.62033985436068*eta3)*S1 + chidiff1*eta5*(263.5151703818307 + 44.408527093031566*S1 + 10.457035444964653*S2) +
delta*eta1*S1*(0.4590550434774332*(3.0594364612798635 + 207.74562213604057*eta1 - 5545.0086137386525*eta2 + 50003.94075934942*eta3 - 195187.55422847517*eta4 + 282064.174913521*eta5) + 0.657748992123043*(5.57939137343977 - 124.06189543062042*eta1 + 1276.6209573025596*eta2 - 6999.7659193505915*eta3 + 19714.675715229736*eta4 - 20879.999628681435*eta5)*S1 + 0.3695850566805098*(6.077183107132255 - 498.95526910874986*eta1 + 10426.348944657859*eta2 - 91096.64982858274*eta3 + 360950.6686625352*eta4 - 534437.8832860565*eta5)*S2);
588 switch (InterAmpFlag){
590 double eta = pWF->
eta;
592 double S = pWF->
STotR;
595 double eta2 = eta1 * eta1;
596 double eta3 = eta1 * eta2;
597 double eta4 = eta1 * eta3;
598 double eta5 = eta1 * eta4;
601 double chidiff1 = chidiff;
602 double chidiff2 = chidiff1 * chidiff1;
603 total =
delta*eta1*(13.312095699772305 - 7.449975618083432*eta1 + 17.098576301150125*eta2) +
delta*eta1*(chidiff1*(-31.171150896110156*eta1 + 371.1389274783572*eta2 - 1103.1917047361735*eta3) + chidiff2*(32.78644599730888*eta1 - 395.15713118955387*eta2 + 1164.9282236341376*eta3)) + chidiff1*
delta*eta1*(-46.85669289852532*eta1 + 522.3965959942979*eta2 - 1485.5134187612182*eta3)*S1 + chidiff1*eta5*(287.90444670305715 - 21.102665129433042*chidiff2 + 7.635582066682054*S1 - 29.471275170013012*S2) +
delta*eta1*S1*(0.6893003654021495*(3.1014226377197027 - 44.83989278653052*eta1 + 565.3767256471909*eta2 - 4797.429130246123*eta3 + 19514.812242035154*eta4 - 27679.226582207506*eta5) + 0.7068016563068026*(4.071212304920691 - 118.51094098279343*eta1 + 1788.1730303291356*eta2 - 13485.270489656365*eta3 + 48603.96661003743*eta4 - 65658.74746265226*eta5)*S1 + 0.2181399561677432*(-1.6754158383043574 + 303.9394443302189*eta1 - 6857.936471898544*eta2 + 59288.71069769708*eta3 - 216137.90827404748*eta4 + 277256.38289831823*eta5)*S2);
613 switch (InterAmpFlag){
615 double eta = pWF->
eta;
620 double eta2 = eta1 * eta1;
621 double eta3 = eta1 * eta2;
622 double eta4 = eta1 * eta3;
625 double chidiff1 = chidiff;
626 double chidiff2 = chidiff1 * chidiff1;
627 total = eta1*(chidiff1*
delta*(-0.8765502142143329*eta1 + 22.806632458441996*eta2 - 43.675503209991184*eta3) + chidiff2*(0.48698617426180074*eta1 - 4.302527065360426*eta2 + 16.18571810759235*eta3)) + eta1*(6.379772583015967 - 44.10631039734796*eta1 + 269.44092930942793*eta2 - 1285.7635006711453*eta3 + 2379.538739132234*eta4) + eta1*S1*(-0.23316184683282615*(-1.7279023138971559 - 23.606399143993716*eta1 + 409.3387618483284*eta2 - 1115.4147472977265*eta3) - 0.09653777612560172*(-5.310643306559746 - 2.1852511802701264*eta1 + 541.1248219096527*eta2 - 1815.7529908827103*eta3)*S1 - 0.060477799540741804*(-14.578189130145661 + 175.6116682068523*eta1 - 569.4799973930861*eta2 + 426.0861915646515*eta3)*S2);
637 switch (InterAmpFlag){
639 double eta = pWF->
eta;
644 double eta2 = eta1 * eta1;
645 double eta3 = eta1 * eta2;
646 double eta4 = eta1 * eta3;
647 double eta5 = eta1 * eta4;
650 double chidiff1 = chidiff;
651 double chidiff2 = chidiff1 * chidiff1;
652 total = eta1*(chidiff1*
delta*(-2.461738962276138*eta1 + 45.3240543970684*eta2 - 112.2714974622516*eta3) + chidiff2*(0.9158352037567031*eta1 - 8.724582331021695*eta2 + 28.44633544874233*eta3)) + eta1*(6.098676337298138 - 45.42463610529546*eta1 + 350.97192927929433*eta2 - 2002.2013283876834*eta3 + 4067.1685640401033*eta4) + eta1*S1*(-0.36068516166901304*(-2.120354236840677 - 47.56175350408845*eta1 + 1618.4222330016048*eta2 - 14925.514654896673*eta3 + 60287.45399959349*eta4 - 91269.3745059139*eta5) - 0.09635801207669747*(-11.824692837267394 + 371.7551657959369*eta1 - 4176.398139238679*eta2 + 16655.87939259747*eta3 - 4102.218189945819*eta4 - 67024.98285179552*eta5)*S1 - 0.06565232123453196*(-26.15227471380236 + 1869.0168486099005*eta1 - 33951.35186039629*eta2 + 253694.6032002248*eta3 - 845341.6001856657*eta4 + 1.0442282862506858e6*eta5)*S2);
662 switch (InterAmpFlag){
664 double eta = pWF->
eta;
669 double eta2 = eta1 * eta1;
670 double eta3 = eta1 * eta2;
671 double eta4 = eta1 * eta3;
672 double eta5 = eta1 * eta4;
673 double eta6 = eta1 * eta5;
676 double chidiff1 = chidiff;
677 double chidiff2 = chidiff1 * chidiff1;
678 total = 3.881450518842405*eta1 - 12.580316392558837*eta2 + 1.7262466525848588*eta3 + chidiff2*(-7.065118823041031*eta2 + 77.97950589523865*eta3 - 203.65975422378446*eta4) - 58.408542930248046*eta4 + chidiff1*
delta*(1.924723094787216*eta2 - 90.92716917757797*eta3 + 387.00162600306226*eta4) + 403.5748987560612*eta5 + chidiff1*
delta*(-0.2566958540737833*eta2 + 14.488550203412675*eta3 - 26.46699529970884*eta4)*S1 + S1*(0.3650871458400108*(71.57390929624825*eta2 - 994.5272351916166*eta3 + 6734.058809060536*eta4 - 18580.859291282686*eta5 + 16001.318492586077*eta6) + 0.0960146077440495*(451.74917589707513*eta2 - 9719.470997418284*eta3 + 83403.5743434538*eta4 - 318877.43061174755*eta5 + 451546.88775684836*eta6)*S1 - 0.03985156529181297*(-304.92981902871617*eta2 + 3614.518459296278*eta3 - 7859.4784979916085*eta4 - 46454.57664737511*eta5 + 162398.81483375572*eta6)*S2);
688 switch (InterAmpFlag){
690 double eta = pWF->
eta;
692 double S = pWF->
STotR;
695 double eta2 = eta1 * eta1;
696 double eta3 = eta1 * eta2;
697 double eta4 = eta1 * eta3;
699 double chidiff1 = chidiff;
700 double chidiff2 = chidiff1 * chidiff1;
701 total = eta1*(chidiff2*(-8.572797326909152*eta1 + 92.95723645687826*eta2 - 236.2438921965621*eta3) + chidiff1*
delta*(6.674358856924571*eta1 - 171.4826985994883*eta2 + 645.2760206304703*eta3)) + eta1*(3.921660532875504 - 16.57299637423352*eta1 + 25.254017911686333*eta2 - 143.41033155133266*eta3 + 692.926425981414*eta4) + chidiff1*
delta*eta1*(-3.582040878719185*eta1 + 57.75888914133383*eta2 - 144.21651114700492*eta3)*S1 + eta1*S1*(1.242750265695504*(-0.522172424518215 + 25.168480118950065*eta1 - 303.5223688400309*eta2 + 1858.1518762309654*eta3 - 3797.3561904195085*eta4) + 0.2927045241764365*(0.5056957789079993 - 15.488754837330958*eta1 + 471.64047356915603*eta2 - 3131.5783196211587*eta3 + 6097.887891566872*eta4)*S1);
728 static double IMRPhenomXHM_Intermediate_Amp_delta0(
double d1,
double d4,
double v1,
double v2,
double v3,
double v4,
double f1,
double f2,
double f3,
double f4,
int IntAmpFlag)
736 double f1mf4 = f1-f4;
738 retVal = (-(f4*v1) + f1*v4)/f1mf4;
745 double f1mf4 = f1-f4;
746 double f1mf42 = f1mf4*f1mf4;
748 retVal = (-(d4*f1*f1mf4*f4) + f42*v1 + f12*v4 - 2*f1*f4*v4)/f1mf42;
758 double f1mf4 = f1-f4;
759 double f1mf42 = f1mf4*f1mf4;
760 double f1mf43 = f1mf42*f1mf4;
762 retVal = (d4*f12*f4*(-f1 + f4) + d1*f1*(-f1 + f4)*f42 + 3*f1*f42*v1 - f43*v1 + f13*v4 - 3*f12*f4*v4)/f1mf43;
779 double f1mf2 = f1-f2;
780 double f1mf3 = f1-f3;
781 double f1mf4 = f1-f4;
782 double f2mf3 = f2-f3;
783 double f2mf4 = f2-f4;
784 double f3mf4 = f3-f4;
786 retVal = (f1*f1mf3*f1mf4*f3*f3mf4*f4*v2 + f23*(f1*f1mf4*f4*v3 + f32*(-(f4*v1) + f1*v4) + f3*(f42*v1 - f12*v4)) + f2*(f12*f1mf4*f42*v3 + f33*(-(f42*v1) + f12*v4) + f32*(f43*v1 - f13*v4)) +
787 f22*(f1*f4*(-f12 + f42)*v3 + f33*(f4*v1 - f1*v4) + f3*(-(f43*v1) + f13*v4)))/(f1mf2*f1mf3*f1mf4*f2mf3*f2mf4*f3mf4);
809 double f1mf2 = f1-f2;
810 double f1mf3 = f1-f3;
811 double f1mf4 = f1-f4;
812 double f2mf3 = f2-f3;
813 double f2mf4 = f2-f4;
814 double f3mf4 = f3-f4;
816 double f1mf42 = f1mf4*f1mf4;
817 double f3mf42 = f3mf4*f3mf4;
818 double f2mf42 = f2mf4*f2mf4;
820 retVal = (-(d4*f1*f1mf2*f1mf3*f1mf4*f2*f2mf3*f2mf4*f3*f3mf4*f4) - f1*f1mf3*f1mf42*f3*f3mf42*f42*v2 +
821 f24*(-(f1*f1mf42*f42*v3) + f33*(f42*v1 + f12*v4 - 2*f1*f4*v4) + f3*f4*(f43*v1 + 2*f13*v4 - 3*f12*f4*v4) - f32*(2*f43*v1 + f13*v4 - 3*f1*f42*v4)) +
822 f2*f4*(f12*f1mf42*f43*v3 - f34*(f43*v1 + 2*f13*v4 - 3*f12*f4*v4) - f32*f4*(f44*v1 + 3*
f14*v4 - 4*f13*f4*v4) + 2*f33*(f44*v1 +
f14*v4 - 2*f12*f42*v4)) +
823 f22*(-(f1*f1mf42*(2*f1 + f4)*f43*v3) + f3*f42*(f44*v1 + 3*
f14*v4 - 4*f13*f4*v4) + f34*(2*f43*v1 + f13*v4 - 3*f1*f42*v4) - f33*(3*f44*v1 +
f14*v4 - 4*f1*f43*v4)) +
824 f23*(f1*f1mf42*(f1 + 2*f4)*f42*v3 - f34*(f42*v1 + f12*v4 - 2*f1*f4*v4) + f32*(3*f44*v1 +
f14*v4 - 4*f1*f43*v4) - 2*f3*(f45*v1 +
f14*f4*v4 - 2*f12*f43*v4)))/(f1mf2*f1mf3*f1mf42*f2mf3*f2mf42*f3mf42);
844 double f1mf4 = f1-f4;
845 double f1mf3 = f1-f3;
846 double f3mf4 = f3-f4;
848 double f1mf42 = f1mf4*f1mf4;
849 double f1mf32 = f1mf3*f1mf3;
850 double f3mf42 = f3mf4*f3mf4;
852 double f1mf43 = f1mf42*f1mf4;
854 retVal = (-(d4*f12*f1mf32*f1mf4*f3*f3mf4*f4) + d1*f1*f1mf3*f1mf4*f3*f3mf42*f42 - 4*f12*f33*f42*v1 + 3*f1*f34*f42*v1 + 8*f12*f32*f43*v1 - 4*f1*f33*f43*v1 - f34*f43*v1 - 4*f12*f3*f44*v1 - f1*f32*f44*v1 +
855 2*f33*f44*v1 + 2*f1*f3*f45*v1 - f32*f45*v1 + f15*f42*v3 - 3*
f14*f43*v3 + 3*f13*f44*v3 - f12*f45*v3 + f15*f32*v4 - 2*
f14*f33*v4 + f13*f34*v4 - 2*f15*f3*f4*v4 +
f14*f32*f4*v4 + 4*f13*f33*f4*v4 -
856 3*f12*f34*f4*v4 + 4*
f14*f3*f42*v4 - 8*f13*f32*f42*v4 + 4*f12*f33*f42*v4)/(f1mf32*f1mf43*f3mf42);
867 double f1mf2 = f1-f2;
868 double f1mf4 = f1-f4;
869 double f2mf4 = f2-f4;
871 double f1mf22 = f1mf2*f1mf2;
872 double f2mf42 = f2mf4*f2mf4;
873 double f1mf43 = f1mf4*f1mf4*f1mf4;
875 retVal = ((-(d4*f12*f1mf22*f1mf4*f2*f2mf4*f4) + d1*f1*f1mf2*f1mf4*f2*f2mf42*f42 + f42*(f2*f2mf42*(-4*f12 + 3*f1*f2 + 2*f1*f4 - f2*f4)*v1 + f12*f1mf43*v2) +
876 f12*f1mf22*f2*(f1*f2 - 2*f1*f4 - 3*f2*f4 + 4*f42)*v4)/(f1mf22*f1mf43*f2mf42));
905 double f1mf2 = f1-f2;
906 double f1mf3 = f1-f3;
907 double f1mf4 = f1-f4;
908 double f2mf3 = f2-f3;
909 double f2mf4 = f2-f4;
910 double f3mf4 = f3-f4;
912 double f1mf22 = f1mf2*f1mf2;
913 double f1mf32 = f1mf3*f1mf3;
914 double f1mf42 = f1mf4*f1mf4;
915 double f2mf42 = f2mf4*f2mf4;
916 double f3mf42 = f3mf4*f3mf4;
917 double f1mf43 = f1mf42*f1mf4;
920 (-(d4*f12*f1mf22*f1mf32*f1mf4*f2*f2mf3*f2mf4*f3*f3mf4*f4) - d1*f1*f1mf2*f1mf3*f1mf4*f2*f2mf3*f2mf42*f3*f3mf42*f42 + 5*f13*f24*f33*f42*v1 - 4*f12*f25*f33*f42*v1 - 5*f13*f23*f34*f42*v1 +
921 3*f1*f25*f34*f42*v1 + 4*f12*f23*f35*f42*v1 - 3*f1*f24*f35*f42*v1 - 10*f13*f24*f32*f43*v1 + 8*f12*f25*f32*f43*v1 + 5*f12*f24*f33*f43*v1 - 4*f1*f25*f33*f43*v1 + 10*f13*f22*f34*f43*v1 -
922 5*f12*f23*f34*f43*v1 - f25*f34*f43*v1 - 8*f12*f22*f35*f43*v1 + 4*f1*f23*f35*f43*v1 + f24*f35*f43*v1 + 5*f13*f24*f3*f44*v1 - 4*f12*f25*f3*f44*v1 + 15*f13*f23*f32*f44*v1 -
923 10*f12*f24*f32*f44*v1 - f1*f25*f32*f44*v1 - 15*f13*f22*f33*f44*v1 + 5*f1*f24*f33*f44*v1 + 2*f25*f33*f44*v1 - 5*f13*f2*f34*f44*v1 + 10*f12*f22*f34*f44*v1 - 5*f1*f23*f34*f44*v1 +
924 4*f12*f2*f35*f44*v1 + f1*f22*f35*f44*v1 - 2*f23*f35*f44*v1 - 10*f13*f23*f3*f45*v1 + 5*f12*f24*f3*f45*v1 + 2*f1*f25*f3*f45*v1 - f12*f23*f32*f45*v1 + 2*f1*f24*f32*f45*v1 - f25*f32*f45*v1 +
925 10*f13*f2*f33*f45*v1 + f12*f22*f33*f45*v1 - 3*f24*f33*f45*v1 - 5*f12*f2*f34*f45*v1 - 2*f1*f22*f34*f45*v1 + 3*f23*f34*f45*v1 - 2*f1*f2*f35*f45*v1 + f22*f35*f45*v1 + 5*f13*f22*f3*f46*v1 +
926 2*f12*f23*f3*f46*v1 - 4*f1*f24*f3*f46*v1 - 5*f13*f2*f32*f46*v1 - f1*f23*f32*f46*v1 + 2*f24*f32*f46*v1 - 2*f12*f2*f33*f46*v1 + f1*f22*f33*f46*v1 + 4*f1*f2*f34*f46*v1 - 2*f22*f34*f46*v1 -
927 3*f12*f22*f3*f47*v1 + 2*f1*f23*f3*f47*v1 + 3*f12*f2*f32*f47*v1 - f23*f32*f47*v1 - 2*f1*f2*f33*f47*v1 + f22*f33*f47*v1 - f17*f33*f42*v2 + 2*f16*f34*f42*v2 - f15*f35*f42*v2 + 2*f17*f32*f43*v2 -
928 f16*f33*f43*v2 - 4*f15*f34*f43*v2 + 3*
f14*f35*f43*v2 - f17*f3*f44*v2 - 4*f16*f32*f44*v2 + 8*f15*f33*f44*v2 - 3*f13*f35*f44*v2 + 3*f16*f3*f45*v2 - 8*
f14*f33*f45*v2 + 4*f13*f34*f45*v2 +
929 f12*f35*f45*v2 - 3*f15*f3*f46*v2 + 4*
f14*f32*f46*v2 + f13*f33*f46*v2 - 2*f12*f34*f46*v2 +
f14*f3*f47*v2 - 2*f13*f32*f47*v2 + f12*f33*f47*v2 + f17*f23*f42*v3 - 2*f16*f24*f42*v3 +
930 f15*f25*f42*v3 - 2*f17*f22*f43*v3 + f16*f23*f43*v3 + 4*f15*f24*f43*v3 - 3*
f14*f25*f43*v3 + f17*f2*f44*v3 + 4*f16*f22*f44*v3 - 8*f15*f23*f44*v3 + 3*f13*f25*f44*v3 - 3*f16*f2*f45*v3 +
931 8*
f14*f23*f45*v3 - 4*f13*f24*f45*v3 - f12*f25*f45*v3 + 3*f15*f2*f46*v3 - 4*
f14*f22*f46*v3 - f13*f23*f46*v3 + 2*f12*f24*f46*v3 -
f14*f2*f47*v3 + 2*f13*f22*f47*v3 - f12*f23*f47*v3 +
932 f12*f1mf22*f1mf32*f2*f2mf3*f3*(f4*(-3*f2*f3 + 4*(f2 + f3)*f4 - 5*f42) + f1*(f2*f3 - 2*(f2 + f3)*f4 + 3*f42))*v4)/(f1mf22*f1mf32*f1mf43*f2mf3*f2mf42*f3mf42)
945 static double IMRPhenomXHM_Intermediate_Amp_delta1(
double d1,
double d4,
double v1,
double v2,
double v3,
double v4,
double f1,
double f2,
double f3,
double f4,
int IntAmpFlag)
948 switch ( IntAmpFlag )
952 double f1mf4 = f1-f4;
954 retVal = (v1 - v4)/f1mf4;
961 double f1mf42 = (f1-f4)*(f1-f4);
963 retVal = (d4*(f12 - f42) + 2*f4*(-v1 + v4))/f1mf42;
971 double f1mf4 = f1-f4;
972 double f1mf42 = f1mf4*f1mf4;
973 double f1mf43 = f1mf42*f1mf4;
975 retVal = (d4*f1*f1mf4*(f1 + 2*f4) - f4*(d1*(-2*f12 + f1*f4 + f42) + 6*f1*(v1 - v4)))/f1mf43;
992 double f1mf2 = f1-f2;
993 double f1mf3 = f1-f3;
994 double f1mf4 = f1-f4;
995 double f2mf3 = f2-f3;
996 double f2mf4 = f2-f4;
997 double f3mf4 = f3-f4;
999 retVal = (f12*f1mf4*f42*(v2 - v3) + f33*(f42*(v1 - v2) + f12*(v2 - v4)) + f22*(f43*(v1 - v3) + f13*(v3 - v4) + f33*(-v1 + v4)) + f32*(f43*(-v1 + v2) + f13*(-v2 + v4)) +
1000 f23*(f42*(-v1 + v3) + f32*(v1 - v4) + f12*(-v3 + v4)))/(f1mf2*f1mf3*f1mf4*f2mf3*f2mf4*f3mf4);
1006 double f13 = f12*f1;
1007 double f14 = f13*f1;
1010 double f23 = f22*f2;
1011 double f24 = f23*f2;
1014 double f33 = f32*f3;
1015 double f34 = f33*f3;
1018 double f43 = f42*f4;
1019 double f44 = f43*f4;
1021 double f1mf2 = f1-f2;
1022 double f1mf3 = f1-f3;
1023 double f1mf4 = f1-f4;
1024 double f2mf3 = f2-f3;
1025 double f2mf4 = f2-f4;
1026 double f3mf4 = f3-f4;
1028 double f1mf42 = f1mf4*f1mf4;
1029 double f2mf42 = f2mf4*f2mf4;
1030 double f3mf42 = f3mf4*f3mf4;
1032 double v1mv2 = v1-v2;
1033 double v2mv3 = v2-v3;
1034 double v2mv4 = v2-v4;
1035 double v1mv3 = v1-v3;
1036 double v1mv4 = v1-v4;
1037 double v3mv4 = v3-v4;
1039 retVal =(d4*f1mf4*f2mf4*f3mf4*(f1*f2*f3 + f2*f3*f4 + f1*(f2 + f3)*f4) + (f4*(f12*f1mf42*f43*v2mv3 + f34*(f43*v1mv2 +
1040 3*f12*f4*v2mv4 + 2*f13*(-v2 + v4)) + f32*f4*(f44*v1mv2 + 4*f13*f4*v2mv4 + 3*
f14*(-v2 + v4)) + 2*f33*(f44*(-v1 + v2)
1041 +
f14*v2mv4 + 2*f12*f42*(-v2 + v4)) + 2*f23*(f44*v1mv3 + f34*v1mv4 + 2*f12*f42*v3mv4 + 2*f32*f42*(-v1 + v4) +
f14*(-v3 + v4))
1042 + f24*(3*f32*f4*v1mv4 + f43*(-v1 + v3) + 2*f13*v3mv4 + 2*f33*(-v1 + v4) + 3*f12*f4*(-v3 + v4)) + f22*f4*(4*f33*f4*v1mv4 + f44*(-v1 + v3)
1043 + 3*
f14*v3mv4 + 3*f34*(-v1 + v4) + 4*f13*f4*(-v3 + v4))))/(f1mf2*f1mf3*f2mf3))/(f1mf42*f2mf42*f3mf42);
1050 double f13 = f12*f1;
1051 double f14 = f13*f1;
1052 double f15 =
f14*f1;
1055 double f43 = f42*f4;
1056 double f44 = f43*f4;
1057 double f45 = f44*f4;
1060 double f33 = f32*f3;
1061 double f34 = f33*f3;
1063 double f1mf4 = f1-f4;
1064 double f1mf3 = f1-f3;
1065 double f3mf4 = f3-f4;
1067 double f1mf42 = f1mf4*f1mf4;
1068 double f1mf32 = f1mf3*f1mf3;
1069 double f3mf42 = f3mf4*f3mf4;
1071 double f1mf43 = f1mf42*f1mf4;
1073 retVal = (d4*f15*f32 - 2*d4*
f14*f33 + d4*f13*f34 + d4*
f14*f32*f4 - 2*d1*f13*f33*f4 - 2*d4*f13*f33*f4 + 2*d1*f12*f34*f4 + d4*f12*f34*f4 - d4*f15*f42 + 3*d1*f13*f32*f42 + d4*f13*f32*f42 - 2*d1*f12*f33*f42 +
1074 2*d4*f12*f33*f42 - d1*f1*f34*f42 - 2*d4*f1*f34*f42 + d4*
f14*f43 - d1*f12*f32*f43 - 3*d4*f12*f32*f43 + 2*d1*f1*f33*f43 + 2*d4*f1*f33*f43 - d1*f34*f43 - d1*f13*f44 - d1*f1*f32*f44 + 2*d1*f33*f44 +
1075 d1*f12*f45 - d1*f32*f45 + 8*f12*f33*f4*v1 - 6*f1*f34*f4*v1 - 12*f12*f32*f42*v1 + 8*f1*f33*f42*v1 + 4*f12*f44*v1 - 2*f1*f45*v1 - 2*f15*f4*v3 + 4*
f14*f42*v3 - 4*f12*f44*v3 + 2*f1*f45*v3 +
1076 2*f15*f4*v4 - 8*f12*f33*f4*v4 + 6*f1*f34*f4*v4 - 4*
f14*f42*v4 + 12*f12*f32*f42*v4 - 8*f1*f33*f42*v4)/(f1mf32*f1mf43*f3mf42);
1079 printf(
"\ndelta1 = %.16f", retVal);
1080 printf(
"\nf1 = %.16f", f1);
1081 printf(
"\nf2 = %.16f", f2);
1082 printf(
"\nf3 = %.16f", f3);
1083 printf(
"\nf4 = %.16f", f4);
1084 printf(
"\nv1 = %.16f", v1);
1085 printf(
"\nv2 = %.16f", v2);
1086 printf(
"\nv3 = %.16f", v3);
1087 printf(
"\nv4 = %.16f", v4);
1088 printf(
"\nd1 = %.16f", d1);
1089 printf(
"\nd4 = %.16f", d4);
1098 double f13 = f12*f1;
1099 double f14 = f13*f1;
1102 double f23 = f22*f2;
1103 double f24 = f23*f2;
1106 double f43 = f42*f4;
1107 double f44 = f43*f4;
1109 double f1mf2 = f1-f2;
1110 double f1mf4 = f1-f4;
1111 double f2mf4 = f2-f4;
1113 double f1mf22 = f1mf2*f1mf2;
1114 double f2mf42 = f2mf4*f2mf4;
1115 double f1mf43 = f1mf4*f1mf4*f1mf4;
1117 retVal = ((d4*f1*f1mf22*f1mf4*f2mf4*(2*f2*f4 + f1*(f2 + f4)) + f4*(-(d1*f1mf2*f1mf4*f2mf42*(2*f1*f2 + (f1 + f2)*f4)) -
1118 2*f1*(f44*(v1 - v2) + 3*f24*(v1 - v4) +
f14*(v2 - v4) + 4*f23*f4*(-v1 + v4)
1119 + 2*f13*f4*(-v2 + v4) + f1*(2*f43*(-v1 + v2) + 6*f22*f4*(v1 - v4) + 4*f23*(-v1 + v4)))))/(f1mf22*f1mf43*f2mf42));
1126 double f13 = f12*f1;
1127 double f14 = f13*f1;
1128 double f15 =
f14*f1;
1129 double f16 = f15*f1;
1132 double f23 = f22*f2;
1133 double f24 = f23*f2;
1134 double f25 = f24*f2;
1137 double f33 = f32*f3;
1138 double f34 = f33*f3;
1139 double f35 = f34*f3;
1142 double f43 = f42*f4;
1143 double f44 = f43*f4;
1144 double f45 = f44*f4;
1146 double f1mf2 = f1-f2;
1147 double f1mf3 = f1-f3;
1148 double f1mf4 = f1-f4;
1149 double f2mf3 = f2-f3;
1150 double f2mf4 = f2-f4;
1151 double f3mf4 = f3-f4;
1153 double f1mf22 = f1mf2*f1mf2;
1154 double f1mf32 = f1mf3*f1mf3;
1155 double f2mf42 = f2mf4*f2mf4;
1156 double f3mf42 = f3mf4*f3mf4;
1157 double f1mf43 = f1mf4*f1mf4*f1mf4;
1160 (d4*f1*f1mf22*f1mf32*f1mf4*f2mf3*f2mf4*f3mf4*(f1*f2*f3 + 2*f2*f3*f4 + f1*(f2 + f3)*f4) +
1161 f4*(d1*f1mf2*f1mf3*f1mf4*f2mf3*f2mf42*f3mf42*(2*f1*f2*f3 + f2*f3*f4 + f1*(f2 + f3)*f4) +
1162 f1*(f16*(f43*(v2 - v3) + 2*f33*(v2 - v4) + 3*f22*f4*(v3 - v4) + 3*f32*f4*(-v2 + v4) + 2*f23*(-v3 + v4)) +
1163 f13*f4*(f45*(-v2 + v3) + 5*f34*f4*(v2 - v4) + 4*f25*(v3 - v4) + 4*f35*(-v2 + v4) + 5*f24*f4*(-v3 + v4)) +
1164 f14*(3*f45*(v2 - v3) + 2*f35*(v2 - v4) + 5*f34*f4*(v2 - v4) + 10*f23*f42*(v3 - v4) + 10*f33*f42*(-v2 + v4) + 2*f25*(-v3 + v4) + 5*f24*f4*(-v3 + v4)) +
1165 f15*(3*f44*(-v2 + v3) + 2*f33*f4*(v2 - v4) + 5*f32*f42*(v2 - v4) + 4*f24*(v3 - v4) + 4*f34*(-v2 + v4) + 2*f23*f4*(-v3 + v4) + 5*f22*f42*(-v3 + v4)) -
1166 5*f12*(-(f32*f3mf42*f43*(v1 - v2)) + 2*f23*(f44*(-v1 + v3) + 2*f32*f42*(v1 - v4) + f34*(-v1 + v4)) + f24*(f43*(v1 - v3) + 2*f33*(v1 - v4) + 3*f32*f4*(-v1 + v4)) +
1167 f22*f4*(f44*(v1 - v3) + 3*f34*(v1 - v4) + 4*f33*f4*(-v1 + v4))) +
1168 f1*(-(f32*f3mf42*(4*f3 + 3*f4)*f43*(v1 - v2)) + 2*f23*(f45*(-v1 + v3) + 5*f34*f4*(v1 - v4) + 4*f35*(-v1 + v4)) + 4*f25*(f43*(v1 - v3) + 2*f33*(v1 - v4) + 3*f32*f4*(-v1 + v4)) -
1169 5*f24*f4*(f43*(v1 - v3) + 2*f33*(v1 - v4) + 3*f32*f4*(-v1 + v4)) + 3*f22*f4*(f45*(v1 - v3) + 4*f35*(v1 - v4) + 5*f34*f4*(-v1 + v4))) -
1170 2*(-(f33*f3mf42*f44*(v1 - v2)) + f24*(2*f45*(-v1 + v3) + 5*f33*f42*(v1 - v4) + 3*f35*(-v1 + v4)) + f25*(f44*(v1 - v3) + 3*f34*(v1 - v4) + 4*f33*f4*(-v1 + v4)) +
1171 f23*f4*(f45*(v1 - v3) + 4*f35*(v1 - v4) + 5*f34*f4*(-v1 + v4))))))/(f1mf22*f1mf32*f1mf43*f2mf3*f2mf42*f3mf42)
1183 static double IMRPhenomXHM_Intermediate_Amp_delta2(
double d1,
double d4,
double v1,
double v2,
double v3,
double v4,
double f1,
double f2,
double f3,
double f4,
int IntAmpFlag)
1187 switch ( IntAmpFlag )
1196 double f1mf4 = f1-f4;
1197 double f1mf42 = f1mf4*f1mf4;
1199 retVal = (-(d4*f1mf4) + v1 - v4)/f1mf42;
1207 double f1mf4 = f1-f4;
1208 double f1mf42 = f1mf4*f1mf4;
1209 double f1mf43 = f1mf42*f1mf4;
1211 retVal = (-(d1*(f12 + f1*f4 - 2*f42)) + d4*(-2*f12 + f1*f4 + f42) + 3*(f1 + f4)*(v1 - v4))/f1mf43;
1217 double f13 = f12*f1;
1220 double f23 = f22*f2;
1223 double f33 = f32*f3;
1226 double f43 = f42*f4;
1228 double f1mf2 = f1-f2;
1229 double f1mf3 = f1-f3;
1230 double f1mf4 = f1-f4;
1231 double f2mf3 = f2-f3;
1232 double f2mf4 = f2-f4;
1233 double f3mf4 = f3-f4;
1235 retVal = (-(f1*f4*(f12 - f42)*(v2 - v3)) + f3*(f43*(v1 - v2) + f13*(v2 - v4)) + f23*(f4*(v1 - v3) + f1*(v3 - v4) + f3*(-v1 + v4)) + f33*(f4*(-v1 + v2) + f1*(-v2 + v4)) +
1236 f2*(f43*(-v1 + v3) + f33*(v1 - v4) + f13*(-v3 + v4)))/(f1mf2*f1mf3*f1mf4*f2mf3*f2mf4*f3mf4);
1242 double f13 = f12*f1;
1243 double f14 = f13*f1;
1246 double f23 = f22*f2;
1247 double f24 = f23*f2;
1250 double f33 = f32*f3;
1251 double f34 = f33*f3;
1254 double f43 = f42*f4;
1255 double f44 = f43*f4;
1256 double f46 = f44*f42;
1258 double f1mf2 = f1-f2;
1259 double f1mf3 = f1-f3;
1260 double f1mf4 = f1-f4;
1261 double f2mf3 = f2-f3;
1262 double f2mf4 = f2-f4;
1263 double f3mf4 = f3-f4;
1265 double f1mf42 = f1mf4*f1mf4;
1266 double f2mf42 = f2mf4*f2mf4;
1267 double f3mf42 = f3mf4*f3mf4;
1269 double v1mv3 = v1-v3;
1270 double v1mv4 = v1-v4;
1271 double v3mv4 = v3-v4;
1273 retVal = (-(d4*f1mf2*f1mf3*f1mf4*f2mf3*f2mf4*f3mf4*(f3*f4 + f2*(f3 + f4) + f1*(f2 + f3 + f4))) - 2*f34*f43*v1 + 3*f33*f44*v1 - f3*f46*v1 -
f14*f33*v2 + f13*f34*v2 + 3*
f14*f3*f42*v2 - 3*f1*f34*f42*v2 -
1274 2*
f14*f43*v2 - 4*f13*f3*f43*v2 + 4*f1*f33*f43*v2 + 2*f34*f43*v2 + 3*f13*f44*v2 - 3*f33*f44*v2 - f1*f46*v2 + f3*f46*v2 + 2*
f14*f43*v3 - 3*f13*f44*v3 + f1*f46*v3 +
1275 f2*f42*(f44*v1mv3 + 3*f34*v1mv4 - 4*f33*f4*v1mv4 - 3*
f14*v3mv4 + 4*f13*f4*v3mv4) + f24*(2*f43*v1mv3 + f33*v1mv4 - 3*f3*f42*v1mv4 - f13*v3mv4 + 3*f1*f42*v3mv4) +
1276 f23*(-3*f44*v1mv3 - f34*v1mv4 + 4*f3*f43*v1mv4 +
f14*v3mv4 - 4*f1*f43*v3mv4) +
f14*f33*v4 - f13*f34*v4 - 3*
f14*f3*f42*v4 + 3*f1*f34*f42*v4 + 4*f13*f3*f43*v4 - 4*f1*f33*f43*v4)/
1277 (f1mf2*f1mf3*f1mf42*f2mf3*f2mf42*f3mf42);
1283 double f13 = f12*f1;
1284 double f14 = f13*f1;
1285 double f15 =
f14*f1;
1288 double f43 = f42*f4;
1289 double f44 = f43*f4;
1290 double f45 = f44*f4;
1293 double f33 = f32*f3;
1294 double f34 = f33*f3;
1296 double f1mf4 = f1-f4;
1297 double f1mf3 = f1-f3;
1298 double f3mf4 = f3-f4;
1300 double f1mf42 = f1mf4*f1mf4;
1301 double f1mf32 = f1mf3*f1mf3;
1302 double f3mf42 = f3mf4*f3mf4;
1304 double f1mf43 = f1mf42*f1mf4;
1306 retVal = (-(d4*f1mf32*f1mf4*f3mf4*(f12 + f3*f4 + 2*f1*(f3 + f4))) + d1*f1mf3*f1mf4*f3mf42*(f1*f3 + 2*(f1 + f3)*f4 + f42) - 4*f12*f33*v1 + 3*f1*f34*v1 - 4*f1*f33*f4*v1 + 3*f34*f4*v1 + 12*f12*f3*f42*v1 -
1307 4*f33*f42*v1 - 8*f12*f43*v1 + f1*f44*v1 + f45*v1 + f15*v3 +
f14*f4*v3 - 8*f13*f42*v3 + 8*f12*f43*v3 - f1*f44*v3 - f45*v3 -
1308 f1mf32*(f13 + f3*(3*f3 - 4*f4)*f4 + f12*(2*f3 + f4) + f1*(3*f3 - 4*f4)*(f3 + 2*f4))*v4)/(f1mf32*f1mf43*f3mf42);
1314 double f13 = f12*f1;
1315 double f14 = f13*f1;
1316 double f15 =
f14*f1;
1319 double f23 = f22*f2;
1320 double f24 = f23*f2;
1323 double f43 = f42*f4;
1324 double f44 = f43*f4;
1325 double f45 = f44*f4;
1327 double f1mf2 = f1-f2;
1328 double f1mf4 = f1-f4;
1329 double f2mf4 = f2-f4;
1331 double f1mf22 = f1mf2*f1mf2;
1332 double f2mf42 = f2mf4*f2mf4;
1333 double f1mf43 = f1mf4*f1mf4*f1mf4;
1335 retVal = ((-(d4*f1mf22*f1mf4*f2mf4*(f12 + f2*f4 + 2*f1*(f2 + f4))) + d1*f1mf2*f1mf4*f2mf42*(f1*f2 + 2*(f1 + f2)*f4 + f42)
1336 - 4*f12*f23*v1 + 3*f1*f24*v1 - 4*f1*f23*f4*v1 + 3*f24*f4*v1 + 12*f12*f2*f42*v1 -
1337 4*f23*f42*v1 - 8*f12*f43*v1 + f1*f44*v1 + f45*v1 + f15*v2 +
f14*f4*v2 - 8*f13*f42*v2 + 8*f12*f43*v2 - f1*f44*v2 - f45*v2 -
1338 f1mf22*(f13 + f2*(3*f2 - 4*f4)*f4 + f12*(2*f2 + f4) + f1*(3*f2 - 4*f4)*(f2 + 2*f4))*v4)/(f1mf22*f1mf43*f2mf42));
1345 double f13 = f12*f1;
1346 double f14 = f13*f1;
1347 double f15 =
f14*f1;
1348 double f16 = f15*f1;
1349 double f17 = f16*f1;
1352 double f23 = f22*f2;
1353 double f24 = f23*f2;
1354 double f25 = f24*f2;
1357 double f33 = f32*f3;
1358 double f34 = f33*f3;
1359 double f35 = f34*f3;
1362 double f43 = f42*f4;
1363 double f44 = f43*f4;
1364 double f45 = f44*f4;
1365 double f46 = f45*f4;
1366 double f47 = f46*f4;
1368 double f1mf2 = f1-f2;
1369 double f1mf3 = f1-f3;
1370 double f1mf4 = f1-f4;
1371 double f2mf3 = f2-f3;
1372 double f2mf4 = f2-f4;
1373 double f3mf4 = f3-f4;
1375 double f1mf22 = f1mf2*f1mf2;
1376 double f1mf32 = f1mf3*f1mf3;
1377 double f2mf42 = f2mf4*f2mf4;
1378 double f3mf42 = f3mf4*f3mf4;
1379 double f1mf43 = f1mf4*f1mf4*f1mf4;
1382 (-(d4*f1mf22*f1mf32*f1mf4*f2mf3*f2mf4*f3mf4*(f2*f3*f4 + f12*(f2 + f3 + f4) + 2*f1*(f2*f3 + (f2 + f3)*f4))) -
1383 d1*f1mf2*f1mf3*f1mf4*f2mf3*f2mf42*f3mf42*(f1*f2*f3 + 2*(f2*f3 + f1*(f2 + f3))*f4 + (f1 + f2 + f3)*f42) + 5*f13*f24*f33*v1 - 4*f12*f25*f33*v1 - 5*f13*f23*f34*v1 + 3*f1*f25*f34*v1 +
1384 4*f12*f23*f35*v1 - 3*f1*f24*f35*v1 + 5*f12*f24*f33*f4*v1 - 4*f1*f25*f33*f4*v1 - 5*f12*f23*f34*f4*v1 + 3*f25*f34*f4*v1 + 4*f1*f23*f35*f4*v1 - 3*f24*f35*f4*v1 - 15*f13*f24*f3*f42*v1 +
1385 12*f12*f25*f3*f42*v1 + 5*f1*f24*f33*f42*v1 - 4*f25*f33*f42*v1 + 15*f13*f2*f34*f42*v1 - 5*f1*f23*f34*f42*v1 - 12*f12*f2*f35*f42*v1 + 4*f23*f35*f42*v1 + 10*f13*f24*f43*v1 - 8*f12*f25*f43*v1 +
1386 20*f13*f23*f3*f43*v1 - 15*f12*f24*f3*f43*v1 - 20*f13*f2*f33*f43*v1 + 5*f24*f33*f43*v1 - 10*f13*f34*f43*v1 + 15*f12*f2*f34*f43*v1 - 5*f23*f34*f43*v1 + 8*f12*f35*f43*v1 - 15*f13*f23*f44*v1 +
1387 10*f12*f24*f44*v1 + f1*f25*f44*v1 + 15*f13*f33*f44*v1 - 10*f12*f34*f44*v1 - f1*f35*f44*v1 + f12*f23*f45*v1 - 2*f1*f24*f45*v1 + f25*f45*v1 - f12*f33*f45*v1 + 2*f1*f34*f45*v1 - f35*f45*v1 +
1388 5*f13*f2*f46*v1 + f1*f23*f46*v1 - 2*f24*f46*v1 - 5*f13*f3*f46*v1 - f1*f33*f46*v1 + 2*f34*f46*v1 - 3*f12*f2*f47*v1 + f23*f47*v1 + 3*f12*f3*f47*v1 - f33*f47*v1 - f17*f33*v2 + 2*f16*f34*v2 -
1389 f15*f35*v2 - f16*f33*f4*v2 + 2*f15*f34*f4*v2 -
f14*f35*f4*v2 + 3*f17*f3*f42*v2 - f15*f33*f42*v2 - 10*
f14*f34*f42*v2 + 8*f13*f35*f42*v2 - 2*f17*f43*v2 - 5*f16*f3*f43*v2 + 15*
f14*f33*f43*v2 -
1390 8*f12*f35*f43*v2 + 4*f16*f44*v2 - 15*f13*f33*f44*v2 + 10*f12*f34*f44*v2 + f1*f35*f44*v2 + f12*f33*f45*v2 - 2*f1*f34*f45*v2 + f35*f45*v2 - 4*
f14*f46*v2 + 5*f13*f3*f46*v2 + f1*f33*f46*v2 -
1391 2*f34*f46*v2 + 2*f13*f47*v2 - 3*f12*f3*f47*v2 + f33*f47*v2 + f17*f23*v3 - 2*f16*f24*v3 + f15*f25*v3 + f16*f23*f4*v3 - 2*f15*f24*f4*v3 +
f14*f25*f4*v3 - 3*f17*f2*f42*v3 + f15*f23*f42*v3 +
1392 10*
f14*f24*f42*v3 - 8*f13*f25*f42*v3 + 2*f17*f43*v3 + 5*f16*f2*f43*v3 - 15*
f14*f23*f43*v3 + 8*f12*f25*f43*v3 - 4*f16*f44*v3 + 15*f13*f23*f44*v3 - 10*f12*f24*f44*v3 - f1*f25*f44*v3 -
1393 f12*f23*f45*v3 + 2*f1*f24*f45*v3 - f25*f45*v3 + 4*
f14*f46*v3 - 5*f13*f2*f46*v3 - f1*f23*f46*v3 + 2*f24*f46*v3 - 2*f13*f47*v3 + 3*f12*f2*f47*v3 - f23*f47*v3 -
1394 f1mf22*f1mf32*f2mf3*(f13*(f22 + f2*f3 + f32 - 3*f42) + f2*f3*f4*(3*f2*f3 - 4*(f2 + f3)*f4 + 5*f42) + f1*(f2*f3 + 2*(f2 + f3)*f4)*(3*f2*f3 - 4*(f2 + f3)*f4 + 5*f42) +
1395 f12*(2*f2*f3*(f2 + f3) + (f22 + f2*f3 + f32)*f4 - 6*(f2 + f3)*f42 + 5*f43))*v4)/(f1mf22*f1mf32*f1mf43*f2mf3*f2mf42*f3mf42)
1409 static double IMRPhenomXHM_Intermediate_Amp_delta3(
double d1,
double d4,
double v1,
double v2,
double v3,
double v4,
double f1,
double f2,
double f3,
double f4,
int IntAmpFlag)
1413 switch ( IntAmpFlag )
1427 double f1mf4 = f1-f4;
1428 double f1mf42 = f1mf4*f1mf4;
1429 double f1mf43 = f1mf42*f1mf4;
1431 retVal = (d1*f1mf4 + d4*f1mf4 - 2*v1 + 2*v4)/f1mf43;
1444 double f1mf2 = f1-f2;
1445 double f1mf3 = f1-f3;
1446 double f1mf4 = f1-f4;
1447 double f2mf3 = f2-f3;
1448 double f2mf4 = f2-f4;
1449 double f3mf4 = f3-f4;
1451 retVal = (f1*f1mf4*f4*(v2 - v3) + f32*(f4*(v1 - v2) + f1*(v2 - v4)) + f2*(f42*(v1 - v3) + f12*(v3 - v4) + f32*(-v1 + v4)) + f3*(f42*(-v1 + v2) + f12*(-v2 + v4)) +
1452 f22*(f4*(-v1 + v3) + f3*(v1 - v4) + f1*(-v3 + v4)))/(f1mf2*f1mf3*f1mf4*f2mf3*f2mf4*f3mf4);
1458 double f13 = f12*f1;
1459 double f14 = f13*f1;
1462 double f23 = f22*f2;
1463 double f24 = f23*f2;
1466 double f34 = f32*f32;
1469 double f43 = f42*f4;
1470 double f44 = f43*f4;
1471 double f45 = f44*f4;
1473 double f1mf2 = f1-f2;
1474 double f1mf3 = f1-f3;
1475 double f1mf4 = f1-f4;
1476 double f2mf3 = f2-f3;
1477 double f2mf4 = f2-f4;
1478 double f3mf4 = f3-f4;
1480 double f1mf42 = f1mf4*f1mf4;
1481 double f2mf42 = f2mf4*f2mf4;
1482 double f3mf42 = f3mf4*f3mf4;
1484 double v1mv3 = v1-v3;
1485 double v1mv4 = v1-v4;
1486 double v3mv4 = v3-v4;
1488 retVal = (d4*f1mf2*f1mf3*f1mf4*f2mf3*f2mf4*f3mf4*(f1 + f2 + f3 + f4) + f34*f42*v1 - 3*f32*f44*v1 + 2*f3*f45*v1 +
f14*f32*v2 - f12*f34*v2 - 2*
f14*f3*f4*v2 + 2*f1*f34*f4*v2 +
f14*f42*v2 - f34*f42*v2 +
1489 4*f12*f3*f43*v2 - 4*f1*f32*f43*v2 - 3*f12*f44*v2 + 3*f32*f44*v2 + 2*f1*f45*v2 - 2*f3*f45*v2 -
f14*f42*v3 + 3*f12*f44*v3 - 2*f1*f45*v3 +
1490 f24*(-(f42*v1mv3) - f32*v1mv4 + 2*f3*f4*v1mv4 + f12*v3mv4 - 2*f1*f4*v3mv4) - 2*f2*f4*(f44*v1mv3 + f34*v1mv4 - 2*f32*f42*v1mv4 -
f14*v3mv4 + 2*f12*f42*v3mv4) +
1491 f22*(3*f44*v1mv3 + f34*v1mv4 - 4*f3*f43*v1mv4 -
f14*v3mv4 + 4*f1*f43*v3mv4) -
f14*f32*v4 + f12*f34*v4 + 2*
f14*f3*f4*v4 - 2*f1*f34*f4*v4 - 4*f12*f3*f43*v4 + 4*f1*f32*f43*v4)/
1492 (f1mf2*f1mf3*f1mf42*f2mf3*f2mf42*f3mf42);
1499 double f13 = f12*f1;
1500 double f14 = f13*f1;
1503 double f43 = f42*f4;
1504 double f44 = f43*f4;
1507 double f33 = f32*f3;
1508 double f34 = f33*f3;
1510 double f1mf4 = f1-f4;
1511 double f1mf3 = f1-f3;
1512 double f3mf4 = f3-f4;
1514 double f1mf42 = f1mf4*f1mf4;
1515 double f1mf32 = f1mf3*f1mf3;
1516 double f3mf42 = f3mf4*f3mf4;
1518 double f1mf43 = f1mf42*f1mf4;
1520 retVal = (2*d4*
f14*f3 - d1*f13*f32 - 3*d4*f13*f32 + d1*f1*f34 + d4*f1*f34 - 2*d4*
f14*f4 + 2*d1*f13*f3*f4 + 2*d4*f13*f3*f4 - d1*f12*f32*f4 + d4*f12*f32*f4 - d1*f34*f4 - d4*f34*f4 - d1*f13*f42 + d4*f13*f42 +
1521 2*d1*f12*f3*f42 - 2*d4*f12*f3*f42 - d1*f1*f32*f42 + d4*f1*f32*f42 - d1*f12*f43 + d4*f12*f43 - 2*d1*f1*f3*f43 - 2*d4*f1*f3*f43 + 3*d1*f32*f43 + d4*f32*f43 + 2*d1*f1*f44 - 2*d1*f3*f44 +
1522 4*f12*f32*v1 - 2*f34*v1 - 8*f12*f3*f4*v1 + 4*f1*f32*f4*v1 + 4*f12*f42*v1 - 8*f1*f3*f42*v1 + 4*f32*f42*v1 + 4*f1*f43*v1 - 2*f44*v1 - 2*
f14*v3 + 4*f13*f4*v3 - 4*f1*f43*v3 + 2*f44*v3 + 2*
f14*v4 -
1523 4*f12*f32*v4 + 2*f34*v4 - 4*f13*f4*v4 + 8*f12*f3*f4*v4 - 4*f1*f32*f4*v4 - 4*f12*f42*v4 + 8*f1*f3*f42*v4 - 4*f32*f42*v4)/(f1mf32*f1mf43*f3mf42);
1530 double f13 = f12*f1;
1531 double f14 = f13*f1;
1534 double f23 = f22*f2;
1535 double f24 = f23*f2;
1538 double f43 = f42*f4;
1539 double f44 = f43*f4;
1541 double f1mf2 = f1-f2;
1542 double f1mf4 = f1-f4;
1543 double f2mf4 = f2-f4;
1545 double f1mf22 = f1mf2*f1mf2;
1546 double f2mf42 = f2mf4*f2mf4;
1547 double f1mf43 = f1mf4*f1mf4*f1mf4;
1549 retVal = ((d4*f1mf22*f1mf4*f2mf4*(2*f1 + f2 + f4) - d1*f1mf2*f1mf4*f2mf42*(f1 + f2 + 2*f4)
1550 + 2*(f44*(-v1 + v2) + 2*f12*f2mf42*(v1 - v4) + 2*f22*f42*(v1 - v4)
1551 + 2*f13*f4*(v2 - v4) + f24*(-v1 + v4) +
f14*(-v2 + v4) + 2*f1*f4*(f42*(v1 - v2) + f22*(v1 - v4) + 2*f2*f4*(-v1 + v4)))) / (f1mf22*f1mf43*f2mf42));
1559 double f13 = f12*f1;
1560 double f14 = f13*f1;
1561 double f15 =
f14*f1;
1562 double f16 = f15*f1;
1563 double f17 = f16*f1;
1566 double f23 = f22*f2;
1567 double f24 = f23*f2;
1568 double f25 = f24*f2;
1571 double f33 = f32*f3;
1572 double f34 = f33*f3;
1573 double f35 = f34*f3;
1576 double f43 = f42*f4;
1577 double f44 = f43*f4;
1578 double f45 = f44*f4;
1579 double f46 = f45*f4;
1580 double f47 = f46*f4;
1582 double f1mf2 = f1-f2;
1583 double f1mf3 = f1-f3;
1584 double f1mf4 = f1-f4;
1585 double f2mf3 = f2-f3;
1586 double f2mf4 = f2-f4;
1587 double f3mf4 = f3-f4;
1589 double f1mf22 = f1mf2*f1mf2;
1590 double f1mf32 = f1mf3*f1mf3;
1591 double f2mf42 = f2mf4*f2mf4;
1592 double f3mf42 = f3mf4*f3mf4;
1593 double f1mf43 = f1mf4*f1mf4*f1mf4;
1596 (d4*f1mf22*f1mf32*f1mf4*f2mf3*f2mf4*f3mf4*(f12 + f2*f3 + (f2 + f3)*f4 + 2*f1*(f2 + f3 + f4)) + d1*f1mf2*f1mf3*f1mf4*f2mf3*f2mf42*f3mf42*(f1*f2 + f1*f3 + f2*f3 + 2*(f1 + f2 + f3)*f4 + f42) -
1597 5*f13*f24*f32*v1 + 4*f12*f25*f32*v1 + 5*f13*f22*f34*v1 - 2*f25*f34*v1 - 4*f12*f22*f35*v1 + 2*f24*f35*v1 + 10*f13*f24*f3*f4*v1 - 8*f12*f25*f3*f4*v1 - 5*f12*f24*f32*f4*v1 + 4*f1*f25*f32*f4*v1 -
1598 10*f13*f2*f34*f4*v1 + 5*f12*f22*f34*f4*v1 + 8*f12*f2*f35*f4*v1 - 4*f1*f22*f35*f4*v1 - 5*f13*f24*f42*v1 + 4*f12*f25*f42*v1 + 10*f12*f24*f3*f42*v1 - 8*f1*f25*f3*f42*v1 - 5*f1*f24*f32*f42*v1 +
1599 4*f25*f32*f42*v1 + 5*f13*f34*f42*v1 - 10*f12*f2*f34*f42*v1 + 5*f1*f22*f34*f42*v1 - 4*f12*f35*f42*v1 + 8*f1*f2*f35*f42*v1 - 4*f22*f35*f42*v1 - 5*f12*f24*f43*v1 + 4*f1*f25*f43*v1 -
1600 20*f13*f22*f3*f43*v1 + 10*f1*f24*f3*f43*v1 + 20*f13*f2*f32*f43*v1 - 5*f24*f32*f43*v1 + 5*f12*f34*f43*v1 - 10*f1*f2*f34*f43*v1 + 5*f22*f34*f43*v1 - 4*f1*f35*f43*v1 + 15*f13*f22*f44*v1 -
1601 5*f1*f24*f44*v1 - 2*f25*f44*v1 - 15*f13*f32*f44*v1 + 5*f1*f34*f44*v1 + 2*f35*f44*v1 - 10*f13*f2*f45*v1 - f12*f22*f45*v1 + 3*f24*f45*v1 + 10*f13*f3*f45*v1 + f12*f32*f45*v1 - 3*f34*f45*v1 +
1602 2*f12*f2*f46*v1 - f1*f22*f46*v1 - 2*f12*f3*f46*v1 + f1*f32*f46*v1 + 2*f1*f2*f47*v1 - f22*f47*v1 - 2*f1*f3*f47*v1 + f32*f47*v1 + f17*f32*v2 - 3*f15*f34*v2 + 2*
f14*f35*v2 - 2*f17*f3*f4*v2 +
1603 f16*f32*f4*v2 + 5*
f14*f34*f4*v2 - 4*f13*f35*f4*v2 + f17*f42*v2 - 2*f16*f3*f42*v2 + f15*f32*f42*v2 + f16*f43*v2 + 10*f15*f3*f43*v2 - 15*
f14*f32*f43*v2 + 4*f1*f35*f43*v2 - 8*f15*f44*v2 +
1604 15*f13*f32*f44*v2 - 5*f1*f34*f44*v2 - 2*f35*f44*v2 + 8*
f14*f45*v2 - 10*f13*f3*f45*v2 - f12*f32*f45*v2 + 3*f34*f45*v2 - f13*f46*v2 + 2*f12*f3*f46*v2 - f1*f32*f46*v2 - f12*f47*v2 +
1605 2*f1*f3*f47*v2 - f32*f47*v2 - f17*f22*v3 + 3*f15*f24*v3 - 2*
f14*f25*v3 + 2*f17*f2*f4*v3 - f16*f22*f4*v3 - 5*
f14*f24*f4*v3 + 4*f13*f25*f4*v3 - f17*f42*v3 + 2*f16*f2*f42*v3 - f15*f22*f42*v3 -
1606 f16*f43*v3 - 10*f15*f2*f43*v3 + 15*
f14*f22*f43*v3 - 4*f1*f25*f43*v3 + 8*f15*f44*v3 - 15*f13*f22*f44*v3 + 5*f1*f24*f44*v3 + 2*f25*f44*v3 - 8*
f14*f45*v3 + 10*f13*f2*f45*v3 + f12*f22*f45*v3 -
1607 3*f24*f45*v3 + f13*f46*v3 - 2*f12*f2*f46*v3 + f1*f22*f46*v3 + f12*f47*v3 - 2*f1*f2*f47*v3 + f22*f47*v3 +
1608 f1mf22*f1mf32*f2mf3*(2*f22*f32 + f13*(f2 + f3 - 2*f4) + f12*(f2 + f3 - 2*f4)*(2*(f2 + f3) + f4) - 4*(f22 + f2*f3 + f32)*f42 + 5*(f2 + f3)*f43 +
1609 f1*(4*f2*f3*(f2 + f3) - 4*(f22 + f2*f3 + f32)*f4 - 3*(f2 + f3)*f42 + 10*f43))*v4)/(f1mf22*f1mf32*f1mf43*f2mf3*f2mf42*f3mf42)
1623 static double IMRPhenomXHM_Intermediate_Amp_delta4(
double d1,
double d4,
double v1,
double v2,
double v3,
double v4,
double f1,
double f2,
double f3,
double f4,
int IntAmpFlag)
1627 switch ( IntAmpFlag )
1652 double f13 = f12*f1;
1655 double f23 = f22*f2;
1658 double f33 = f32*f3;
1661 double f43 = f42*f4;
1662 double f44 = f43*f4;
1664 double f1mf2 = f1-f2;
1665 double f1mf3 = f1-f3;
1666 double f1mf4 = f1-f4;
1667 double f2mf3 = f2-f3;
1668 double f2mf4 = f2-f4;
1669 double f3mf4 = f3-f4;
1671 double f1mf42 = f1mf4*f1mf4;
1672 double f2mf42 = f2mf4*f2mf4;
1673 double f3mf42 = f3mf4*f3mf4;
1675 double v1mv3 = v1-v3;
1676 double v1mv4 = v1-v4;
1677 double v3mv4 = v3-v4;
1679 retVal = (-(d4*f1mf2*f1mf3*f1mf4*f2mf3*f2mf4*f3mf4) - f33*f42*v1 + 2*f32*f43*v1 - f3*f44*v1 - f13*f32*v2 + f12*f33*v2 + 2*f13*f3*f4*v2 - 2*f1*f33*f4*v2 - f13*f42*v2 - 3*f12*f3*f42*v2 + 3*f1*f32*f42*v2 +
1680 f33*f42*v2 + 2*f12*f43*v2 - 2*f32*f43*v2 - f1*f44*v2 + f3*f44*v2 + f13*f42*v3 - 2*f12*f43*v3 + f1*f44*v3 + f23*(f42*v1mv3 + f32*v1mv4 - 2*f3*f4*v1mv4 - f12*v3mv4 + 2*f1*f4*v3mv4) +
1681 f2*f4*(f43*v1mv3 + 2*f33*v1mv4 - 3*f32*f4*v1mv4 - 2*f13*v3mv4 + 3*f12*f4*v3mv4) + f22*(-2*f43*v1mv3 - f33*v1mv4 + 3*f3*f42*v1mv4 + f13*v3mv4 - 3*f1*f42*v3mv4) + f13*f32*v4 - f12*f33*v4 -
1682 2*f13*f3*f4*v4 + 2*f1*f33*f4*v4 + 3*f12*f3*f42*v4 - 3*f1*f32*f42*v4)/(f1mf2*f1mf3*f1mf42*f2mf3*f2mf42*f3mf42);
1688 double f13 = f12*f1;
1691 double f43 = f42*f4;
1694 double f33 = f32*f3;
1696 double f1mf4 = f1-f4;
1697 double f1mf3 = f1-f3;
1698 double f3mf4 = f3-f4;
1700 double f1mf42 = f1mf4*f1mf4;
1701 double f1mf32 = f1mf3*f1mf3;
1702 double f3mf42 = f3mf4*f3mf4;
1704 double f1mf43 = f1mf42*f1mf4;
1706 retVal = (-(d4*f1mf32*f1mf4*f3mf4) + d1*f1mf3*f1mf4*f3mf42 - 3*f1*f32*v1 + 2*f33*v1 + 6*f1*f3*f4*v1 - 3*f32*f4*v1 - 3*f1*f42*v1 + f43*v1 + f13*v3 - 3*f12*f4*v3 + 3*f1*f42*v3 - f43*v3 -
1707 f1mf32*(f1 + 2*f3 - 3*f4)*v4)/(f1mf32*f1mf43*f3mf42);
1713 double f13 = f12*f1;
1716 double f23 = f22*f2;
1719 double f43 = f42*f4;
1721 double f1mf2 = f1-f2;
1722 double f1mf4 = f1-f4;
1723 double f2mf4 = f2-f4;
1725 double f1mf22 = f1mf2*f1mf2;
1726 double f2mf42 = f2mf4*f2mf4;
1727 double f1mf43 = f1mf4*f1mf4*f1mf4;
1729 retVal = ((-(d4*f1mf22*f1mf4*f2mf4) + d1*f1mf2*f1mf4*f2mf42 - 3*f1*f22*v1 + 2*f23*v1 + 6*f1*f2*f4*v1 - 3*f22*f4*v1
1730 - 3*f1*f42*v1 + f43*v1 + f13*v2 - 3*f12*f4*v2 + 3*f1*f42*v2 - f43*v2 - f1mf22*(f1 + 2*f2 - 3*f4)*v4)/(f1mf22*f1mf43*f2mf42));
1737 double f13 = f12*f1;
1738 double f14 = f13*f1;
1739 double f15 =
f14*f1;
1740 double f16 = f15*f1;
1743 double f23 = f22*f2;
1744 double f24 = f23*f2;
1745 double f25 = f24*f2;
1748 double f33 = f32*f3;
1749 double f34 = f33*f3;
1750 double f35 = f34*f3;
1753 double f43 = f42*f4;
1754 double f44 = f43*f4;
1755 double f45 = f44*f4;
1756 double f46 = f45*f4;
1758 double f1mf2 = f1-f2;
1759 double f1mf3 = f1-f3;
1760 double f1mf4 = f1-f4;
1761 double f2mf3 = f2-f3;
1762 double f2mf4 = f2-f4;
1763 double f3mf4 = f3-f4;
1765 double f1mf22 = f1mf2*f1mf2;
1766 double f1mf32 = f1mf3*f1mf3;
1767 double f2mf42 = f2mf4*f2mf4;
1768 double f3mf42 = f3mf4*f3mf4;
1769 double f1mf43 = f1mf4*f1mf4*f1mf4;
1772 (-(d4*f1mf22*f1mf32*f1mf4*f2mf3*f2mf4*f3mf4*(2*f1 + f2 + f3 + f4)) - d1*f1mf2*f1mf3*f1mf4*f2mf3*f2mf42*f3mf42*(f1 + f2 + f3 + 2*f4) + 5*f13*f23*f32*v1 - 3*f1*f25*f32*v1 - 5*f13*f22*f33*v1 +
1773 2*f25*f33*v1 + 3*f1*f22*f35*v1 - 2*f23*f35*v1 - 10*f13*f23*f3*f4*v1 + 6*f1*f25*f3*f4*v1 + 5*f12*f23*f32*f4*v1 - 3*f25*f32*f4*v1 + 10*f13*f2*f33*f4*v1 - 5*f12*f22*f33*f4*v1 -
1774 6*f1*f2*f35*f4*v1 + 3*f22*f35*f4*v1 + 5*f13*f23*f42*v1 - 3*f1*f25*f42*v1 + 15*f13*f22*f3*f42*v1 - 10*f12*f23*f3*f42*v1 - 15*f13*f2*f32*f42*v1 + 5*f1*f23*f32*f42*v1 - 5*f13*f33*f42*v1 +
1775 10*f12*f2*f33*f42*v1 - 5*f1*f22*f33*f42*v1 + 3*f1*f35*f42*v1 - 10*f13*f22*f43*v1 + 5*f12*f23*f43*v1 + f25*f43*v1 + 15*f12*f22*f3*f43*v1 - 10*f1*f23*f3*f43*v1 + 10*f13*f32*f43*v1 -
1776 15*f12*f2*f32*f43*v1 + 5*f23*f32*f43*v1 - 5*f12*f33*f43*v1 + 10*f1*f2*f33*f43*v1 - 5*f22*f33*f43*v1 - f35*f43*v1 + 5*f13*f2*f44*v1 - 10*f12*f22*f44*v1 + 5*f1*f23*f44*v1 - 5*f13*f3*f44*v1 +
1777 10*f12*f32*f44*v1 - 5*f1*f33*f44*v1 + 5*f12*f2*f45*v1 + 2*f1*f22*f45*v1 - 3*f23*f45*v1 - 5*f12*f3*f45*v1 - 2*f1*f32*f45*v1 + 3*f33*f45*v1 - 4*f1*f2*f46*v1 + 2*f22*f46*v1 + 4*f1*f3*f46*v1 -
1778 2*f32*f46*v1 - 2*f16*f32*v2 + 3*f15*f33*v2 - f13*f35*v2 + 4*f16*f3*f4*v2 - 2*f15*f32*f4*v2 - 5*
f14*f33*f4*v2 + 3*f12*f35*f4*v2 - 2*f16*f42*v2 - 5*f15*f3*f42*v2 + 10*
f14*f32*f42*v2 -
1779 3*f1*f35*f42*v2 + 4*f15*f43*v2 - 5*
f14*f3*f43*v2 + f35*f43*v2 + 5*f13*f3*f44*v2 - 10*f12*f32*f44*v2 + 5*f1*f33*f44*v2 - 4*f13*f45*v2 + 5*f12*f3*f45*v2 + 2*f1*f32*f45*v2 - 3*f33*f45*v2 +
1780 2*f12*f46*v2 - 4*f1*f3*f46*v2 + 2*f32*f46*v2 + 2*f16*f22*v3 - 3*f15*f23*v3 + f13*f25*v3 - 4*f16*f2*f4*v3 + 2*f15*f22*f4*v3 + 5*
f14*f23*f4*v3 - 3*f12*f25*f4*v3 + 2*f16*f42*v3 +
1781 5*f15*f2*f42*v3 - 10*
f14*f22*f42*v3 + 3*f1*f25*f42*v3 - 4*f15*f43*v3 + 5*
f14*f2*f43*v3 - f25*f43*v3 - 5*f13*f2*f44*v3 + 10*f12*f22*f44*v3 - 5*f1*f23*f44*v3 + 4*f13*f45*v3 - 5*f12*f2*f45*v3 -
1782 2*f1*f22*f45*v3 + 3*f23*f45*v3 - 2*f12*f46*v3 + 4*f1*f2*f46*v3 - 2*f22*f46*v3 -
1783 f1mf22*f1mf32*f2mf3*(2*f2*f3*(f2 + f3) + 2*f12*(f2 + f3 - 2*f4) - 3*(f22 + f2*f3 + f32)*f4 + f1*(f22 + 5*f2*f3 + f32 - 6*(f2 + f3)*f4 + 5*f42) + 5*f43)*v4)/
1784 (f1mf22*f1mf32*f1mf43*f2mf3*f2mf42*f3mf42)
1798 static double IMRPhenomXHM_Intermediate_Amp_delta5(
double d1,
double d4,
double v1,
double v2,
double v3,
double v4,
double f1,
double f2,
double f3,
double f4,
int IntAmpFlag)
1802 switch ( IntAmpFlag )
1843 double f13 = f12*f1;
1844 double f14 = f13*f1;
1845 double f15 =
f14*f1;
1848 double f23 = f22*f2;
1849 double f24 = f23*f2;
1852 double f33 = f32*f3;
1853 double f34 = f33*f3;
1856 double f43 = f42*f4;
1857 double f44 = f43*f4;
1858 double f45 = f44*f4;
1860 double f1mf2 = f1-f2;
1861 double f1mf3 = f1-f3;
1862 double f1mf4 = f1-f4;
1863 double f2mf3 = f2-f3;
1864 double f2mf4 = f2-f4;
1865 double f3mf4 = f3-f4;
1867 double f1mf22 = f1mf2*f1mf2;
1868 double f1mf32 = f1mf3*f1mf3;
1869 double f2mf42 = f2mf4*f2mf4;
1870 double f3mf42 = f3mf4*f3mf4;
1871 double f1mf43 = f1mf4*f1mf4*f1mf4;
1874 (d4*f1mf22*f1mf32*f1mf4*f2mf3*f2mf4*f3mf4 + d1*f1mf2*f1mf3*f1mf4*f2mf3*f2mf42*f3mf42 - 4*f12*f23*f32*v1 + 3*f1*f24*f32*v1 + 4*f12*f22*f33*v1 - 2*f24*f33*v1 - 3*f1*f22*f34*v1 + 2*f23*f34*v1 +
1875 8*f12*f23*f3*f4*v1 - 6*f1*f24*f3*f4*v1 - 4*f1*f23*f32*f4*v1 + 3*f24*f32*f4*v1 - 8*f12*f2*f33*f4*v1 + 4*f1*f22*f33*f4*v1 + 6*f1*f2*f34*f4*v1 - 3*f22*f34*f4*v1 - 4*f12*f23*f42*v1 +
1876 3*f1*f24*f42*v1 - 12*f12*f22*f3*f42*v1 + 8*f1*f23*f3*f42*v1 + 12*f12*f2*f32*f42*v1 - 4*f23*f32*f42*v1 + 4*f12*f33*f42*v1 - 8*f1*f2*f33*f42*v1 + 4*f22*f33*f42*v1 - 3*f1*f34*f42*v1 +
1877 8*f12*f22*f43*v1 - 4*f1*f23*f43*v1 - f24*f43*v1 - 8*f12*f32*f43*v1 + 4*f1*f33*f43*v1 + f34*f43*v1 - 4*f12*f2*f44*v1 - f1*f22*f44*v1 + 2*f23*f44*v1 + 4*f12*f3*f44*v1 + f1*f32*f44*v1 -
1878 2*f33*f44*v1 + 2*f1*f2*f45*v1 - f22*f45*v1 - 2*f1*f3*f45*v1 + f32*f45*v1 + f15*f32*v2 - 2*
f14*f33*v2 + f13*f34*v2 - 2*f15*f3*f4*v2 +
f14*f32*f4*v2 + 4*f13*f33*f4*v2 - 3*f12*f34*f4*v2 +
1879 f15*f42*v2 + 4*
f14*f3*f42*v2 - 8*f13*f32*f42*v2 + 3*f1*f34*f42*v2 - 3*
f14*f43*v2 + 8*f12*f32*f43*v2 - 4*f1*f33*f43*v2 - f34*f43*v2 + 3*f13*f44*v2 - 4*f12*f3*f44*v2 - f1*f32*f44*v2 +
1880 2*f33*f44*v2 - f12*f45*v2 + 2*f1*f3*f45*v2 - f32*f45*v2 - f15*f22*v3 + 2*
f14*f23*v3 - f13*f24*v3 + 2*f15*f2*f4*v3 -
f14*f22*f4*v3 - 4*f13*f23*f4*v3 + 3*f12*f24*f4*v3 - f15*f42*v3 -
1881 4*
f14*f2*f42*v3 + 8*f13*f22*f42*v3 - 3*f1*f24*f42*v3 + 3*
f14*f43*v3 - 8*f12*f22*f43*v3 + 4*f1*f23*f43*v3 + f24*f43*v3 - 3*f13*f44*v3 + 4*f12*f2*f44*v3 + f1*f22*f44*v3 - 2*f23*f44*v3 +
1882 f12*f45*v3 - 2*f1*f2*f45*v3 + f22*f45*v3 + f1mf22*f1mf32*f2mf3*(2*f2*f3 + f1*(f2 + f3 - 2*f4) - 3*(f2 + f3)*f4 + 4*f42)*v4)/(f1mf22*f1mf32*f1mf43*f2mf3*f2mf42*f3mf42)
1903 double result = 0., fpower = 1.;
1908 fpower *= powers_of_f->
itself;
1914 double a0 = pAmp->
delta0;
1915 double a1 = pAmp->
delta1;
1917 double a3 = pAmp->
delta3;
1919 double a5 = pAmp->
delta5;
1923 switch ( InterAmpPolOrder )
1927 double ff = powers_of_f->
itself;
1928 polynomial = a0 + a1*ff ;
1933 double ff = powers_of_f->
itself;
1934 double ff2 = powers_of_f->
two;
1935 polynomial = a0 + a1*ff +
a2*ff2;
1940 double ff = powers_of_f->
itself;
1941 double ff2 = powers_of_f->
two;
1942 double ff3 = powers_of_f->
three;
1943 polynomial = a0 + a1*ff +
a2*ff2 + a3*ff3;
1948 double ff = powers_of_f->
itself;
1949 double ff2 = powers_of_f->
two;
1950 double ff3 = powers_of_f->
three;
1951 double ff4 = powers_of_f->
four;
1957 polynomial = a0 + a1*ff +
a2*ff2 + a3*ff3 +
a4*ff4;
1962 double ff = powers_of_f->
itself;
1963 double ff2 = powers_of_f->
two;
1964 double ff3 = powers_of_f->
three;
1965 double ff4 = powers_of_f->
four;
1966 polynomial = a0 + a1*ff +
a2*ff2 + a3*ff3 +
a4*ff4;
1971 double ff = powers_of_f->
itself;
1972 double ff2 = powers_of_f->
two;
1973 double ff3 = powers_of_f->
three;
1974 double ff4 = powers_of_f->
four;
1975 double ff5 = powers_of_f->
five;
1976 polynomial = a0 + a1*ff +
a2*ff2 + a3*ff3 +
a4*ff4 + a5*ff5;
1984 return pAmp->
ampNorm / polynomial;
1996 double threshold = 0.2/(pWF22->
ampNorm);
1997 if( 1./(*int1) < threshold )
2001 if( 1./(*int2) < threshold ){
2005 }
else if( 1./(*int2) < threshold )
2015 if(ftest >= fmin && ftest <= fmax){
2025 double complex f1, f2;
2026 double discriminant = -4*a0*
a2 + a1*a1;
2028 f1 = creall((-a1 - sqrt(discriminant))/(2.*
a2));
2029 f2 = creall((-a1 + sqrt(discriminant))/(2.*
a2));
2039 int CrossZeroP3(
double a0,
double a1,
double a2,
double a3,
double fstart,
double fend)
2042 double q1 = -
a2/(3.*a3);
2043 double q2 = -
a2*
a2 + 3*a1*a3;
2044 double q3 = -2*
a2*
a2*
a2 + 9*a1*
a2*a3-27*a0*a3*a3;
2046 double complex onethirdpower = cpow(
q3 + csqrt(discri) , 1/3.);
2047 double complex f1, f2, f3;
2048 double twothird = pow(2,1/3.);
2049 double complex
z1 = (1. + I*sqrt(3.)),
z2 = (1. - I*sqrt(3.));
2050 int i1=0, i2=0, i3=0;
2053 f1 =
q1 -
q2*twothird/(3*a3*onethirdpower) + onethirdpower/(3.*a3*twothird);
2054 f2 =
q1 +
q2*
z1/(3*twothird*twothird*a3*onethirdpower) - onethirdpower*
z2/(6*twothird*a3);
2055 f3 =
q1 +
q2*
z2/(3*twothird*twothird*a3*onethirdpower) - onethirdpower*
z1/(6*twothird*a3);
2059 double threshold = pow(10.,-15);
2060 if (fabs(cimag(f1)) < threshold ){
2063 if (fabs(cimag(f2)) < threshold ){
2066 if (fabs(cimag(f3)) < threshold ){
2070 printf(
"\nCrossZeroP3: Coefficients = %.16f %.16f %.16f %.16f",a0, a1,
a2, a3);
2071 printf(
"\nCrossZeroP3: discri = %.16f ", discri);
2072 printf(
"\nCrossZeroP3: Imag f1, f2, f3 = %.16e %.16e %.16e ", fabs(cimag(f1)), fabs(cimag(f2)), fabs(cimag(f3)));
2073 printf(
"\nCrossZeroP3: a3 = %.16f %.16f", creal(a3), cimag(a3));
2074 printf(
"\nCrossZeroP3: onethirdpower = %.16f %.16f", creal(onethirdpower), cimag(onethirdpower));
2075 printf(
"\nCrossZeroP3: f1 = %.16e %.16e", creal(f1), cimag(f1));
2076 printf(
"\nCrossZeroP3: f2 = %.16e %.16e", creal(f2), cimag(f2));
2077 printf(
"\nCrossZeroP3: f3 = %.16e %.16e", creal(f3), cimag(f3));
2078 printf(
"\nCrossZeroP3: i1, i2, i3 = %i %i %i", i1, i2, i3);
2080 if (i1 == 0 && i2 == 0 && i3 == 0 ){
2088 int CrossZeroP4(
double a0,
double a1,
double a2,
double a3,
double a4,
double fstart,
double fend){
2090 double q0 = -a3/(4*
a4);
2093 double q2 =
a2*
a2 - 3*a1*a3 + 12*a0*
a4;
2094 double q3 = 2*
a2*
a2*
a2 - 9*a1*
a2*a3 + 27*a0*a3*a3 + 27*a1*a1*
a4 - 72*a0*
a2*
a4;
2095 double complex squareroot = csqrt(-4*
q2*
q2*
q2 +
q3*
q3);
2096 double complex onethird = cpow(
q3 + squareroot , 1/3.);
2097 double twothird = pow(2,1/3.);
2098 double complex frac1 = twothird*
q2/(3*
a4*onethird);
2099 double complex frac2 = onethird/(3*twothird*
a4);
2100 double complex bigdenom = 4*sqrt(
q1 + frac1 + frac2);
2101 double bignum = -a3*a3*a3/(
a4*
a4*
a4) + 4*
a2*a3/(
a4*
a4) - 8*a1/
a4;
2102 double threshold = pow(10.,-15);
2104 complex
double f1, f2, f3, f4;
2107 f1 = q0 - 0.5*csqrt(
q1 + frac1 + frac2) - 0.5*csqrt(q1b - frac1 - frac2 - bignum/bigdenom);
2108 f2 = q0 - 0.5*csqrt(
q1 + frac1 + frac2) + 0.5*csqrt(q1b - frac1 - frac2 - bignum/bigdenom);
2109 f3 = q0 + 0.5*csqrt(
q1 + frac1 + frac2) - 0.5*csqrt(q1b - frac1 - frac2 + bignum/bigdenom);
2110 f4 = q0 + 0.5*csqrt(
q1 + frac1 + frac2) + 0.5*csqrt(q1b - frac1 - frac2 + bignum/bigdenom);
2113 printf(
"\n***** CrossZeroP4 *********\n");
2114 printf(
"q0, q1, q1b, q2, q3 %.16f %.16f %.16f %.16f %.16f\n", q0,
q1, q1b,
q2,
q3);
2115 printf(
"bigdenom bignum %.16f %.16f %.16f %.16f\n", creal(bigdenom), cimag(bigdenom), creal(bignum), cimag(bignum));
2116 printf(
"squareroot %.16f %.16f \n", creal(squareroot), cimag(squareroot));
2117 printf(
"frac1 frac2 %.16f %.16f %.16f %.16f \n", creal(frac1), cimag(frac1), creal(frac2), cimag(frac2));
2118 printf(
"twothird onethird %.16f %.16f %.16f %.16f", creal(twothird), cimag(twothird), creal(onethird), cimag(onethird));
2119 printf(
"\nfstart, fend = %.16f %.16f\n", fstart, fend);
2120 printf(
"\nf1 = %.16f %.16f", creal(f1), cimag(f1));
2121 printf(
"\nf2 = %.16f %.16f", creal(f2), cimag(f2));
2122 printf(
"\nf3 = %.16f %.16f", creal(f3), cimag(f3));
2123 printf(
"\nf4 = %.16f %.16f", creal(f4), cimag(f4));
2126 int i1=0, i2=0, i3=0, i4=0;
2129 if (fabs(cimag(f1)) < threshold ){
2132 if (fabs(cimag(f2)) < threshold){
2135 if (fabs(cimag(f3)) < threshold ){
2138 if (fabs(cimag(f4)) < threshold ){
2142 if (i1 == 0 && i2 == 0 && i3 == 0 && i4 == 0 ){
2152 int CrossZeroP5(
double a0,
double a1,
double a2,
double a3,
double a4,
double a5,
double fstart,
double fend)
2154 double threshold = pow(10.,-15);
2156 double a[6] = { a0, a1,
a2, a3,
a4, a5 };
2159 gsl_poly_complex_workspace *
w
2160 = gsl_poly_complex_workspace_alloc (6);
2162 gsl_poly_complex_solve (
a, 6,
w, z);
2164 gsl_poly_complex_workspace_free (
w);
2167 for (
int i = 0;
i < 5;
i++)
2170 printf (
"z%d = %+.18f %+.18f\n",
2171 i, z[2*
i], z[2*
i+1]);
2175 int i1=0, i2=0, i3=0, i4=0, i5=0;
2178 if (fabs(z[1]) < threshold ){
2181 if (fabs(z[3]) < threshold){
2184 if (fabs(z[4]) < threshold ){
2187 if (fabs(z[5]) < threshold ){
2190 if (fabs(z[7]) < threshold ){
2194 if (i1 == 0 && i2 == 0 && i3 == 0 && i4 == 0 && i5 == 0 ){
2209 double d1 = pAmp->
d1;
2210 double d4 = pAmp->
d4;
2211 double v1 = pAmp->
v1;
2212 double v2 = pAmp->
v2;
2213 double v3 = pAmp->
v3;
2214 double v4 = pAmp->
v4;
2215 double f1 = pAmp->
f1;
2216 double f2 = pAmp->
f2;
2217 double f3 = pAmp->
f3;
2218 double f4 = pAmp->
f4;
2220 printf(
"\n UpdateCoeff IMRPhenomXHMIntermediateAmpVersion = %i", IntAmpFlag);
2222 pAmp->
delta0 =
IMRPhenomXHM_Intermediate_Amp_delta0(d1,d4,v1,v2,v3,v4,f1,f2,f3,f4,IntAmpFlag);
2223 pAmp->
delta1 =
IMRPhenomXHM_Intermediate_Amp_delta1(d1,d4,v1,v2,v3,v4,f1,f2,f3,f4,IntAmpFlag);
2224 pAmp->
delta2 =
IMRPhenomXHM_Intermediate_Amp_delta2(d1,d4,v1,v2,v3,v4,f1,f2,f3,f4,IntAmpFlag);
2225 pAmp->
delta3 =
IMRPhenomXHM_Intermediate_Amp_delta3(d1,d4,v1,v2,v3,v4,f1,f2,f3,f4,IntAmpFlag);
2226 pAmp->
delta4 =
IMRPhenomXHM_Intermediate_Amp_delta4(d1,d4,v1,v2,v3,v4,f1,f2,f3,f4,IntAmpFlag);
2227 pAmp->
delta5 =
IMRPhenomXHM_Intermediate_Amp_delta5(d1,d4,v1,v2,v3,v4,f1,f2,f3,f4,IntAmpFlag);
2239 printf(
"\nChoosePolOrder 105\n");
2249 double fstart, fend;
2253 printf(
"\n In ChoosePolOrder\n");
2258 printf(
"\n Pol5 crosses zero \n");
2274 printf(
"\nChoosePolOrder 1043\n");
2276 double a0, a1,
a2, a3,
a4, fstart, fend;
2299 printf(
"\nChoosePolOrder 1042\n");
2301 double a0, a1,
a2, a3,
a4, fstart, fend;
2324 printf(
"\nChoosePolOrder 104\n");
2326 double a0, a1,
a2, a3,
a4, fstart, fend;
2349 printf(
"\nChoosePolOrder 1032\n");
2351 double a0, a1,
a2, a3, fstart, fend;
2362 printf(
"\nCrossZeroP3 True\n");
2370 printf(
"\nCrossZeroP3 False\n");
2379 printf(
"\nChoosePolOrder 103\n");
2381 double a0, a1,
a2, a3, fstart, fend;
2404 printf(
"\nChoosePolOrder 102\n");
2406 double a0, a1,
a2, fstart, fend;
2427 printf(
"\nChoosePolOrder 101\n");
2475 UINT2 tmpnCollocPts = 0;
2494 idx = pWFHM->
modeInt * 2 +
i - 3 + 16;
2553 p = gsl_permutation_alloc(nCollocPtsInterAmp);
2554 b = gsl_vector_alloc(nCollocPtsInterAmp);
2555 x = gsl_vector_alloc(nCollocPtsInterAmp);
2556 A = gsl_matrix_alloc(nCollocPtsInterAmp, nCollocPtsInterAmp);
2564 UINT2 tmpnCollocPts = 0;
2580 REAL8 seven_sixths = 7/6.;
2581 REAL8 fcollpoint_m_seven_sixths = pow(fcollpoint, -seven_sixths);
2585 for(
INT4 j = 0; j < nCollocPtsInterAmp; j++){
2586 gsl_matrix_set(A, tmpnCollocPts, j, fpower * fcollpoint_m_seven_sixths);
2587 fpower *= fcollpoint;
2593 fpower = 1./fcollpoint;
2594 for(
INT4 j = 0; j < nCollocPtsInterAmp; j++){
2595 REAL8 derivative = (j - seven_sixths) * fpower * fcollpoint_m_seven_sixths;
2596 gsl_matrix_set(A, tmpnCollocPts, j, derivative);
2597 fpower *= fcollpoint;
2610 gsl_permutation_free(
p);
2615 gsl_linalg_LU_decomp(A,
p, &signum);
2616 gsl_linalg_LU_solve(A,
p, b,
x);
2627 gsl_permutation_free(
p);
2644 switch (InterPhaseFlag){
2646 double eta = pWF->
eta;
2647 double S = pWF->
STotR;
2648 double eta2,eta3,eta4,eta5,eta6,S2,S3,S4;
2657 double noSpin = 4045.84 + 7.63226/eta - 1956.93*eta - 23428.1*eta2 + 369153.*eta3 - 2.28832e6*eta4 + 6.82533e6*eta5 - 7.86254e6*eta6;
2658 double eqSpin = - 347.273*S + 83.5428*S2 - 355.67*S3 + (4.44457*S + 16.5548*S2 + 13.6971*S3)/eta + eta*( - 79.761*S - 355.299*S2 + 1114.51*S3 - 1077.75*S4) + 92.6654*S4 + eta2*(- 619.837*S - 722.787*S2 + 2392.73*S3 + 2689.18*S4);
2659 double uneqSpin = ( 918.976*pWF->
chi1L*sqrt(1.-4.*eta) - 918.976*pWF->
chi2L*sqrt(1.-4.*eta))*eta + ( 91.7679*pWF->
chi1L*sqrt(1.-4.*eta) - 91.7679*pWF->
chi2L*sqrt(1.-4.*eta))*eta2;
2660 total = noSpin + eqSpin + uneqSpin;
2663 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_21_p1: version is not valid. Recommended version is 122019.");}
2670 switch (InterPhaseFlag){
2672 double eta = pWF->
eta;
2673 double S = pWF->
STotR;
2674 double eta2,eta3,eta4,eta5,eta6,S2;
2681 double noSpin = 4360.19 + 4.27128/eta - 8727.4*eta + 18485.9*eta2 + 371303.00000000006*eta3 - 3.22792e6*eta4 + 1.01799e7*eta5 - 1.15659e7*eta6;
2682 double eqSpin = ((11.6635 - 251.579*eta - 3255.6400000000003*eta2 + 19614.6*eta3 - 34860.2*eta4)*S + (14.8017 + 204.025*eta - 5421.92*eta2 + 36587.3*eta3 - 74299.5*eta4)*S2)/(eta);
2683 double uneqSpin = eta*(223.65100000000004*pWF->
chi1L*sqrt(1.-4.*eta)*(3.9201300240106223 + 1.*eta) - 223.65100000000004*pWF->
chi2L*sqrt(1.-4.*eta)*(3.9201300240106223 + 1.*eta));
2684 total = noSpin + eqSpin + uneqSpin;
2687 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_33_p1: version is not valid. Recommended version is 122019.");}
2694 switch (InterPhaseFlag){
2696 double eta = pWF->
eta;
2697 double S = pWF->
STotR;
2698 double eta2,eta3,eta4,eta5,eta6,S2,S3,S4;
2707 double noSpin = 4414.11 + 4.21564/eta - 10687.8*eta + 58234.6*eta2 - 64068.40000000001*eta3 - 704442.*eta4 + 2.86393e6*eta5 - 3.26362e6*eta6;
2708 double eqSpin = ((6.39833 - 610.267*eta + 2095.72*eta2 - 3970.89*eta3)*S + (22.956700000000005 - 99.1551*eta + 331.593*eta2 - 794.79*eta3)*S2 + (10.4333 + 43.8812*eta - 541.261*eta2 + 294.289*eta3)*S3 + eta*(106.047 - 1569.0299999999997*eta + 4810.61*eta2)*S4)/(eta);
2709 double uneqSpin = 132.244*sqrt(1.-4.*eta)*eta*(pWF->
chi1L*(6.227738120444028 - 1.*eta) + pWF->
chi2L*(-6.227738120444028 + 1.*eta));
2710 total = noSpin + eqSpin + uneqSpin;
2713 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_32_p1: version is not valid. Recommended version is 122019.");}
2720 switch (InterPhaseFlag){
2722 double eta = pWF->
eta;
2723 double S = pWF->
STotR;
2724 double eta2,eta3,eta4,eta5,eta6,S2,S3;
2732 double noSpin = 4349.66 + 4.34125/eta - 8202.33*eta + 5534.1*eta2 + 536500.*eta3 - 4.33197e6*eta4 + 1.37792e7*eta5 - 1.60802e7*eta6;
2733 double eqSpin = ((12.0704 - 528.098*eta + 1822.9100000000003*eta2 - 9349.73*eta3 + 17900.9*eta4)*S + (10.4092 + 253.334*eta - 5452.04*eta2 + 35416.6*eta3 - 71523.*eta4)*S2 + eta*(492.60300000000007 - 9508.5*eta + 57303.4*eta2 - 109418.*eta3)*S3)/(eta);
2734 double uneqSpin = -262.143*sqrt(1.-4.*eta)*eta*(pWF->
chi1L*(-3.0782778864970646 - 1.*eta) + pWF->
chi2L*(3.0782778864970646 + 1.*eta));
2735 total = noSpin + eqSpin + uneqSpin;
2738 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_44_p1: version is not valid. Recommended version is 122019.");}
2746 switch (InterPhaseFlag){
2748 double eta = pWF->
eta;
2749 double S = pWF->
STotR;
2750 double eta2,eta3,eta4,eta5,eta6,S2,S3,S4;
2759 double noSpin = 3509.09 + 0.91868/eta + 194.72*eta - 27556.2*eta2 + 369153.*eta3 - 2.28832e6*eta4 + 6.82533e6*eta5 - 7.86254e6*eta6;
2760 double eqSpin = ((0.7083999999999999 - 60.1611*eta + 131.815*eta2 - 619.837*eta3)*S + (6.104720000000001 - 59.2068*eta + 278.588*eta2 - 722.787*eta3)*S2 + (5.7791 + 117.913*eta - 1180.4*eta2 + 2392.73*eta3)*S3 + eta*(92.6654 - 1077.75*eta + 2689.18*eta2)*S4)/(eta);
2761 double uneqSpin = -91.7679*sqrt(1.-4.*eta)*eta*(pWF->
chi1L*(-1.6012352903357276 - 1.*eta) + pWF->
chi2L*(1.6012352903357276 + 1.*eta));
2762 total = noSpin + eqSpin + uneqSpin;
2765 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_21_p2: version is not valid.Recommended version is 122019.");}
2772 switch (InterPhaseFlag){
2774 double eta = pWF->
eta;
2775 double S = pWF->
STotR;
2776 double eta2,eta3,eta4,eta5,eta6,S2;
2783 double noSpin = 3797.06 + 0.786684/eta - 2397.09*eta - 25514.*eta2 + 518314.99999999994*eta3 - 3.41708e6*eta4 + 1.01799e7*eta5 - 1.15659e7*eta6;
2784 double eqSpin = ((6.7812399999999995 + 39.4668*eta - 3520.37*eta2 + 19614.6*eta3 - 34860.2*eta4)*S + (4.80384 + 293.215*eta - 5914.61*eta2 + 36587.3*eta3 - 74299.5*eta4)*S2)/(eta);
2785 double uneqSpin = -223.65100000000004*sqrt(1.-4.*eta)*eta*(pWF->
chi1L*(-1.3095134830606614 - 1.*eta) + pWF->
chi2L*(1.3095134830606614 + 1.*eta));
2786 total = noSpin + eqSpin + uneqSpin;
2789 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_33_p2: version is not valid.Recommended version is 122019.");}
2796 switch (InterPhaseFlag){
2798 double eta = pWF->
eta;
2799 double S = pWF->
STotR;
2800 double eta2,eta3,eta4,eta5,eta6,S2,S3,S4;
2809 double noSpin = 3980.7 + 0.956703/eta - 6202.38*eta + 29218.1*eta2 + 24484.2*eta3 - 807629.*eta4 + 2.86393e6*eta5 - 3.26362e6*eta6;
2810 double eqSpin = ((1.92692 - 226.825*eta + 75.246*eta2 + 1291.56*eta3)*S + (15.328700000000001 - 99.1551*eta + 608.328*eta2 - 2402.94*eta3)*S2 + (10.4333 + 43.8812*eta - 541.261*eta2 + 294.289*eta3)*S3 + eta*(106.047 - 1569.0299999999997*eta + 4810.61*eta2)*S4)/(eta);
2811 double uneqSpin = 132.244*sqrt(1.-4.*eta)*eta*(pWF->
chi1L*(2.5769789177580837 - 1.*eta) + pWF->
chi2L*(-2.5769789177580837 + 1.*eta));
2812 total = noSpin + eqSpin + uneqSpin;
2815 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_32_p2: version is not valid. Recommended version is 122019.");}
2822 switch (InterPhaseFlag){
2824 double eta = pWF->
eta;
2825 double S = pWF->
STotR;
2826 double eta2,eta3,eta4,eta5,eta6,S2,S3;
2834 double noSpin = 3804.19 + 0.66144/eta - 2421.77*eta - 33475.8*eta2 + 665951.*eta3 - 4.50145e6*eta4 + 1.37792e7*eta5 - 1.60802e7*eta6;
2835 double eqSpin = ((5.83038 - 172.047*eta + 926.576*eta2 - 7676.87*eta3 + 17900.9*eta4)*S + (6.17601 + 253.334*eta - 5672.02*eta2 + 35722.1*eta3 - 71523.*eta4)*S2 + eta*(492.60300000000007 - 9508.5*eta + 57303.4*eta2 - 109418.*eta3)*S3)/(eta);
2836 double uneqSpin = -262.143*sqrt(1.-4.*eta)*eta*(pWF->
chi1L*(-1.0543062374352932 - 1.*eta) + pWF->
chi2L*(1.0543062374352932 + 1.*eta));
2837 total = noSpin + eqSpin + uneqSpin;
2840 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_44_p2: version is not valid. Recommended version is 122019.");}
2848 switch (InterPhaseFlag){
2850 double eta = pWF->
eta;
2851 double S = pWF->
STotR;
2852 double delta=sqrt(1.-4.*eta);
2853 double eta2,eta3,eta4,eta5,eta6,S2,S3,S4;
2862 double noSpin = 3241.68 + 890.016*eta - 28651.9*eta2 + 369153.*eta3 - 2.28832e6*eta4 + 6.82533e6*eta5 - 7.86254e6*eta6;
2863 double eqSpin = (-2.2484 + 187.641*eta - 619.837*eta2)*S + (3.22603 + 166.323*eta - 722.787*eta2)*S2 + (117.913 - 1094.59*eta + 2392.73*eta2)*S3 + (92.6654 - 1077.75*eta + 2689.18*eta2)*S4;
2864 double uneqSpin = 91.7679*(pWF->
dchi)*
delta*eta2;
2865 total = noSpin + eqSpin + uneqSpin;
2868 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_21_p3: version is not valid. Recommended version is 122019.");}
2875 switch (InterPhaseFlag){
2877 double eta = pWF->
eta;
2878 double S = pWF->
STotR;
2879 double eta2,eta3,eta4,eta5,eta6,S2;
2886 double noSpin = 3321.83 + 1796.03*eta - 52406.1*eta2 + 605028.*eta3 - 3.52532e6*eta4 + 1.01799e7*eta5 - 1.15659e7*eta6;
2887 double eqSpin = (223.601 - 3714.77*eta + 19614.6*eta2 - 34860.2*eta3)*S + (314.317 - 5906.46*eta + 36587.3*eta2 - 74299.5*eta3)*S2;
2888 double uneqSpin = 223.651*(pWF->
dchi)*sqrt(1.-4.*eta)*eta2;
2889 total = noSpin + eqSpin + uneqSpin;
2892 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_33_p3: version is not valid. Recommended version is 122019.");}
2899 switch (InterPhaseFlag){
2901 double eta = pWF->
eta;
2902 double S = pWF->
STotR;
2903 double eta2,eta3,eta4,eta5,eta6,S2,S3,S4;
2912 double noSpin = 3416.57 + 2308.63*eta - 84042.9*eta2 + 1.01936e6*eta3 - 6.0644e6*eta4 + 1.76399e7*eta5 - 2.0065e7*eta6;
2913 double eqSpin = (24.6295 - 282.354*eta - 2582.55*eta2 + 12750.*eta3)*S + (433.675 - 8775.86*eta + 56407.8*eta2 - 114798.*eta3)*S2 + (559.705 - 10627.4*eta + 61581.*eta2 - 114029.*eta3)*S3 + (106.047 - 1569.03*eta + 4810.61*eta2)*S4;
2914 double uneqSpin = 63.9466*pWF->
dchi*sqrt(1.-4.*eta)*eta2;
2915 total = noSpin + eqSpin + uneqSpin;
2918 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_32_p3: version is not valid. Recommended version is 122019.");}
2925 switch (InterPhaseFlag){
2927 double eta = pWF->
eta;
2928 double S = pWF->
STotR;
2929 double eta2,eta3,eta4, eta5, eta6, S2, S3;
2937 double noSpin = 3308.97 + 2353.58*eta - 66340.1*eta2 + 777272.*eta3 - 4.64438e6*eta4 + 1.37792e7*eta5 - 1.60802e7*eta6;
2938 double eqSpin = (-21.5697 + 926.576*eta - 7989.26*eta2 + 17900.9*eta3)*S + (353.539 - 6403.24*eta + 37599.5*eta2 - 71523.*eta3)*S2 + (492.603 - 9508.5*eta + 57303.4*eta2 - 109418.*eta3)*S3;
2939 double uneqSpin = 262.143*(pWF->
dchi)*sqrt(1.-4.*eta)*eta2;
2940 total = noSpin + eqSpin + uneqSpin;
2943 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_44_p3: version is not valid.Recommended version is 122019.");}
2951 switch (InterPhaseFlag){
2953 double eta = pWF->
eta;
2954 double S = pWF->
STotR;
2955 double eta2,eta3,eta4,eta5,eta6,S2,S3,S4;
2964 double noSpin = 3160.88 + 974.355*eta - 28932.5*eta2 + 369780.*eta3 - 2.28832e6*eta4 + 6.82533e6*eta5 - 7.86254e6*eta6;
2965 double eqSpin = (26.3355 - 196.851*eta + 438.401*eta2)*S + (45.9957 - 256.248*eta + 117.563*eta2)*S2 + (-20.0261 + 467.057*eta - 1613.*eta2)*S3 + (-61.7446 + 577.057*eta - 1096.81*eta2)*S4;
2966 double uneqSpin = 65.3326*pWF->
dchi*sqrt(1.-4.*eta)*eta2;
2967 total = noSpin + eqSpin + uneqSpin;
2970 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_21_p4: version is not valid.Recommended version is 122019.");}
2977 switch (InterPhaseFlag){
2979 double eta = pWF->
eta;
2980 double S = pWF->
STotR;
2981 double eta2,eta3,eta4,eta5, eta6,S2,S3;
2989 double noSpin = 3239.44 - 661.15*eta + 5139.79*eta2 + 3456.2*eta3 - 248477.*eta4 + 1.17255e6*eta5 - 1.70363e6*eta6;
2990 double eqSpin = (225.859 - 4150.09*eta + 24364.*eta2 - 46537.3*eta3)*S + (35.2439 - 994.971*eta + 8953.98*eta2 - 23603.5*eta3)*S2 + (-310.489 + 5946.15*eta - 35337.1*eta2 + 67102.4*eta3)*S3;
2991 double uneqSpin = 30.484*pWF->
dchi*sqrt(1.-4.*eta)*eta2;
2992 total = noSpin + eqSpin + uneqSpin;
2995 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_33_p4: version is not valid. Recommended version is 122019.");}
3002 switch (InterPhaseFlag){
3004 double eta = pWF->
eta;
3005 double S = pWF->
STotR;
3006 double eta2,eta3,eta4,eta5,eta6,S2,S3,S4;
3015 double noSpin = 3307.49 - 476.909*eta - 5980.37*eta2 + 127610.*eta3 - 919108.*eta4 + 2.86393e6*eta5 - 3.26362e6*eta6;
3016 double eqSpin = (-5.02553 - 282.354*eta + 1291.56*eta2)*S + (-43.8823 + 740.123*eta - 2402.94*eta2)*S2 + (43.8812 - 370.362*eta + 294.289*eta2)*S3 + (106.047 - 1569.03*eta + 4810.61*eta2)*S4;
3017 double uneqSpin = -132.244*(pWF->
dchi)*sqrt(1.-4.*eta)*eta2;
3018 total = noSpin + eqSpin + uneqSpin;
3021 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_32_p4: version is not valid. Recommended version is 122019.");}
3028 switch (InterPhaseFlag){
3030 double eta = pWF->
eta;
3031 double S = pWF->
STotR;
3032 double eta2,eta3,eta4,eta5,eta6,S2,S3;
3040 double noSpin = 3245.63 - 928.56*eta + 8463.89*eta2 - 17422.6*eta3 - 165169.*eta4 + 908279.*eta5 - 1.31138e6*eta6;
3041 double eqSpin = (32.506 - 590.293*eta + 3536.61*eta2 - 6758.52*eta3)*S + (-25.7716 + 738.141*eta - 4867.87*eta2 + 9129.45*eta3)*S2 + (-15.7439 + 620.695*eta - 4679.24*eta2 + 9582.58*eta3)*S3;
3042 double uneqSpin = 87.0832*pWF->
dchi*sqrt(1.-4.*eta)*eta2;
3043 total = noSpin + eqSpin + uneqSpin;
3046 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_44_p4: version is not valid. Recommended version is 122019.");}
3054 switch (InterPhaseFlag){
3056 double eta = pWF->
eta;
3057 double S = pWF->
STotR;
3058 double eta2,eta3,S2,S3,S4;
3064 double noSpin = 3102.36 + 315.911*eta - 1688.26*eta2 + 3635.76*eta3;
3065 double eqSpin = (-23.0959 + 320.93*eta - 1029.76*eta2)*S + (-49.5435 + 826.816*eta - 3079.39*eta2)*S2 + (40.7054 - 365.842*eta + 1094.11*eta2)*S3 + (81.8379 - 1243.26*eta + 4689.22*eta2)*S4;
3066 double uneqSpin = 119.014*(pWF->
dchi)*sqrt(1.-4.*eta)*eta2;
3067 total = noSpin + eqSpin + uneqSpin;
3070 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_21_p5: version is not valid. Recommended version is 122019.");}
3077 switch (InterPhaseFlag){
3079 double eta = pWF->
eta;
3080 double S = pWF->
STotR;
3081 double eta2,eta3,eta4,eta5,eta6,S2,S3;
3089 double noSpin = 3114.3 + 2143.06*eta - 49428.3*eta2 + 563997.*eta3 - 3.35991e6*eta4 + 9.99745e6*eta5 - 1.17123e7*eta6;
3090 double eqSpin = (190.051 - 3705.08*eta + 23046.2*eta2 - 46537.3*eta3)*S + (63.6615 - 1414.2*eta + 10166.1*eta2 - 23603.5*eta3)*S2 + (-257.524 + 5179.97*eta - 33001.4*eta2 + 67102.4*eta3)*S3;
3091 double uneqSpin = 54.9833*pWF->
dchi*sqrt(1.-4.*eta)*eta2;
3092 total = noSpin + eqSpin + uneqSpin;
3095 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_33_p5: version is not valid. Recommended version is 122019.");}
3102 switch (InterPhaseFlag){
3104 double eta = pWF->
eta;
3105 double S = pWF->
STotR;
3106 double eta2,eta3,eta4,eta5,eta6,eta7,S2,S3,S4;
3116 double noSpin = 3259.03 - 3967.58*eta + 111203.*eta2 - 1.81883e6*eta3 + 1.73811e7*eta4 - 9.56988e7*eta5 + 2.75056e8*eta6 - 3.15866e8*eta7;
3117 double eqSpin = (19.7509 - 1104.53*eta + 3810.18*eta2)*S + (-230.07 + 2314.51*eta - 5944.49*eta2)*S2 + (-201.633 + 2183.43*eta - 6233.99*eta2)*S3 + (106.047 - 1569.03*eta + 4810.61*eta2)*S4;
3118 double uneqSpin = 112.714*pWF->
dchi*sqrt(1.-4.*eta)*eta2;
3119 total = noSpin + eqSpin + uneqSpin;
3122 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_32_p5: version is not valid. Recommended version is 122019.");}
3129 switch (InterPhaseFlag){
3131 double eta = pWF->
eta;
3132 double S = pWF->
STotR;
3133 double eta2,eta3,eta4,eta5,eta6,eta7,S2,S3;
3142 double noSpin = 3108.38 + 3722.46*eta - 119588.*eta2 + 1.92148e6*eta3 - 1.69796e7*eta4 + 8.39194e7*eta5 - 2.17143e8*eta6 + 2.2829700000000003e8*eta7;
3143 double eqSpin = (118.319 - 529.854*eta)*eta*S + (21.0314 - 240.648*eta + 516.333*eta2)*S2 + (20.3384 - 356.241*eta + 999.417*eta2)*S3;
3144 double uneqSpin = 97.1364*(pWF->
dchi)*sqrt(1.-4.*eta)*eta2;
3145 total = noSpin + eqSpin + uneqSpin;
3148 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_44_p5: version is not valid. Recommended version is 122019.");}
3156 switch (InterPhaseFlag){
3158 double eta = pWF->
eta;
3159 double S = pWF->
STotR;
3160 double eta2,eta3,S2,S3,S4;
3166 double noSpin = 3089.18 + 4.89194*eta + 190.008*eta2 - 255.245*eta3;
3167 double eqSpin = (2.96997 + 57.1612*eta - 432.223*eta2)*S + (-18.8929 + 630.516*eta - 2804.66*eta2)*S2 + (-24.6193 + 549.085*eta2)*S3 + (-12.8798 - 722.674*eta + 3967.43*eta2)*S4;
3168 double uneqSpin = 74.0984*(pWF->
dchi)*sqrt(1.-4.*eta)*eta2;
3169 total = noSpin + eqSpin + uneqSpin;
3172 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_21_p6: version is not valid. Recommended version is 122019.");}
3179 switch (InterPhaseFlag){
3181 double eta = pWF->
eta;
3182 double S = pWF->
STotR;
3183 double eta2,eta3, eta4, eta5, eta6,S2,S3;
3191 double noSpin = 3111.46 + 384.121*eta - 13003.6*eta2 + 179537.*eta3 - 1.19313e6*eta4 + 3.79886e6*eta5 - 4.64858e6*eta6;
3192 double eqSpin = (182.864 - 3834.22*eta + 24532.9*eta2 - 50165.9*eta3)*S + (21.0158 - 746.957*eta + 6701.33*eta2 - 17842.3*eta3)*S2 + (-292.855 + 5886.62*eta - 37382.4*eta2 + 75501.8*eta3)*S3;
3193 double uneqSpin = 75.5162*pWF->
dchi*sqrt(1.-4.*eta)*eta2;
3194 total = noSpin + eqSpin + uneqSpin;
3197 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_33_p6: version is not valid. Recommended version is 122019.");}
3204 switch (InterPhaseFlag){
3206 double eta = pWF->
eta;
3207 double S = pWF->
STotR;
3208 double eta2,eta3,eta4,eta5,eta6,eta7,S2,S3,S4;
3218 double noSpin = 3259.03 - 3967.58*eta + 111203.*eta2 - 1.81883e6*eta3 + 1.73811e7*eta4 - 9.56988e7*eta5 + 2.75056e8*eta6 - 3.15866e8*eta7;
3219 double eqSpin = (19.7509 - 1104.53*eta + 3810.18*eta2)*S + (-230.07 + 2314.51*eta - 5944.49*eta2)*S2 + (-201.633 + 2183.43*eta - 6233.99*eta2)*S3 + (106.047 - 1569.03*eta + 4810.61*eta2)*S4;
3220 double uneqSpin = 112.714*pWF->
dchi*sqrt(1.-4.*eta)*eta2;
3221 total = noSpin + eqSpin + uneqSpin;
3224 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_32_p6: version is not valid. Recommended version is 122019.");}
3231 switch (InterPhaseFlag){
3233 double eta = pWF->
eta;
3234 double S = pWF->
STotR;
3235 double eta2,eta3,eta4,eta5,eta6,S2,S3;
3243 double noSpin = 3096.03 + 986.752*eta - 20371.1*eta2 + 220332.*eta3 - 1.31523e6*eta4 + 4.29193e6*eta5 - 6.01179e6*eta6;
3244 double eqSpin = (-9.96292 - 118.526*eta + 2255.76*eta2 - 6758.52*eta3)*S + (-14.4869 + 370.039*eta - 3605.8*eta2 + 9129.45*eta3)*S2 + (17.0209 + 70.1931*eta - 3070.08*eta2 + 9582.58*eta3)*S3;
3245 double uneqSpin = 23.0759*pWF->
dchi*sqrt(1.-4.*eta)*eta2;
3246 total = noSpin + eqSpin + uneqSpin;
3249 default:{
XLAL_ERROR_REAL8(
XLAL_EINVAL,
"Error in IMRPhenomXHM_Inter_Phase_44_p6: version is not valid. Recommended version is 122019.");}
3261 double invf = powers_of_f->
m_one;
3262 double invf2 = powers_of_f->
m_two;
3263 double invf3 = powers_of_f->
m_three;
3264 double logfv=powers_of_f->
log;
3266 double fda=pWFHM->
fDAMP;
3267 double frd=pWFHM->
fRING;
3272 phaseIR = pPhase->
c0 *ff + (pPhase->
c1)*logfv - (pPhase->
c2)*invf -1./3.* (pPhase->
c4)*invf3 + (pPhase->
cL)* atan((ff - frd)/fda);
3278 phaseIR = pPhase->
c0 *ff + (pPhase->
c1)*logfv - (pPhase->
c2)*invf -1./3.* (pPhase->
c4)*invf3 -0.5*pPhase->
c3*invf2+ (pPhase->
cL)* atan((ff - frd)/fda);
3288 double invf = powers_of_f->
m_one;
3289 double invf2 = powers_of_f->
m_two;
3290 double invf4 = powers_of_f->
m_four;
3292 double fda=pWFHM->
fDAMP;
3293 double frd=pWFHM->
fRING;
3300 dphaseIR = ( pPhase->
c0 + (pPhase->
c1)*invf + (pPhase->
c2)*invf2 + (pPhase->
c4)*invf4 + ( (pPhase->
cL)* fda/(fda*fda +(ff - frd)*(ff - frd)) ) );
3303 double invf3 = powers_of_f->
m_three;
3306 dphaseIR = ( pPhase->
c0 + (pPhase->
c1)*invf + (pPhase->
c2)*invf2 + (pPhase->
c4)*invf4 +
3307 (pPhase->
c3)*invf3 + ( (pPhase->
cL)* fda/(fda*fda +(ff - frd)*(ff - frd)) ) );
3317 double invf2 = powers_of_f->
m_two;
3318 double invf3 = powers_of_f->
m_three;
3319 double invf5 = powers_of_f->
m_five;
3321 double fda=pWFHM->
fDAMP;
3322 double frd=pWFHM->
fRING;
3329 d2phaseIR = -(pPhase->
c1)*invf2 -2. *(pPhase->
c2)*invf3 -4. *(pPhase->
c4)*invf5 -2.* (pPhase->
cL)* (ff - frd)*fda/pow((fda*fda +(ff - frd)*(ff - frd)),2);
3332 double invf4 = powers_of_f->
m_four;
3335 d2phaseIR =-(pPhase->
c1)*invf2 -3.*pPhase->
c3*invf4-2. *(pPhase->
c2)*invf3 -4. *(pPhase->
c4)*invf5 -2.* (pPhase->
cL)* (ff - frd)*fda/pow((fda*fda +(ff - frd)*(ff - frd)),2);
static double double delta
int IMRPhenomX_Initialize_Powers(IMRPhenomX_UsefulPowers *p, REAL8 number)
static double IMRPhenomXHM_Inspiral_Amp_NDAnsatz(IMRPhenomX_UsefulPowers *powers_of_Mf, IMRPhenomXHMWaveformStruct *pWFHM, IMRPhenomXHMAmpCoefficients *pAmp)
static double IMRPhenomXHM_Inspiral_Amp_Ansatz(IMRPhenomX_UsefulPowers *powers_of_Mf, IMRPhenomXHMWaveformStruct *pWFHM, IMRPhenomXHMAmpCoefficients *pAmp)
COMPLEX16 SpheroidalToSpherical(IMRPhenomX_UsefulPowers *powers_of_Mf, IMRPhenomXAmpCoefficients *pAmp22, IMRPhenomXPhaseCoefficients *pPhase22, IMRPhenomXHMAmpCoefficients *pAmplm, IMRPhenomXHMPhaseCoefficients *pPhaselm, IMRPhenomXHMWaveformStruct *pWFlm, IMRPhenomXWaveformStruct *pWF22)
static double IMRPhenomXHM_RD_Amp_DAnsatz(IMRPhenomX_UsefulPowers *powers_of_Mf, IMRPhenomXHMWaveformStruct *pWF, IMRPhenomXHMAmpCoefficients *pAmp)
static double IMRPhenomXHM_RD_Amp_Ansatz(IMRPhenomX_UsefulPowers *powers_of_Mf, IMRPhenomXHMWaveformStruct *pWFHM, IMRPhenomXHMAmpCoefficients *pAmp)
static double IMRPhenomXHM_RD_Amp_NDAnsatz(IMRPhenomX_UsefulPowers *powers_of_Mf, IMRPhenomXHMAmpCoefficients *pAmp, IMRPhenomXHMPhaseCoefficients *pPhase, IMRPhenomXHMWaveformStruct *pWFHM, IMRPhenomXAmpCoefficients *pAmp22, IMRPhenomXPhaseCoefficients *pPhase22, IMRPhenomXWaveformStruct *pWF22)
static REAL8 UNUSED q3(REAL8 e0, REAL8 f0, REAL8 inc, REAL8 bet, REAL8 FPlus, REAL8 FCross)
static REAL8 UNUSED q2(REAL8 e0, REAL8 f0, REAL8 inc, REAL8 bet, REAL8 FPlus, REAL8 FCross)
static REAL8 UNUSED q1(REAL8 e0, REAL8 f0, REAL8 inc, REAL8 bet, REAL8 FPlus, REAL8 FCross)
static REAL8 UNUSED z1(REAL8 e0, REAL8 f0, REAL8 inc, REAL8 bet, REAL8 FPlus, REAL8 FCross)
static REAL8 UNUSED z2(REAL8 e0, REAL8 f0, REAL8 inc, REAL8 bet, REAL8 FPlus, REAL8 FCross)
#define XLAL_ERROR_VOID(...)
#define XLAL_ERROR_REAL8(...)
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
REAL8 CollocationPointsFreqsAmplitudeInter[N_MAX_COEFFICIENTS_AMPLITUDE_INTER]
UINT2 VersionCollocPtsInter[N_MAX_COEFFICIENTS_AMPLITUDE_INTER]
ParameterSpaceFit IntermediateAmpFits[N_HIGHERMODES_IMPLEMENTED *N_MAX_COEFFICIENTS_AMPLITUDE_INTER]
REAL8 InterCoefficient[N_MAX_COEFFICIENTS_AMPLITUDE_INTER]
REAL8 CollocationPointsValuesAmplitudeInter[N_MAX_COEFFICIENTS_AMPLITUDE_INTER]