Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALInspiral 5.0.3.1-ea7c608
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
LALInspiralTaylorEtWaveform.c
Go to the documentation of this file.
1/*
2* Copyright (C) 2008 B.S. Sathyaprakash, Bala R. Iyer
3*
4* This program is free software; you can redistribute it and/or modify
5* it under the terms of the GNU General Public License as published by
6* the Free Software Foundation; either version 2 of the License, or
7* (at your option) any later version.
8*
9* This program is distributed in the hope that it will be useful,
10* but WITHOUT ANY WARRANTY; without even the implied warranty of
11* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12* GNU General Public License for more details.
13*
14* You should have received a copy of the GNU General Public License
15* along with with program; see the file COPYING. If not, write to the
16* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17* MA 02110-1301 USA
18*/
19
20/**
21 * \author Sathyaprakash, B. S., Cokelaer T.
22 * \file
23 * \brief NONE
24 *
25 */
26/*-------------------------------------------------------------------*/
27#include <math.h>
28#include <lal/LALInspiral.h>
29#include <lal/SeqFactories.h>
30#include <lal/FindRoot.h>
31#include <lal/LALConstants.h>
32
33#ifdef __GNUC__
34#define UNUSED __attribute__ ((unused))
35#else
36#define UNUSED
37#endif
38
39typedef struct tagzetaInitIn {
40 REAL8 eta, omega, e0;
42
44 REAL8 zeta,
45 void *params);
46
48 REAL8 zeta,
49 void *params);
50
52 REAL8 zeta,
53 void *params);
54
56 REAL8 zeta,
57 void *params);
58
59
61 REAL8Vector *values,
62 REAL8Vector *dvalues,
63 void *funcParams
64);
66 REAL8Vector *values,
67 REAL8Vector *dvalues,
68 void *funcParams
69);
71 REAL8Vector *values,
72 REAL8Vector *dvalues,
73 void *funcParams
74);
76 REAL8Vector *values,
77 REAL8Vector *dvalues,
78 void *funcParams
79);
80
83 REAL4Vector *signalvec,
85 InspiralInit *paramsInit
86);
87
89 REAL4Vector *signalvec1,
90 REAL4Vector *signalvec2,
92 InspiralInit *paramsInit
93);
94
96 REAL8 zeta,
97 void *params)
98{
99 if( !params )
101
102 zetaInitIn *in;
103 REAL8 x, zeta2, zeta32, eta, eta2;
104
105 in = (zetaInitIn *) params;
106 eta = in->eta;
107 eta2 = eta*eta;
108 zeta2 = zeta*zeta;
109 zeta32 = pow(zeta, 1.5);
110
111 x = zeta32 * ( 1. + 0.125 * (9.+eta)*zeta
112 + (891./128. - 201./64.*eta + 11/128.*eta2) * zeta2 );
113 x -= in->omega;
114
115 return x;
116}
117
119 REAL8 zeta,
120 void *params)
121{
122 if( !params )
124
125 zetaInitIn *in;
126 REAL8 x, zeta2, zeta32, eta, eta2;
127
128 in = (zetaInitIn *) params;
129 eta = in->eta;
130 eta2 = eta*eta;
131 zeta2 = zeta*zeta;
132 zeta32 = pow(zeta, 1.5);
133
134 x = zeta32 * ( 1. + 0.125 * (9.+eta)*zeta
135 + (891./128. - 201./64.*eta + 11/128.*eta2) * zeta2 );
136 x -= in->omega;
137
138 return x;
139}
140
142 REAL8 zeta,
143 void *params)
144{
145 if( !params )
147
148 zetaInitIn *in;
149 REAL8 x, zeta2, zeta3, zeta32, eta, eta2, eta3, pisq;
150
151 in = (zetaInitIn *) params;
152 eta = in->eta;
153 eta2 = eta*eta;
154 eta3 = eta2*eta;
155 zeta2 = zeta*zeta;
156 zeta3 = zeta2*zeta;
157 zeta32 = pow(zeta, 1.5);
158 pisq = LAL_PI*LAL_PI;
159
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);
164 x -= in->omega;
165
166 return x;
167}
168
170 REAL8 zeta,
171 void *params)
172{
173 if( !params )
175
176 zetaInitIn *in;
177 REAL8 x, zeta2, zeta3, zeta32, eta, eta2, eta3, pisq;
178
179 in = (zetaInitIn *) params;
180 eta = in->eta;
181 eta2 = eta*eta;
182 eta3 = eta2*eta;
183 zeta2 = zeta*zeta;
184 zeta3 = zeta2*zeta;
185 zeta32 = pow(zeta, 1.5);
186 pisq = LAL_PI*LAL_PI;
187
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);
192 x -= in->omega;
193
194 return x;
195}
196
198 REAL8Vector *values,
199 REAL8Vector *dvalues,
200 void *funcParams
201)
202{
203 /*if( !values || !dvalues || !funcParams )
204 XLAL_ERROR_NULL(XLAL_EFAULT);*/
205
207 REAL8 zeta, zeta2, zeta3, zeta5, zeta32, eta, eta2, fourpi;
208
209 ak = (InspiralDerivativesIn *) funcParams;
210 eta = ak->coeffs->eta;
211
212 zeta = values->data[1];
213 eta2 = eta * eta;
214 zeta2 = zeta*zeta;
215 zeta3 = zeta2*zeta;
216 zeta5 = zeta2*zeta3;
217 zeta32 = pow(zeta, 1.5);
218 fourpi = 4.*LAL_PI;
219
220 dvalues->data[0] = zeta32 * ( 1. + 0.125 * (9.+eta)*zeta
221 + (891./128. - 201./64.*eta + 11/128.*eta2) * zeta2);
222 /*
223 dvalues->data[1] = 64./5.* eta * zeta5 * (1. + (13./336. - 2.5*eta)*zeta
224 + fourpi*zeta32 + (117857./18144. - 12017./2016.*eta + 2.5*eta2) * zeta2);
225 */
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);
228}
229
231 REAL8Vector *values,
232 REAL8Vector *dvalues,
233 void *funcParams
234)
235{
236 /*if( !values || !dvalues || !funcParams )
237 XLAL_ERROR_NULL(XLAL_EFAULT);*/
238
240 REAL8 zeta, zeta2, zeta3, zeta5, zeta32, zeta52, eta, eta2, fourpi;
241
242 ak = (InspiralDerivativesIn *) funcParams;
243 eta = ak->coeffs->eta;
244
245 zeta = values->data[1];
246 eta2 = eta * eta;
247 zeta2 = zeta*zeta;
248 zeta3 = zeta2*zeta;
249 zeta5 = zeta2*zeta3;
250 zeta32 = pow(zeta, 1.5);
251 zeta52 = pow(zeta, 2.5);
252 fourpi = 4.*LAL_PI;
253
254 dvalues->data[0] = zeta32 * ( 1. + 0.125 * (9.+eta)*zeta
255 + (891./128. - 201./64.*eta + 11/128.*eta2) * zeta2 );
256 /*
257 dvalues->data[1] = 64./5.* eta * zeta5 * (1. + (13./336. - 2.5*eta)*zeta
258 + fourpi*zeta32 + (117857./18144. - 12017./2016.*eta + 2.5*eta2) * zeta2);
259 */
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
262 + (4913.*LAL_PI/672. - 177.*LAL_PI*eta/8.) * zeta52 );
263}
264
266 REAL8Vector *values,
267 REAL8Vector *dvalues,
268 void *funcParams
269)
270{
271 /*if( !values || !dvalues || !funcParams )
272 XLAL_ERROR_NULL(XLAL_EFAULT);*/
273
275 REAL8 zeta, zeta2, zeta3, zeta5, zeta32, zeta52, eta, eta2, eta3, pisq, fourpi;
276
277 ak = (InspiralDerivativesIn *) funcParams;
278 eta = ak->coeffs->eta;
279
280 zeta = values->data[1];
281 eta2 = eta * eta;
282 eta3 = eta2 * eta;
283 zeta2 = zeta*zeta;
284 zeta3 = zeta2*zeta;
285 zeta5 = zeta2*zeta3;
286 zeta32 = pow(zeta, 1.5);
287 zeta52 = pow(zeta, 2.5);
288 pisq = LAL_PI*LAL_PI;
289 fourpi = 4.*LAL_PI;
290
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);
295 /*
296 dvalues->data[1] = 64./5.* eta * zeta5 * (1. + (13./336. - 2.5*eta)*zeta
297 + fourpi*zeta32 + (117857./18144. - 12017./2016.*eta + 2.5*eta2) * zeta2);
298 */
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
301 + (4913.*LAL_PI/672. - 177.*LAL_PI*eta/8.) * zeta52
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 );
305}
306
308 REAL8Vector *values,
309 REAL8Vector *dvalues,
310 void *funcParams
311)
312{
313 /*if( !values || !dvalues || !funcParams )
314 XLAL_ERROR_NULL(XLAL_EFAULT);*/
315
317 REAL8 zeta, zeta2, zeta3, zeta5, zeta32, zeta52, zeta72, eta, eta2, eta3, pisq, fourpi;
318
319 ak = (InspiralDerivativesIn *) funcParams;
320 eta = ak->coeffs->eta;
321
322 zeta = values->data[1];
323 eta2 = eta * eta;
324 eta3 = eta2 * eta;
325 zeta2 = zeta*zeta;
326 zeta3 = zeta2*zeta;
327 zeta5 = zeta2*zeta3;
328 zeta32 = pow(zeta, 1.5);
329 zeta52 = pow(zeta, 2.5);
330 zeta72 = pow(zeta, 3.5);
331 pisq = LAL_PI*LAL_PI;
332 fourpi = 4.*LAL_PI;
333
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);
338 /*
339 dvalues->data[1] = 64./5.* eta * zeta5 * (1. + (13./336. - 2.5*eta)*zeta
340 + fourpi*zeta32 + (117857./18144. - 12017./2016.*eta + 2.5*eta2) * zeta2);
341 */
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
344 + (4913.*LAL_PI/672. - 177.*LAL_PI*eta/8.) * zeta52
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);
350}
351
352
354 REAL4Vector *signalvec,
356 )
357{
358
359 InspiralInit paramsInit;
360
361 /* Check the relevant pointers */
362 if( !signalvec || !(signalvec->data) || !params )
364
365 /* Check the parameters are sane */
366 if( params->nStartPad < 0 || params->nEndPad < 0 || params->fLower <= 0
367 || params->tSampling <= 0 || params->totalMass <= 0. )
369
370 if( XLALInspiralSetup(&(paramsInit.ak), params) )
372
373 if( XLALInspiralChooseModel(&(paramsInit.func), &(paramsInit.ak), params) )
375
376 memset(signalvec->data, 0, signalvec->length * sizeof( REAL4 ));
377
378 /* Call the engine function */
379 if( XLALTaylorEtWaveformEngine(signalvec, NULL, params, &paramsInit) )
381
382 return XLAL_SUCCESS;
383}
384
386 REAL4Vector *signalvec1,
387 REAL4Vector *signalvec2,
389 )
390{
391
392 InspiralInit paramsInit;
393
394 /* Check the relevant pointers */
395 if( !signalvec1 || !(signalvec1->data) || !signalvec2 || !(signalvec2->data) || !params )
397
398 /* Check the parameters are sane */
399 if( params->nStartPad < 0 || params->nEndPad < 0 || params->fLower <= 0
400 || params->tSampling <= 0 || params->totalMass <= 0. )
402
403 if( XLALInspiralSetup(&(paramsInit.ak), params) )
405
406 if( XLALInspiralChooseModel(&(paramsInit.func), &(paramsInit.ak), params) )
408
409 memset(signalvec1->data, 0, signalvec1->length * sizeof( REAL4 ));
410 memset(signalvec2->data, 0, signalvec2->length * sizeof( REAL4 ));
411
412 /* Call the engine function */
413 if( XLALTaylorEtWaveformEngine(signalvec1, signalvec2, params, &paramsInit) )
415
416 return XLAL_SUCCESS;
417}
418
419/*---------------- Main engine function --------------*/
420/* LAL wrapper of XLAL engine function */
423 REAL4Vector *signalvec,
425 InspiralInit *paramsInit
426 )
427{
428 XLAL_PRINT_DEPRECATION_WARNING("XLALTaylorEtWaveformEngine");
431
432 if( XLALTaylorEtWaveformEngine(signalvec, NULL, params, paramsInit) )
434
436 RETURN(status);
437}
438
439/* Actual engine */
441 REAL4Vector *signalvec1,
442 REAL4Vector *signalvec2,
444 InspiralInit *paramsInit
445 )
446{
447
448 void *funcParams;
449 UINT4 length=0, count, ndx;
450 INT4 nn=2;
451 REAL8 xmin, xmax, xacc;
452 REAL8 h, omega, omegaMax, t, dt, m, eta, phi, zeta, v;
453 REAL8Vector dummy, values, dvalues, newvalues, yt, dym, dyt;
454 rk4GSLIntegrator *integrator = NULL;
456 zetaInitIn in3;
457 rk4In in4;
458 expnCoeffs ak;
459 expnFunc func;
460 REAL8 (*rootFunction)(REAL8, void *);
461
462
463/* Allocate all the memory required to dummy and then point the various
464 arrays to dummy - this makes it easier to handle memory failures */
465
466 dummy.length = nn * 6;
467
468 if (!(dummy.data = (REAL8 * ) LALMalloc(sizeof(REAL8) * nn * 6)))
470
471 values.length = nn;
472 dvalues.length = nn;
473 newvalues.length = nn;
474 yt.length = nn;
475 dym.length = nn;
476 dyt.length = nn;
477
478 values.data = &dummy.data[0];
479 dvalues.data = &dummy.data[nn];
480 newvalues.data = &dummy.data[2*nn];
481 yt.data = &dummy.data[3*nn];
482 dym.data = &dummy.data[4*nn];
483 dyt.data = &dummy.data[5*nn];
484
485
486 /* Set dt to sampling interval specified by user */
487 dt = 1./params->tSampling;
488 ak = paramsInit->ak;
489 func = paramsInit->func;
490 length = signalvec1->length;
491 eta = ak.eta;
492 m = ak.totalmass;
493
494 /* Begin initial conditions */
495 /* Given omega compute zeta by solving Eq.(18b) of TG08 */
496 omega = LAL_PI * params->fLower * m;
497 v = pow(omega,1./3.);
498
499 xmin = v*v/2.;
500 xmax = 1.;
501 xacc = 1.0e-16;
502
503 /* Initialize the GSL integrator */
504 switch (params->order)
505 {
506 case LAL_PNORDER_TWO:
507 rootFunction = &XLALzetaInit4PN;
508 break;
510 rootFunction = &XLALzetaInit5PN;
511 break;
513 rootFunction = &XLALzetaInit6PN;
514 break;
516 rootFunction = &XLALzetaInit7PN;
517 break;
518 default:
519 XLALPrintError("XLAL Error: %s - There are no Et waveforms at order %d\n", __func__, params->order);
521 break;
522 }
523 in3.eta = ak.eta;
524 in3.omega = omega;
525 funcParams = (void *) &in3;
526
527
528 zeta = XLALDBisectionFindRoot(rootFunction, xmin, xmax, xacc, funcParams);
531 /* End of initial conditions */
532
533 values.data[0] = phi = params->startPhase;
534 values.data[1] = zeta;
535
536 /* fprintf(stdout, "Initial phi=%e, zeta=%e\n", values.data[0], values.data[1]); */
537 t = 0.0;
538
539 /* Initialize the GSL integrator */
540 switch (params->order)
541 {
542 case LAL_PNORDER_TWO:
544 break;
547 break;
550 break;
553 break;
554 default:
555 XLALPrintError("XLAL Error: %s - There are no Et waveforms at order %d\n", __func__, params->order);
557 break;
558 }
559 in4.y = &values;
560 in4.h = dt/m;
561 in4.n = nn;
562 in4.yt = &yt;
563 in4.dym = &dym;
564 in4.dyt = &dyt;
565 in4.x = 0.;
566
567 /* Initialize the integrator */
568 if (!(integrator = XLALRungeKutta4Init(nn, &in4)))
570
571 in2.totalmass = ak.totalmass;
572 in2.dEnergy = func.dEnergy;
573 in2.flux = func.flux;
574 in2.coeffs = &ak;
575 funcParams = (void *) &in2;
576 /* Calculate the initial value of omega */
577 in4.function(&values, &dvalues, funcParams);
578
579 /* Begin integration loop here */
580
581 omegaMax = 1./pow(6.,1.5);
582 t = 0.0;
583 ndx = 0;
584 count = 0;
585
586 /* fprintf(stdout, "fMin=%e, fMax=%e, f=%e, dzeta/dt=%e\n", */
587 /* omega/(m*LAL_PI), omegaMax/(m*LAL_PI), */
588 /* dvalues.data[0]/(m*LAL_PI), dvalues.data[1]); */
589
590 while (omega<omegaMax)
591 {
592 if (count > length)
593 {
594 XLALRungeKutta4Free( integrator );
595 XLALFree(dummy.data);
597 }
598
599 h = 4 * m * eta * zeta * sin(2.*phi)/1.e14;
600 signalvec1->data[ndx] = h;
601 if (signalvec2)
602 signalvec2->data[ndx] = 4 * m * eta * zeta * cos(2.*phi)/1.e14;
603 /* fprintf(stdout, "%e %e %e\n", t, h, omega/(m*LAL_PI)); */
604
605 /* Integrate one step forward */
606 in4.dydx = &dvalues;
607 in4.x = t/m;
608 if( XLALRungeKutta4(&newvalues, integrator, funcParams) )
609 {
610 XLALRungeKutta4Free( integrator );
611 XLALFree(dummy.data);
613 }
614
615 /* Update the values of the dynamical variables */
616 phi = values.data[0] = newvalues.data[0];
617 zeta = values.data[1] = newvalues.data[1];
618 /* fprintf(stdout, "phi=%e, zeta=%e, omega=%e, dzeta/dt=%e\n", */
619 /* phi, zeta, omega/(m*LAL_PI), dvalues.data[1]); */
620
621 /* Compute the derivaties at the new location */
622 in4.function(&values, &dvalues, funcParams);
623 omega = dvalues.data[0];
624
625 t = (++count-params->nStartPad) * dt;
626 ndx++;
627 }
628
629 /*----------------------------------------------------------------------*/
630 /* Record the final cutoff frequency of BD Waveforms for record keeping */
631 /* ---------------------------------------------------------------------*/
632 v = pow(omega, 1./3.);
633 params->vFinal = v;
634 params->tC = t;
635 params->fFinal = omega/(LAL_PI*m);
636 /* fprintf(stdout, "Final velocity=%e, time=%e, frequency=%e\n", v, t, params->fFinal); */
637
638 XLALRungeKutta4Free( integrator );
639 XLALFree(dummy.data);
640
641 return XLAL_SUCCESS;
642}
643/*---------------------------------------------------------*/
REAL8 zeta
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)
void XLALTaylorEtDerivatives7PN(REAL8Vector *values, REAL8Vector *dvalues, void *funcParams)
int XLALTaylorEtWaveformEngine(REAL4Vector *signalvec1, REAL4Vector *signalvec2, InspiralTemplate *params, InspiralInit *paramsInit)
static REAL8 XLALzetaInit4PN(REAL8 zeta, void *params)
void XLALTaylorEtDerivatives6PN(REAL8Vector *values, REAL8Vector *dvalues, void *funcParams)
void LALTaylorEtWaveformEngine(LALStatus *status, REAL4Vector *signalvec, InspiralTemplate *params, InspiralInit *paramsInit)
void XLALTaylorEtDerivatives5PN(REAL8Vector *values, REAL8Vector *dvalues, void *funcParams)
void XLALTaylorEtDerivatives4PN(REAL8Vector *values, REAL8Vector *dvalues, void *funcParams)
int XLALTaylorEtWaveform(REAL4Vector *signalvec, InspiralTemplate *params)
static REAL8 XLALzetaInit7PN(REAL8 zeta, void *params)
int XLALTaylorEtWaveformTemplates(REAL4Vector *signalvec1, REAL4Vector *signalvec2, InspiralTemplate *params)
static REAL8 XLALzetaInit5PN(REAL8 zeta, void *params)
static REAL8 XLALzetaInit6PN(REAL8 zeta, void *params)
#define LALMalloc(n)
#define ATTATCHSTATUSPTR(statusptr)
#define DETATCHSTATUSPTR(statusptr)
#define INITSTATUS(statusptr)
#define RETURN(statusptr)
#define ABORTXLAL(sp)
REAL8 XLALDBisectionFindRoot(REAL8(*y)(REAL8, void *), REAL8 xmin, REAL8 xmax, REAL8 xacc, void *params)
#define LAL_PI
#define LAL_GAMMA
double REAL8
uint32_t UINT4
int32_t INT4
float REAL4
void XLALFree(void *p)
LAL_PNORDER_TWO_POINT_FIVE
LAL_PNORDER_THREE
LAL_PNORDER_TWO
LAL_PNORDER_THREE_POINT_FIVE
static const INT4 m
#define XLAL_ERROR_REAL8(...)
#define XLAL_ERROR(...)
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
#define XLAL_PRINT_DEPRECATION_WARNING(replacement)
#define XLAL_IS_REAL8_FAIL_NAN(val)
XLAL_EBADLEN
XLAL_ENOMEM
XLAL_SUCCESS
XLAL_EFAULT
XLAL_EFUNC
XLAL_EINVAL
x
Structure used as an input to compute the derivatives needed in solving the phasing formula when the ...
Definition: LALInspiral.h:607
EnergyFunction * dEnergy
Definition: LALInspiral.h:609
FluxFunction * flux
Definition: LALInspiral.h:610
expnCoeffs * coeffs
Definition: LALInspiral.h:611
expnFunc func
Definition: LALInspiral.h:680
expnCoeffs ak
Definition: LALInspiral.h:679
The inspiral waveform parameter structure containing information about the waveform to be generated.
Definition: LALInspiral.h:205
REAL4 * data
REAL8 * data
This structure contains various post-Newtonian and P-approximant expansion coefficients; the meanings...
Definition: LALInspiral.h:399
REAL8 totalmass
Definition: LALInspiral.h:474
Structure to hold the pointers to the generic functions defined above.
Definition: LALInspiral.h:546
EnergyFunction * dEnergy
Definition: LALInspiral.h:547
FluxFunction * flux
Definition: LALInspiral.h:548
Structure containing steps and controls for the GSL Runge-Kutta solver.
Definition: LALInspiral.h:637
Structure used as an input to Runge-Kutta solver.
Definition: LALInspiral.h:620
REAL8Vector * dym
Definition: LALInspiral.h:626
REAL8 x
Definition: LALInspiral.h:622
REAL8Vector * yt
Definition: LALInspiral.h:625
REAL8Vector * dydx
Definition: LALInspiral.h:624
REAL8 h
Definition: LALInspiral.h:628
REAL8Vector * dyt
Definition: LALInspiral.h:627
INT4 n
Definition: LALInspiral.h:629
REAL8Vector * y
Definition: LALInspiral.h:623
TestFunction * function
Definition: LALInspiral.h:621