LALSimulation  5.4.0.1-89842e6
exact_derivatives-Hreal.c
Go to the documentation of this file.
1 #define Power(A,B) pow(A,B)
2 #define Sqrt(A) sqrt(A)
3 #define Log(A) log(A)
4 const double csi1 = 1.0 + (1.-fabs(1.-tortoise)) * (csi - 1.0);
5 const double csi2 = 1.0 + (0.5-copysign(0.5, 1.5-tortoise)) * (csi - 1.0);
6 const double prT = csi2*(nx*p->data[0] + ny*p->data[1] + nz*p->data[2]);
7 const double prTtimesoneminuscsi1inv = (1. - 1./csi1)*prT;
8 const double tmpP0 = p->data[0] - nx*prTtimesoneminuscsi1inv;
9 const double tmpP1 = p->data[1] - ny*prTtimesoneminuscsi1inv;
10 const double tmpP2 = p->data[2] - nz*prTtimesoneminuscsi1inv;
12 const double pvr = r*(tmpP0*vx + tmpP1*vy + tmpP2*vz);
13 const double pvrsq = ((pvr)*(pvr));
14 const double pn = nx*tmpP0 + ny*tmpP1 + nz*tmpP2;
15 const double pnsq = ((pn)*(pn));
16 const double pr = pn;
17 const double prsq = ((pr)*(pr));
18 const double pf = pxir;
19 const double pxirsq = ((pxir)*(pxir));
20 const double ptheta2 = invxi2*pvrsq;
21 const double prT4 = ((prT)*(prT)*(prT)*(prT));
22 const double Hnspt7 = deltaR*invrho2;
23 const double Hnspt6 = invxi2*rho2invLambda;
24 const double Hnspt5 = qq*u2;
25 const double Hnspt4 = 1. + Hnspt6*((pf)*(pf)) + Hnspt7*prsq + Hnspt5*prT4 + invrho2*ptheta2;
26 const double Hnspt3 = deltaT*Hnspt4;
27 const double Hnspt2 = Hnspt3*rho2;
28 const double Hnspt1 = pf*ww;
30 const double Qpt3 = deltaR*invrho2;
31 const double Qpt2 = invxi2*rho2invLambda;
32 const double Qpt1 = invrho2*invxi2;
33 const double Q = 1. + pvrsq*Qpt1 + pxirsq*Qpt2 + pnsq*Qpt3;
34 const double pn2 = deltaR*invrho2*prsq;
35 const double pp = -1. + Q;
36 const double sKerrmultfact = -8. - 36.*pn2*r + 3.*pp*r;
37 const double sStarmultfact = 14. - 30.*pn2*r + 4.*pp*r;
41 const double pn2pp = pn2*pp;
42 const double pp2 = ((pp)*(pp));
43 const double pn2u2 = pn2*u2;
44 const double ppu2 = pp*u2;
45 const double pn2ppu2 = pn2pp*u2;
46 const double sMultiplier1pt6 = -360.*((pn2)*(pn2)) + 126.*pn2pp + 3.*pp2;
47 const double sMultiplier1pt5 = -96.*pn2pp + 23.*pp2;
48 const double sMultiplier1pt4 = 324.*pn2 - 120.*pp + r*sMultiplier1pt6;
49 const double sMultiplier1pt3 = -282.*pn2 + 206.*pp + r*sMultiplier1pt5;
50 const double sMultiplier1pt2 = 54. + r*sMultiplier1pt4;
51 const double sMultiplier1pt1 = -706. + eta*sMultiplier1pt2 + r*sMultiplier1pt3;
52 const double sMultiplier1 = -0.013888888888888888*eta*sMultiplier1pt1*u2;
53 const double sMultiplier2pt6 = -1.625*pn2ppu2 + 5.625*pn2*pn2u2;
54 const double sMultiplier2pt5 = 0.25*pn2ppu2 - 0.3125*pp2*u2;
55 const double sMultiplier2pt4 = -6.125*pn2u2 + 1.4166666666666665*ppu2 + r*sMultiplier2pt6;
56 const double sMultiplier2pt3 = -0.6666666666666666*pn2u2 - 3.0277777777777777*ppu2 + r*sMultiplier2pt5;
57 const double sMultiplier2pt2 = r*sMultiplier2pt4 - 2.333333333333333*u2;
58 const double sMultiplier2pt1 = eta*sMultiplier2pt2 + r*sMultiplier2pt3 - 6.222222222222221*u2;
59 const double sMultiplier2 = eta*sMultiplier2pt1;
60 const double deltaSigmaStarUSCOREx2 = deltaSigmaStarUSCOREx1 + sigmaStar->data[0]*sMultiplier1 + sigmaKerr->data[0]*sMultiplier2;
61 const double deltaSigmaStarUSCOREy2 = deltaSigmaStarUSCOREy1 + sigmaStar->data[1]*sMultiplier1 + sigmaKerr->data[1]*sMultiplier2;
62 const double deltaSigmaStarUSCOREz2 = deltaSigmaStarUSCOREz1 + sigmaStar->data[2]*sMultiplier1 + sigmaKerr->data[2]*sMultiplier2;
63 const double deltaSigmaStarUSCOREx3 = deltaSigmaStarUSCOREx2 + coeffs->d1*etau3*sigmaStar->data[0];
64 const double deltaSigmaStarUSCOREy3 = deltaSigmaStarUSCOREy2 + coeffs->d1*etau3*sigmaStar->data[1];
65 const double deltaSigmaStarUSCOREz3 = deltaSigmaStarUSCOREz2 + coeffs->d1*etau3*sigmaStar->data[2];
66 const double deltaSigmaStarUSCOREx = deltaSigmaStarUSCOREx3 + coeffs->d1v2*etau3*sigmaKerr->data[0];
67 const double deltaSigmaStarUSCOREy = deltaSigmaStarUSCOREy3 + coeffs->d1v2*etau3*sigmaKerr->data[1];
68 const double deltaSigmaStarUSCOREz = deltaSigmaStarUSCOREz3 + coeffs->d1v2*etau3*sigmaKerr->data[2];
72 const double sxi = sx*xiUSCOREx + sy*xiUSCOREy + sz*xiUSCOREz;
73 const double sv = sx*vx + sy*vy + sz*vz;
74 const double sn = nx*sx + ny*sy + nz*sz;
75 const double s3 = e3USCOREx*sx + e3USCOREy*sy + e3USCOREz*sz;
76 const double sqrtQ = Sqrt(Q);
77 const double oneplus2sqrtQ = 1. + 2.*sqrtQ;
81 const double expMUsqsqrtQplusQ = expMUsq*(Q + sqrtQ);
82 const double Hwrpt4a = pxirsq*sv;
83 const double Hwrpt4 = expMUsqexpnusq*Hwrpt4a;
84 const double Hwrpt3c = pxir*sxi;
85 const double Hwrpt3b = Hwrpt3c*pvr;
86 const double Hwrpt3a = expMUexpnu*Hwrpt3b;
87 const double Hwrpt3 = B*Hwrpt3a;
88 const double Hwrpt2g = deltaR*sv;
89 const double Hwrpt2f = sn*sqrtdeltaR;
90 const double Hwrpt2e = Hwrpt2f*pvr;
91 const double Hwrpt2d = Hwrpt2g*pnsq;
92 const double Hwrpt2c = Hwrpt2e*pn;
93 const double Hwrpt2b = expMUsqsqrtQplusQ*sv;
94 const double Hwrpt2a = (Hwrpt2b + Hwrpt2c - Hwrpt2d)*xi2;
95 const double Hwrpt2 = deltaT*Hwrpt2a;
97 const double Hwrpt1a = Hwrpt1b*sqrtdeltaR;
99 const double Hwr = Hwrpt1*(Hwrpt2 - Hwrpt3 + Hwrpt4);
100 const double Hwcospt9 = pxir*sxi;
101 const double Hwcospt8 = pvr*sv;
103 const double Hwcospt6 = Hwcospt7*sqrtdeltaR;
105 const double Hwcospt4 = Hwcospt6*pn;
107 const double Hwcospt2 = -(B*Hwcospt4) + Hwcospt3*sn;
110 const double deltaTsqrtQ = deltaT*sqrtQ;
111 const double invdeltatTsqrtQ = 1./deltaTsqrtQ;
112 const double HSOLpt5 = (-B + expMUexpnu)*pxir;
113 const double HSOLpt4 = HSOLpt5*invexpMU;
114 const double HSOLpt3 = expnusq*HSOLpt4;
115 const double HSOLpt2 = HSOLpt3*s3;
116 const double HSOLpt1 = HSOLpt2*invxi2;
117 const double HSOL = HSOLpt1*invdeltatTsqrtQ;
118 const double deltaTsqrtQplusQ = deltaT*(Q + sqrtQ);
122 const double HSONLpt1b = pn*xi2;
123 const double HSONLpt1a = HSONLpt1b*(-mucos + nucos) + (mur - nur)*pvr;
124 const double HSONLpt1 = -(HSONLpt1b*mucos) + mur*pvr + HSONLpt1a*sqrtQ;
125 const double HSONLpt2d = nur*pxir;
127 const double HSONLpt2b = B*sxi;
130 const double HSONLpt3c = pxir*sv;
133 const double HSONLpt3 = B*HSONLpt2 - BR*HSONLpt3a;
134 const double HSONLpt4e = sn*xi2;
136 const double HSONLpt4c = HSONLpt4d*pxir;
137 const double HSONLpt4b = HSONLpt4c*nucos;
139 const double HSONLpt4 = -(B*HSONLpt4a) + HSONLpt3*sqrtdeltaR;
140 const double HSONL = HSONLmult*HSONLpt4;
141 const double Hs = HSOL + HSONL + s3*w + Hwcos*wcos + Hwr*wr;
142 const double Hsspt1 = -0.5*(-3.*((sn)*(sn)) + ((sx)*(sx)) + ((sy)*(sy)) + ((sz)*(sz)));
143 const double Hss = Hsspt1*u3;
145 const double Hpt1 = etau4*(s1dots1 + s2dots2);
146 const double H = Hns + coeffs->dheffSSv2*Hpt1 + Hs + Hss + coeffs->dheffSS*Hpt1*sKerrdotsStar;
147 const double Hreal = Sqrt(1. + 2.*eta*(-1. + H));
148 const double invHreal = 1.0/Hreal;
const double HSONLpt4b
const double sKerrmultfact
const double Hwrpt3b
const double pn2u2
const double Hwcospt3
const double HSONLpt2a
const double Hnspt1
const double pn2
const double sMultiplier2pt6
const double sx
const double deltaSigmaStarUSCOREy1
const double pp
const double Hsspt1
const double Hns
const double sMultiplier2pt1
const double Hwrpt2d
const double Hwrpt1
const double pvr
const double sMultiplier1
const double Hwrpt2e
const double Hnspt2
const double HSONLpt1
const double Hpt1
const double sxi
const double invdeltaTsqrtQplusQ
const double expMUsqsqrtQplusQ
const double csi1
const double HSONLmult
const double oneplus2sqrtQ
const double Hwcospt9
const double pvrsq
const double deltaSigmaStarUSCOREz2
const double sStarmultfact
const double Hnspt7
const double prT
const double Hwrpt2
const double deltaSigmaStarUSCOREz3
const double Hss
const double HSONLpt1a
const double sMultiplier1pt1
#define Sqrt(A)
const double HSOLpt3
const double sz
const double Hs
const double deltaSigmaStarUSCOREx1
const double tmpP0
const double prsq
const double Q
const double sMultiplier1pt5
const double invHreal
const double Hwrpt3a
const double deltaSigmaStarUSCOREx3
const double Hnspt6
const double deltaTsqrtQ
const double Hwcospt5
const double HSONLmult2
const double deltaSigmaStarUSCOREy2
const double Hwcospt7
const double HSONLpt2
const double prT4
const double HSONL
const double pnsq
const double HSONLpt3b
const double twoB1psqrtQsqrtQ
const double Hwrpt4
const double pn
const double sy
const double oneplus1sqrtQ
const double csi2
const double HSONLpt3c
const double Hwcospt8
const double Hwcospt6
const double deltaSigmaStarUSCOREx
const double pxirsq
const double HSOLpt4
const double deltaSigmaStarUSCOREx2
const double Hwrpt1a
const double Hwcospt1
const double HSONLpt2d
const double invdeltatTsqrtQ
const double Hwr
const double Hnspt4
const double Hwrpt2b
const double ppu2
const double tmpP1
const double pn2ppu2
const double pn2pp
const double sMultiplier1pt6
const double pp2
const double Hwcospt2
const double sv
const double Hwrpt2f
const double HSOLpt1
const double Hnspt3
const double HSONLpt2b
const double HSOLpt2
const double Hwrpt4a
const double sMultiplier1pt3
const double Hwrpt2c
const double HSONLpt3a
const double deltaSigmaStarUSCOREy
const double sMultiplier1pt4
const double sqrtQ
const double HSOLpt5
const double Hwrpt3c
const double HSONLpt3
const double Qpt1
const double sKerrdotsStar
const double pxir
const double Hnspt5
const double sMultiplier2pt2
const double HSOL
const double Qpt3
const double HSONLpt4d
const double sMultiplier2pt4
const double Hreal
const double Qpt2
const double HSONLpt4e
const double sMultiplier2pt3
const double tmpP2
const double sMultiplier2pt5
const double HSONLpt4c
const double H
const double pr
const double pf
const double s3
const double sMultiplier2
const double sMultiplier1pt2
const double deltaTsqrtQplusQ
const double HSONLpt4
const double HSONLpt1b
const double deltaSigmaStarUSCOREz
const double invtwoB1psqrtQsqrtQ
const double HSONLpt4a
const double sn
const double Hwrpt1b
const double deltaSigmaStarUSCOREz1
const double deltaSigmaStarUSCOREy3
const double HSONLpt2c
const double Hwcos
const double ptheta2
const double Hwrpt2g
const double Hwcospt4
const double prTtimesoneminuscsi1inv
const double Hwrpt3
const double Hwrpt2a
const double sStarUSCOREy
const double ww
const double nur
const double etau3
const double xiUSCOREy
const double mucos
const double invLambda
const double e3USCOREz
const double deltaR
const double e3USCOREx
const double invxi2
const double invexpMU
const double s2dots2
const double rho2invLambda
const double expMUsq
const double u3
const double expnusq
const double wr
const double ny
const double invexpMUcubinvexpnu
const double sStarUSCOREz
const double nucos
const double vy
const double wcos
const double etau4
const double BR
const double qq
const double s1dots1
const double xi2
const double w
const double sKerrUSCOREy
const double sStarUSCOREx
const double invrho2
const double sKerrUSCOREx
const double expMUexpnu
const double rho2
const double sKerrUSCOREz
const double expMUsqexpnusq
const double u2
const double e3USCOREy
const double xiUSCOREx
const double vz
const double etaover12r
const double xiUSCOREz
const double mur
const double csi
const double expnuinvexpMU2
const double nz
const double B
const double vx
const double nx
const double sqrtdeltaR
static const INT4 r
list p
double deltaT
Definition: unicorn.c:24