28#include <lal/LALInspiral.h>
29#include <lal/SeqFactories.h>
30#include <lal/FindRoot.h>
31#include <lal/LALConstants.h>
34#define UNUSED __attribute__ ((unused))
39typedef struct tagzetaInitIn {
103 REAL8 x, zeta2, zeta32, eta, eta2;
109 zeta32 = pow(
zeta, 1.5);
111 x = zeta32 * ( 1. + 0.125 * (9.+eta)*
zeta
112 + (891./128. - 201./64.*eta + 11/128.*eta2) * zeta2 );
126 REAL8 x, zeta2, zeta32, eta, eta2;
132 zeta32 = pow(
zeta, 1.5);
134 x = zeta32 * ( 1. + 0.125 * (9.+eta)*
zeta
135 + (891./128. - 201./64.*eta + 11/128.*eta2) * zeta2 );
149 REAL8 x, zeta2, zeta3, zeta32, eta, eta2, eta3, pisq;
157 zeta32 = pow(
zeta, 1.5);
160 x = zeta32 * ( 1. + 0.125 * (9.+eta)*
zeta
161 + (891./128. - 201./64.*eta + 11/128.*eta2) * zeta2
162 + (41445./1024. - (309715./3072. - 205./64.*pisq) * eta
163 + 1215./1024.*eta2 + 45./1024*eta3) * zeta3);
177 REAL8 x, zeta2, zeta3, zeta32, eta, eta2, eta3, pisq;
185 zeta32 = pow(
zeta, 1.5);
188 x = zeta32 * ( 1. + 0.125 * (9.+eta)*
zeta
189 + (891./128. - 201./64.*eta + 11/128.*eta2) * zeta2
190 + (41445./1024. - (309715./3072. - 205./64.*pisq) * eta
191 + 1215./1024.*eta2 + 45./1024*eta3) * zeta3);
207 REAL8 zeta, zeta2, zeta3, zeta5, zeta32, eta, eta2, fourpi;
217 zeta32 = pow(
zeta, 1.5);
220 dvalues->
data[0] = zeta32 * ( 1. + 0.125 * (9.+eta)*
zeta
221 + (891./128. - 201./64.*eta + 11/128.*eta2) * zeta2);
226 dvalues->
data[1] = 64./5.* eta * zeta5 * (1. + (13./336. - 2.5*eta)*
zeta
227 + fourpi*zeta32 + (117857./18144. - 12017./2016.*eta + 2.5*eta2) * zeta2);
240 REAL8 zeta, zeta2, zeta3, zeta5, zeta32, zeta52, eta, eta2, fourpi;
250 zeta32 = pow(
zeta, 1.5);
251 zeta52 = pow(
zeta, 2.5);
254 dvalues->
data[0] = zeta32 * ( 1. + 0.125 * (9.+eta)*
zeta
255 + (891./128. - 201./64.*eta + 11/128.*eta2) * zeta2 );
260 dvalues->
data[1] = 64./5.* eta * zeta5 * (1. + (13./336. - 2.5*eta)*
zeta
261 + fourpi*zeta32 + (117857./18144. - 12017./2016.*eta + 2.5*eta2) * zeta2
275 REAL8 zeta, zeta2, zeta3, zeta5, zeta32, zeta52, eta, eta2, eta3, pisq, fourpi;
286 zeta32 = pow(
zeta, 1.5);
287 zeta52 = pow(
zeta, 2.5);
291 dvalues->
data[0] = zeta32 * ( 1. + 0.125 * (9.+eta)*
zeta
292 + (891./128. - 201./64.*eta + 11/128.*eta2) * zeta2
293 + (41445./1024. - (309715./3072. - 205./64.*pisq) * eta
294 + 1215./1024.*eta2 + 45./1024*eta3) * zeta3);
299 dvalues->
data[1] = 64./5.* eta * zeta5 * (1. + (13./336. - 2.5*eta)*
zeta
300 + fourpi*zeta32 + (117857./18144. - 12017./2016.*eta + 2.5*eta2) * zeta2
302 + (-85./64.*eta3 + 488849./16128.*eta2 + 369.*pisq*eta/32.
303 - 24861497.*eta/72576. - 856.*log(16.*
zeta)/105. + 16.*pisq/3.
304 - 1712.*
LAL_GAMMA/105. + 37999588601./279417600.) * zeta3 );
317 REAL8 zeta, zeta2, zeta3, zeta5, zeta32, zeta52, zeta72, eta, eta2, eta3, pisq, fourpi;
328 zeta32 = pow(
zeta, 1.5);
329 zeta52 = pow(
zeta, 2.5);
330 zeta72 = pow(
zeta, 3.5);
334 dvalues->
data[0] = zeta32 * ( 1. + 0.125 * (9.+eta)*
zeta
335 + (891./128. - 201./64.*eta + 11/128.*eta2) * zeta2
336 + (41445./1024. - (309715./3072. - 205./64.*pisq) * eta
337 + 1215./1024.*eta2 + 45./1024*eta3) * zeta3);
342 dvalues->
data[1] = 64./5.* eta * zeta5 * (1. + (13./336. - 2.5*eta)*
zeta
343 + fourpi*zeta32 + (117857./18144. - 12017./2016.*eta + 2.5*eta2) * zeta2
345 + (-85./64.*eta3 + 488849./16128.*eta2 + 369.*pisq*eta/32.
346 - 24861497.*eta/72576. - 856.*log(16.*
zeta)/105. + 16.*pisq/3.
347 - 1712.*
LAL_GAMMA/105. + 37999588601./279417600.) * zeta3
348 + (613373.*
LAL_PI*eta2/12096. - 3207739.*
LAL_PI*eta/48384.
349 + 129817.*
LAL_PI/2304.) * zeta72);
362 if( !signalvec || !(signalvec->
data) || !
params )
395 if( !signalvec1 || !(signalvec1->
data) || !signalvec2 || !(signalvec2->
data) || !
params )
449 UINT4 length=0, count, ndx;
451 REAL8 xmin, xmax, xacc;
453 REAL8Vector dummy, values, dvalues, newvalues, yt, dym, dyt;
489 func = paramsInit->
func;
490 length = signalvec1->
length;
497 v = pow(omega,1./3.);
519 XLALPrintError(
"XLAL Error: %s - There are no Et waveforms at order %d\n", __func__,
params->order);
525 funcParams = (
void *) &in3;
555 XLALPrintError(
"XLAL Error: %s - There are no Et waveforms at order %d\n", __func__,
params->order);
575 funcParams = (
void *) &in2;
577 in4.
function(&values, &dvalues, funcParams);
581 omegaMax = 1./pow(6.,1.5);
590 while (omega<omegaMax)
599 h = 4 *
m * eta *
zeta * sin(2.*phi)/1.e14;
600 signalvec1->
data[ndx] = h;
602 signalvec2->
data[ndx] = 4 *
m * eta *
zeta * cos(2.*phi)/1.e14;
616 phi = values.
data[0] = newvalues.
data[0];
622 in4.
function(&values, &dvalues, funcParams);
623 omega = dvalues.
data[0];
625 t = (++count-
params->nStartPad) *
dt;
632 v = pow(omega, 1./3.);
void XLALRungeKutta4Free(rk4GSLIntegrator *integrator)
int XLALInspiralSetup(expnCoeffs *ak, InspiralTemplate *params)
int XLALInspiralChooseModel(expnFunc *func, expnCoeffs *ak, InspiralTemplate *params)
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)
LAL_PNORDER_TWO_POINT_FIVE
LAL_PNORDER_THREE_POINT_FIVE
#define XLAL_ERROR_REAL8(...)
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.