21#include <lal/LALInspiral.h>
29 REAL8 df, shft, phi0, amp0, amp, f,
m, eta,
delta, chi_s, chi_a, chi, Psi;
30 REAL8 psiNewt, psi2, psi3, psi4, psi5, psi6, psi6L, psi7, psi3S, psi4S, psi5S;
31 REAL8 alpha2, alpha3, alpha4, alpha5, alpha6, alpha6L, alpha7, alpha3S, alpha4S, alpha5S;
32 REAL8 v, v2, v3, v4, v5, v6, v7, v0, mSevenBySix, piM, oneByThree;
36 if (!signalvec || !(signalvec->
data) || !
params) {
57 chi = chi_s*(1. - 76.*eta/113.) +
delta*chi_a;
74 psi4S = 63845.*(-81. + 4.*eta)*chi*chi/(8.*pow(-113. + 76.*eta, 2.));
75 psi5S = -565.*(-146597. + 135856.*eta + 17136.*eta*eta)*chi/(2268.*(-113. + 76.*eta));
77 alpha3S = (113.*chi)/24.;
78 alpha4S = (12769.*pow(chi,2)*(-81. + 4.*eta))/(32.*pow(-113. + 76.*eta,2));
79 alpha5S = (-113.*chi*(502429. - 591368.*eta + 1680*eta*eta))/(16128.*(-113 + 76*eta));
82 psiNewt = 3./(128.*eta);
83 psi2 = 3715./756. + 55.*eta/9.;
85 psi4 = 15293365./508032. + 27145.*eta/504. + 3085.*eta*eta/72. + psi4S;
89 + (76055.*eta*eta)/1728. - (127825.*eta*eta*eta)/1296.;
91 psi7 = (77096675.*
LAL_PI)/254016. + (378515.*
LAL_PI*eta)/1512.
92 - (74045.*
LAL_PI*eta*eta)/756.;
95 alpha2 = 1.1056547619047619 + (11*eta)/8.;
96 alpha3 = -2*
LAL_PI + alpha3S;
97 alpha4 = 0.8939214212884228 + (18913*eta)/16128. + (1379*eta*eta)/1152. + alpha4S;
98 alpha5 = (-4757*
LAL_PI)/1344. + (57*eta*
LAL_PI)/16. + alpha5S;
99 alpha6 = -58.601030974347324 + (3526813753*eta)/2.7869184e7 -
100 (1041557*eta*eta)/258048. + (67999*eta*eta*eta)/82944. +
103 alpha7 = (-5111593*
LAL_PI)/2.709504e6 - (72221*eta*
LAL_PI)/24192. -
104 (1349*eta*eta*
LAL_PI)/24192.;
177 signalvec->
data[0] = 0.;
178 signalvec->
data[
n/2] = 0.;
180 mSevenBySix = -7./6.;
187 for (
i=1;
i<nBy2;
i++) {
196 v = pow(piM*f, oneByThree);
198 v2 = v*v; v3 = v2*v; v4 = v3*v; v5 = v4*v; v6 = v5*v; v7 = v6*v;
200 if ((f < params->fLower) || (f >
params->fCutoff)) {
207 Psi = psiNewt*pow(v, -5.)*(1.
208 + psi2*v2 + psi3*v3 + psi4*v4
209 + psi5*v5*(1.+3.*log(v/v0))
210 + (psi6 + psi6L*log(4.*v))*v6 + psi7*v7);
212 amp = amp0*pow(f, mSevenBySix)*(1.
213 + alpha2*v2 + alpha3*v3 + alpha4*v4
214 + alpha5*v5 + (alpha6 + alpha6L*(
LAL_GAMMA+log(4.*v)) )*v6
237 if (!signalvec1 || !signalvec2 || !(signalvec1->
data) || !(signalvec2->
data)) {
260 REAL8 chis, chia, chis2, chia2;
261 REAL8 tau, tk[8], eta2, eta3;
268 chis = (spin1+spin2)/2.;
269 chia = (spin1-spin2)/2.;
279 tk[2] = 2.9484126984126986 + (11*eta)/3.;
280 tk[3] = (-32*
LAL_PI)/5. + (226*chia*
delta)/15. + chis*(15.066666666666666 - (152*eta)/15.);
281 tk[4] = 6.020630590199042 + ((233*chis*chia)/24. - (719*chia*chis)/24.)*
delta +
282 chia*chia*(4.854166666666667 - 20*eta) + chis2*(-14.979166666666666 - eta/12.) +
283 chis*chis*(4.854166666666667 + (7*eta)/12.) + (5429*eta)/504. + (617*eta2)/72. +
284 chia2*(-14.979166666666666 + 60*eta);
285 tk[5] = (-7729*
LAL_PI)/252. + (13*
LAL_PI*eta)/3. +
delta*((146597*chia)/756. + (28*chia*eta)/3.) +
286 chis*(193.91137566137567 - (4852*eta)/27. - (68*eta2)/3.);
287 tk[6] = -428.291776175525 + (128*
LAL_PI*
LAL_PI)/3. + (6848*
LAL_GAMMA)/105. + (3147553127*eta)/3.048192e6 -
288 (451*
LAL_PI*
LAL_PI*eta)/12. - (15211*eta2)/1728. + (25565*eta3)/1296. + (6848*log(4*v))/105.;
289 tk[7] = (-15419335*
LAL_PI)/127008. - (75703*
LAL_PI*eta)/756. + (14809*
LAL_PI*eta2)/378.;
293 for (k = 2; k<=pnOrder; k++) {
294 tau = tau + tk[k]*pow(v, k);
static double double delta
REAL8 XLALChirpTimeReducedSpin(REAL8 v, REAL8 m1, REAL8 m2, REAL8 spin1, REAL8 spin2, UINT4 pnOrder)
Compute the chirp time of the "reduced-spin" templates.
int XLALTaylorF2ReducedSpin(REAL4Vector *signalvec, InspiralTemplate *params)
Generate the "reduced-spin templates" proposed in http://arxiv.org/abs/1107.1267.
int XLALTaylorF2ReducedSpinTemplates(REAL4Vector *signalvec1, REAL4Vector *signalvec2, InspiralTemplate *params)
Generate two orthogonal "reduced-spin" templates.
#define LALINSPIRALH_ENULL
Arguments contained an unexpected null pointer.
LAL_PNORDER_TWO_POINT_FIVE
LAL_PNORDER_ONE_POINT_FIVE
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
The inspiral waveform parameter structure containing information about the waveform to be generated.