30#include <lal/LALInspiral.h>
31#include <lal/SeqFactories.h>
32#include <lal/FindRoot.h>
33#include <lal/LALConstants.h>
36#define UNUSED __attribute__ ((unused))
41typedef struct tagxiInitIn {
107 xi23 = pow(xi, 2./3.);
108 xi43 = pow(xi, 4./3.);
110 x = xi * ( 1. + 3. * xi23 + (39./2. - 7*eta) * xi43 );
126 xi23 = pow(xi, 2./3.);
127 xi43 = pow(xi, 4./3.);
129 x = xi * ( 1. + 3. * xi23 + (39./2. - 7*eta) * xi43 );
141 REAL8 xi2, xi43, xi23, eta, eta2, pisq,
x;
147 xi23 = pow(xi, 2./3.);
148 xi43 = pow(xi, 4./3.);
151 x = xi * ( 1. + 3. * xi23 + (39./2. - 7*eta) * xi43
152 + (315./2. + (-817./4. + 123./32.*pisq) * eta + 7*eta2) *
xi2);
164 REAL8 xi2, xi43, xi23, eta, eta2, pisq,
x;
170 xi23 = pow(xi, 2./3.);
171 xi43 = pow(xi, 4./3.);
174 x = xi * ( 1. + 3. * xi23 + (39./2. - 7*eta) * xi43
175 + (315./2. + (-817./4. + 123./32.*pisq) * eta + 7*eta2) *
xi2);
190 REAL8 xi, xi23, xi43, xi113, eta, eta2;
195 xi = values->
data[1];
197 xi23 = pow(xi, 2./3.);
198 xi43 = pow(xi, 4./3.);
199 xi113 = pow(xi, 11./3.);
201 dvalues->
data[0] = xi * ( 1. + 3. * xi23 + (39./2. - 7*eta) * xi43);
203 dvalues->
data[1] = 96./5.*eta*xi113*(1. + (1273./336. - 11./4.*eta) * xi23
204 + 4.*
LAL_PI*xi + (438887./18144. - 49507./2016.*eta + 59./18.*eta2)*xi43);
215 REAL8 xi, xi23, xi43, xi53, xi113, eta, eta2;
220 xi = values->
data[1];
222 xi23 = pow(xi, 2./3.);
223 xi43 = pow(xi, 4./3.);
224 xi53 = pow(xi, 5./3.);
225 xi113 = pow(xi, 11./3.);
227 dvalues->
data[0] = xi * ( 1. + 3. * xi23 + (39./2. - 7*eta) * xi43);
228 dvalues->
data[1] = 96./5.*eta*xi113*(1. + (1273./336. - 11./4.*eta) * xi23
229 + 4.*
LAL_PI*xi + (438887./18144. - 49507./2016.*eta + 59./18.*eta2)*xi43
230 + (20033./672. - 189./8.*eta) *
LAL_PI * xi53);
241 REAL8 xi,
xi2, xi13, xi23, xi43, xi53, xi113, eta, eta2, eta3, pisq;
246 xi = values->
data[1];
250 xi13 = pow(xi, 1./3.);
251 xi23 = pow(xi, 2./3.);
252 xi43 = pow(xi, 4./3.);
253 xi53 = pow(xi, 5./3.);
254 xi113 = pow(xi, 11./3.);
257 dvalues->
data[0] = xi * ( 1. + 3. * xi23 + (39./2. - 7*eta) * xi43
258 + (315./2. + (-817./4. + 123./32.*pisq) * eta + 7*eta2) *
xi2);
260 dvalues->
data[1] = 96./5.*eta*xi113*(1. + (1273./336. - 11./4.*eta) * xi23
261 + 4.*
LAL_PI*xi + (438887./18144. - 49507./2016.*eta + 59./18.*eta2)*xi43
262 + (20033./672. - 189./8.*eta) *
LAL_PI * xi53 + (38047038863./139708800.
263 + (16./3. + 287./24. * eta)*pisq - 16554367./31104.*eta
264 + 617285./8064.*eta2 - 5605./2592.*eta3 - 1712./105.*(
LAL_GAMMA + log(4*xi13)))*
xi2);
275 REAL8 xi,
xi2, xi13, xi23, xi43, xi53, xi73, xi113, eta, eta2, eta3, pisq;
280 xi = values->
data[1];
284 xi13 = pow(xi, 1./3.);
285 xi23 = pow(xi, 2./3.);
286 xi43 = pow(xi, 4./3.);
287 xi53 = pow(xi, 5./3.);
288 xi73 = pow(xi, 7./3.);
289 xi113 = pow(xi, 11./3.);
292 dvalues->
data[0] = xi * ( 1. + 3. * xi23 + (39./2. - 7*eta) * xi43
293 + (315./2. + (-817./4. + 123./32.*pisq) * eta + 7*eta2) *
xi2);
295 dvalues->
data[1] = 96./5.*eta*xi113*(1. + (1273./336. - 11./4.*eta) * xi23
296 + 4.*
LAL_PI*xi + (438887./18144. - 49507./2016.*eta + 59./18.*eta2)*xi43
297 + (20033./672. - 189./8.*eta) *
LAL_PI * xi53 + (38047038863./139708800.
298 + (16./3. + 287./24. * eta)*pisq - 16554367./31104.*eta
299 + 617285./8064.*eta2 - 5605./2592.*eta3 - 1712./105.*(
LAL_GAMMA + log(4*xi13)))*
xi2
300 + (971011./4032. - 1608185./6048.*eta + 91495./1512.*eta2)*
LAL_PI*xi73);
334 if (
params->nStartPad < 0)
338 if (
params->tSampling <= 0)
344 if (
params->totalMass <= 0.)
370 UINT4 length=0, count, ndx;
373 REAL8 h, omega, omegaMax, t,
dt,
m, eta, phi, xi, v, xmax, xmin, xacc;
374 REAL8Vector dummy, values, dvalues, newvalues, yt, dym, dyt;
412 func = paramsInit->
func;
438 snprintf(message, 256,
"There are no Et waveforms at order %d\n",
params->order);
446 funcParams = (
void *) &in3;
477 snprintf(message, 256,
"There are no Et waveforms at order %d\n",
params->order);
501 funcParams = (
void *) &in2;
503 in4.
function(&values, &dvalues, funcParams);
507 omegaMax = 1./pow(6.,1.5);
516 while (omega<omegaMax)
525 h = 4 *
m * eta * xi * sin(2.*phi)/1.e14;
526 output1->
data[ndx] = h;
529 h = 4 *
m * eta * xi * cos(2.*phi)/1.e14;
530 output2->
data[ndx] = h;
545 phi = values.
data[0] = newvalues.
data[0];
546 xi = values.
data[1] = newvalues.
data[1];
551 in4.
function(&values, &dvalues, funcParams);
552 omega = dvalues.
data[0];
554 t = (++count-
params->nStartPad) *
dt;
561 v = pow(omega, 1./3.);
void XLALRungeKutta4Free(rk4GSLIntegrator *integrator)
int XLALInspiralInit(InspiralTemplate *params, InspiralInit *paramsInit)
rk4GSLIntegrator * XLALRungeKutta4Init(INT4 n, rk4In *input)
int XLALRungeKutta4(REAL8Vector *yout, rk4GSLIntegrator *integrator, void *params)
#define ATTATCHSTATUSPTR(statusptr)
#define DETATCHSTATUSPTR(statusptr)
#define INITSTATUS(statusptr)
#define RETURN(statusptr)
REAL8 XLALDBisectionFindRoot(REAL8(*y)(REAL8, void *), REAL8 xmin, REAL8 xmax, REAL8 xacc, void *params)
void * XLALMalloc(size_t n)
LAL_PNORDER_TWO_POINT_FIVE
LAL_PNORDER_THREE_POINT_FIVE
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
#define XLAL_PRINT_DEPRECATION_WARNING(replacement)
#define XLAL_IS_REAL8_FAIL_NAN(val)
Structure used as an input to compute the derivatives needed in solving the phasing formula when the ...
The inspiral waveform parameter structure containing information about the waveform to be generated.
This structure contains various post-Newtonian and P-approximant expansion coefficients; the meanings...
Structure to hold the pointers to the generic functions defined above.
Structure containing steps and controls for the GSL Runge-Kutta solver.
Structure used as an input to Runge-Kutta solver.
char output[FILENAME_MAX]