23 #include <lal/LALStdlib.h>
24 #include <lal/LALConstants.h>
26 #include <lal/FrequencySeries.h>
27 #include <lal/TimeSeries.h>
28 #include <lal/TimeFreqFFT.h>
29 #include <lal/Units.h>
30 #include <lal/LALSimInspiral.h>
31 #include <lal/LALSimIMR.h>
32 #include <lal/LALAdaptiveRungeKuttaIntegrator.h>
34 #define LAL_SDW_ABSOLUTE_TOLERANCE 1.e-12
35 #define LAL_SDW_RELATIVE_TOLERANCE 1.e-12
36 #define LAL_SDW_NUM_VARIABLES 3
37 #define LAL_SDW_MAX_PN_PARAM 0.8
40 #define UNUSED __attribute__ ((unused))
69 #define vectorProd(lhs, rhs, denominator, result) \
70 result[X] = (lhs[Y] * rhs[Z] - lhs[Z] * rhs[Y]) / denominator; \
71 result[Y] = (lhs[Z] * rhs[X] - lhs[X] * rhs[Z]) / denominator; \
72 result[Z] = (lhs[X] * rhs[Y] - lhs[Y] * rhs[X]) / denominator;
77 typedef struct tagLALSDWaveformParams {
99 UNUSED
void *mparams);
112 INT8 size = (nrh) * (nch) *
sizeof(
REAL8);
117 printf(
"malloc error");
135 REAL8 *acoeff00pn, *b0coeff0pn, *d0coeff0pn, *acoeff0_5pn, *b0coeff0_5pn, *d0coeff0_5pn, *acoeff1pn, *b0coeff1pn,
136 *d0coeff1pn, *b1coeff1pn, *d1coeff1pn, *acoeff1_5pn, *b0coeff1_5pn, *d0coeff1_5pn, *b1coeff1_5pn,
140 skp[0] = ckp[0] = stp[0] = ctp[0] = 1.;
141 skp[1] = sin(
params->kappa1);
142 ckp[1] = cos(
params->kappa1);
143 stp[1] = sin(
params->theta);
144 ctp[1] = cos(
params->theta);
146 skp[
i] = skp[1] * skp[
i - 1];
147 ckp[
i] = ckp[1] * ckp[
i - 1];
148 stp[
i] = stp[1] * stp[
i - 1];
149 ctp[
i] = ctp[1] * ctp[
i - 1];
188 for (
i = 0;
i <= 1;
i++) {
189 for (j = 0; j <= 1; j++) {
191 + skp[2] * (b0coeff0pn[
i +
PN00DIM * j] + ckp[1] * d0coeff0pn[
i +
PN00DIM * j]);
215 acoeff0_5pn[8 +
PN05DIM *
PLUS_] = (44. - 34. * stp[2] + 2. * (5. * stp[2] - 46.) * ckp[1]);
216 acoeff0_5pn[8 +
PN05DIM *
MINUS] = (44. - 34. * stp[2] - 2. * (5. * stp[2] - 46.) * ckp[1]);
221 b0coeff0_5pn[0 +
PN05DIM *
PLUS_] = +(46. - 5. * stp[2]);
222 b0coeff0_5pn[0 +
PN05DIM *
MINUS] = -(46. - 5. * stp[2]);
237 b0coeff0_5pn[8 +
PN05DIM *
PLUS_] = -15. * (2. - 3. * stp[2]);
238 b0coeff0_5pn[8 +
PN05DIM *
MINUS] = -15. * (2. - 3. * stp[2]);
241 b0coeff0_5pn[10 +
PN05DIM *
PLUS_] = -4. * (3. - 2. * stp[2]);
242 b0coeff0_5pn[10 +
PN05DIM *
MINUS] = +4. * (3. - 2. * stp[2]);
243 d0coeff0_5pn[0 +
PN05DIM *
PLUS_] = +5. * (3. * stp[2] - 2.);
244 d0coeff0_5pn[0 +
PN05DIM *
MINUS] = +5. * (3. * stp[2] - 2.);
255 d0coeff0_5pn[6 +
PN05DIM *
PLUS_] = -3. * (2. - 3. * stp[2]);
256 d0coeff0_5pn[6 +
PN05DIM *
MINUS] = -3. * (2. - 3. * stp[2]);
265 for (
i = 0;
i <= 10;
i++) {
266 for (j = 0; j <= 1; j++) {
268 + skp[2] * (b0coeff0_5pn[
i +
PN05DIM * j] + ckp[1] * d0coeff0_5pn[
i +
PN05DIM * j]);
282 acoeff1pn[3 +
PN10DIM *
PLUS_] = +2. * k[
PLUS_] * (2. * stp[4] + 11. * stp[2] - 38.);
283 acoeff1pn[3 +
PN10DIM *
MINUS] = -2. * k[
MINUS] * (2. * stp[4] + 11. * stp[2] - 38.);
296 acoeff1pn[10 +
PN10DIM *
PLUS_] = k[
PLUS_] * (22. + 29. * stp[2] - 16. * stp[4]);
297 acoeff1pn[10 +
PN10DIM *
MINUS] = k[
MINUS] * (22. + 29. * stp[2] - 16. * stp[4]);
312 b0coeff1pn[3 +
PN10DIM *
PLUS_] = (-22. - 29. * stp[2] + 16. * stp[4]);
313 b0coeff1pn[3 +
PN10DIM *
MINUS] = (-22. - 29. * stp[2] + 16. * stp[4]);
320 b0coeff1pn[7 +
PN10DIM *
PLUS_] = +2. * (11. - 5. * stp[2]);
321 b0coeff1pn[7 +
PN10DIM *
MINUS] = +2. * (11. - 5. * stp[2]);
322 b0coeff1pn[8 +
PN10DIM *
PLUS_] = +6. * (7. + 9. * stp[2]);
323 b0coeff1pn[8 +
PN10DIM *
MINUS] = +6. * (7. + 9. * stp[2]);
326 b0coeff1pn[10 +
PN10DIM *
PLUS_] = -3. * (8. - 20. * stp[2] + 7. * stp[4]);
327 b0coeff1pn[10 +
PN10DIM *
MINUS] = +3. * (8. - 20. * stp[2] + 7. * stp[4]);
330 b0coeff1pn[12 +
PN10DIM *
PLUS_] = +3. * (19. * stp[2] + 14.);
331 b0coeff1pn[12 +
PN10DIM *
MINUS] = +3. * (19. * stp[2] + 14.);
334 b0coeff1pn[14 +
PN10DIM *
PLUS_] = (22. - 21. * stp[2]);
335 b0coeff1pn[14 +
PN10DIM *
MINUS] = (22. - 21. * stp[2]);
342 d0coeff1pn[3 +
PN10DIM *
PLUS_] = -2. * (8. - 20. * stp[2] + 7. * stp[4]);
343 d0coeff1pn[3 +
PN10DIM *
MINUS] = +2. * (8. - 20. * stp[2] + 7. * stp[4]);
352 d0coeff1pn[8 +
PN10DIM *
PLUS_] = +3. * (18. - 7. * stp[2]);
353 d0coeff1pn[8 +
PN10DIM *
MINUS] = -3. * (18. - 7. * stp[2]);
356 d0coeff1pn[10 +
PN10DIM *
PLUS_] = +4. * (2. - 8. * stp[2] + 7. * stp[4]);
357 d0coeff1pn[10 +
PN10DIM *
MINUS] = +4. * (2. - 8. * stp[2] + 7. * stp[4]);
360 d0coeff1pn[12 +
PN10DIM *
PLUS_] = +6. * (9. - 13. * stp[2]);
361 d0coeff1pn[12 +
PN10DIM *
MINUS] = -6. * (9. - 13. * stp[2]);
362 d0coeff1pn[13 +
PN10DIM *
PLUS_] = +2. * (7. * stp[2] - 2.);
363 d0coeff1pn[13 +
PN10DIM *
MINUS] = +2. * (7. * stp[2] - 2.);
372 b1coeff1pn[3 +
PN10DIM *
PLUS_] = -2. * (2. - 8. * stp[2] + 7. * stp[4]);
373 b1coeff1pn[3 +
PN10DIM *
MINUS] = -2. * (2. - 8. * stp[2] + 7. * stp[4]);
382 b1coeff1pn[8 +
PN10DIM *
PLUS_] = +8. * (3. - 7. * stp[2]);
383 b1coeff1pn[8 +
PN10DIM *
MINUS] = +8. * (3. - 7. * stp[2]);
390 b1coeff1pn[12 +
PN10DIM *
PLUS_] = -4. * (7. * stp[2] - 6.);
391 b1coeff1pn[12 +
PN10DIM *
MINUS] = -4. * (7. * stp[2] - 6.);
394 b1coeff1pn[14 +
PN10DIM *
PLUS_] = -4. * (2. - 3. * stp[2]);
395 b1coeff1pn[14 +
PN10DIM *
MINUS] = -4. * (2. - 3. * stp[2]);
396 for (
i = 0;
i < 15;
i++) {
400 for (
i = 0;
i <= 14;
i++) {
401 for (j = 0; j <= 1; j++) {
403 + skp[2] * (b0coeff1pn[
i +
PN10DIM * j] + ckp[1] * d0coeff1pn[
i +
PN10DIM * j])
404 + skp[4] * (b1coeff1pn[
i +
PN10DIM * j] + ckp[1] * d1coeff1pn[
i +
PN10DIM * j]);
414 acoeff1_5pn[1 +
PN15DIM *
PLUS_] = +4. * k[
PLUS_] * (stp[4] + 42. * stp[2] - 166.);
415 acoeff1_5pn[1 +
PN15DIM *
MINUS] = -4. * k[
MINUS] * (stp[4] + 42. * stp[2] - 166.);
418 acoeff1_5pn[3 +
PN15DIM *
PLUS_] = +8. * k[
PLUS_] * (stp[4] + 8. * stp[2] - 28.);
419 acoeff1_5pn[3 +
PN15DIM *
MINUS] = +8. * k[
MINUS] * (stp[4] + 8. * stp[2] - 28.);
420 acoeff1_5pn[4 +
PN15DIM *
PLUS_] = +8. * k[
PLUS_] * (-332. + 94. * stp[2] + stp[4]);
421 acoeff1_5pn[4 +
PN15DIM *
MINUS] = +8. * k[
MINUS] * (-332. + 94. * stp[2] + stp[4]);
422 acoeff1_5pn[5 +
PN15DIM *
PLUS_] = +8. * k[
PLUS_] * (38. - 42. * stp[2] - 9. * stp[4]);
423 acoeff1_5pn[5 +
PN15DIM *
MINUS] = -8. * k[
MINUS] * (38. - 42. * stp[2] - 9. * stp[4]);
424 acoeff1_5pn[6 +
PN15DIM *
PLUS_] = -16. * k[
PLUS_] * (152. - 46. * stp[2] - 9. * stp[4]);
425 acoeff1_5pn[6 +
PN15DIM *
MINUS] = -16. * k[
MINUS] * (152. - 46. * stp[2] - 9. * stp[4]);
428 acoeff1_5pn[8 +
PN15DIM *
PLUS_] = -8. * k[
PLUS_] * (160. - 204. * stp[2] - 63. * stp[4]);
429 acoeff1_5pn[8 +
PN15DIM *
MINUS] = -8. * k[
MINUS] * (160. - 204. * stp[2] - 63. * stp[4]);
440 acoeff1_5pn[14 +
PN15DIM *
PLUS_] = +4. * k[
PLUS_] * (166. - 125. * stp[2] - 8. * stp[4]);
441 acoeff1_5pn[14 +
PN15DIM *
MINUS] = -4. * k[
MINUS] * (166. - 125. * stp[2] - 8. * stp[4]);
442 acoeff1_5pn[15 +
PN15DIM *
PLUS_] = -8. * k[
PLUS_] * (38. - 61. * stp[2] - 24. * stp[4]);
443 acoeff1_5pn[15 +
PN15DIM *
MINUS] = +8. * k[
MINUS] * (38. - 61. * stp[2] - 24. * stp[4]);
448 b0coeff1_5pn[1 +
PN15DIM *
PLUS_] = (18. * stp[4] + 252. * stp[2] - 188.);
449 b0coeff1_5pn[1 +
PN15DIM *
MINUS] = (18. * stp[4] + 252. * stp[2] - 188.);
452 b0coeff1_5pn[3 +
PN15DIM *
PLUS_] = (+9. * stp[4] - 90. * stp[2] + 56.);
453 b0coeff1_5pn[3 +
PN15DIM *
MINUS] = (-9. * stp[4] + 90. * stp[2] - 56.);
454 b0coeff1_5pn[4 +
PN15DIM *
PLUS_] = -4. * (1184. - 172. * stp[2] - 7. * stp[4]);
455 b0coeff1_5pn[4 +
PN15DIM *
MINUS] = +4. * (1184. - 172. * stp[2] - 7. * stp[4]);
456 b0coeff1_5pn[5 +
PN15DIM *
PLUS_] = +2. * (46. + 48. * stp[2] - 99. * stp[4]);
457 b0coeff1_5pn[5 +
PN15DIM *
MINUS] = +2. * (46. + 48. * stp[2] - 99. * stp[4]);
458 b0coeff1_5pn[6 +
PN15DIM *
PLUS_] = -12. * (72. + 110. * stp[2] - 63. * stp[4]);
459 b0coeff1_5pn[6 +
PN15DIM *
MINUS] = +12. * (72. + 110. * stp[2] - 63. * stp[4]);
460 b0coeff1_5pn[7 +
PN15DIM *
PLUS_] = +144. * (stp[2] - 2.);
461 b0coeff1_5pn[7 +
PN15DIM *
MINUS] = +144. * (stp[2] - 2.);
462 b0coeff1_5pn[8 +
PN15DIM *
PLUS_] = -3. * (-204. + 406. * stp[2] - 189. * stp[4]);
463 b0coeff1_5pn[8 +
PN15DIM *
MINUS] = +3. * (-204. + 406. * stp[2] - 189. * stp[4]);
466 b0coeff1_5pn[10 +
PN15DIM *
PLUS_] = +28. - 31. * stp[2];
467 b0coeff1_5pn[10 +
PN15DIM *
MINUS] = -28. + 31. * stp[2];
468 b0coeff1_5pn[11 +
PN15DIM *
PLUS_] = -432. - 876. * stp[2];
469 b0coeff1_5pn[11 +
PN15DIM *
MINUS] = +432. + 876. * stp[2];
470 b0coeff1_5pn[12 +
PN15DIM *
PLUS_] = -4. * (71. * stp[2] + 592.);
471 b0coeff1_5pn[12 +
PN15DIM *
MINUS] = +4. * (71. * stp[2] + 592.);
472 b0coeff1_5pn[13 +
PN15DIM *
PLUS_] = +306. - 651. * stp[2];
473 b0coeff1_5pn[13 +
PN15DIM *
MINUS] = -306. + 651. * stp[2];
474 b0coeff1_5pn[14 +
PN15DIM *
PLUS_] = +2. * (94. - 173. * stp[2] - 24. * stp[4]);
475 b0coeff1_5pn[14 +
PN15DIM *
MINUS] = +2. * (94. - 173. * stp[2] - 24. * stp[4]);
476 b0coeff1_5pn[15 +
PN15DIM *
PLUS_] = -2. * (46. + 25. * stp[2] - 180. * stp[4]);
477 b0coeff1_5pn[15 +
PN15DIM *
MINUS] = -2. * (46. + 25. * stp[2] - 180. * stp[4]);
482 d0coeff1_5pn[1 +
PN15DIM *
PLUS_] = (-6. * stp[4] + 72. * stp[2] - 20.);
483 d0coeff1_5pn[1 +
PN15DIM *
MINUS] = (+6. * stp[4] - 72. * stp[2] + 20.);
486 d0coeff1_5pn[3 +
PN15DIM *
PLUS_] = (-15. * stp[4] + 22. * stp[2] - 8.);
487 d0coeff1_5pn[3 +
PN15DIM *
MINUS] = (-15. * stp[4] + 22. * stp[2] - 8.);
488 d0coeff1_5pn[4 +
PN15DIM *
PLUS_] = (1920. - 2832. * stp[2] - 84. * stp[4]);
489 d0coeff1_5pn[4 +
PN15DIM *
MINUS] = (1920. - 2832. * stp[2] - 84. * stp[4]);
490 d0coeff1_5pn[5 +
PN15DIM *
PLUS_] = +6. * (10. - 44. * stp[2] + 27. * stp[4]);
491 d0coeff1_5pn[5 +
PN15DIM *
MINUS] = -6. * (10. - 44. * stp[2] + 27. * stp[4]);
492 d0coeff1_5pn[6 +
PN15DIM *
PLUS_] = -4. * (88. - 422. * stp[2] + 171. * stp[4]);
493 d0coeff1_5pn[6 +
PN15DIM *
MINUS] = -4. * (88. - 422. * stp[2] + 171. * stp[4]);
494 d0coeff1_5pn[7 +
PN15DIM *
PLUS_] = +12. * (14. - 9. * stp[2]);
495 d0coeff1_5pn[7 +
PN15DIM *
MINUS] = -12. * (14. - 9. * stp[2]);
496 d0coeff1_5pn[8 +
PN15DIM *
PLUS_] = -9. * (28. - 126. * stp[2] + 105. * stp[4]);
497 d0coeff1_5pn[8 +
PN15DIM *
MINUS] = -9. * (28. - 126. * stp[2] + 105. * stp[4]);
500 d0coeff1_5pn[10 +
PN15DIM *
PLUS_] = (9. * stp[2] - 4.);
501 d0coeff1_5pn[10 +
PN15DIM *
MINUS] = (9. * stp[2] - 4.);
502 d0coeff1_5pn[11 +
PN15DIM *
PLUS_] = (-176. + 756. * stp[2]);
503 d0coeff1_5pn[11 +
PN15DIM *
MINUS] = (-176. + 756. * stp[2]);
504 d0coeff1_5pn[12 +
PN15DIM *
PLUS_] = +12. * (7. * stp[2] + 80.);
505 d0coeff1_5pn[12 +
PN15DIM *
MINUS] = +12. * (7. * stp[2] + 80.);
506 d0coeff1_5pn[13 +
PN15DIM *
PLUS_] = (-126. + 189. * stp[2]);
507 d0coeff1_5pn[13 +
PN15DIM *
MINUS] = (-126. + 189. * stp[2]);
508 d0coeff1_5pn[14 +
PN15DIM *
PLUS_] = +2. * (10. - 41. * stp[2] + 36. * stp[4]);
509 d0coeff1_5pn[14 +
PN15DIM *
MINUS] = -2. * (10. - 41. * stp[2] + 36. * stp[4]);
510 d0coeff1_5pn[15 +
PN15DIM *
PLUS_] = -6. * (10. - 49. * stp[2] + 44. * stp[4]);
511 d0coeff1_5pn[15 +
PN15DIM *
MINUS] = +6. * (10. - 49. * stp[2] + 44. * stp[4]);
512 d0coeff1_5pn[16 +
PN15DIM *
PLUS_] = -4. * (7. - 8. * stp[2]);
513 d0coeff1_5pn[16 +
PN15DIM *
MINUS] = +4. * (7. - 8. * stp[2]);
516 b1coeff1_5pn[1 +
PN15DIM *
PLUS_] = (-15. * stp[4] + 12. * stp[2] - 2.);
517 b1coeff1_5pn[1 +
PN15DIM *
MINUS] = (-15. * stp[4] + 12. * stp[2] - 2.);
522 b1coeff1_5pn[4 +
PN15DIM *
PLUS_] = -(236. - 294. * stp[2] + 21. * stp[4]);
523 b1coeff1_5pn[4 +
PN15DIM *
MINUS] = +(236. - 294. * stp[2] + 21. * stp[4]);
524 b1coeff1_5pn[5 +
PN15DIM *
PLUS_] = +3. * (6. - 36. * stp[2] + 45. * stp[4]);
525 b1coeff1_5pn[5 +
PN15DIM *
MINUS] = +3. * (6. - 36. * stp[2] + 45. * stp[4]);
526 b1coeff1_5pn[6 +
PN15DIM *
PLUS_] = -3. * (232. - 510. * stp[2] + 243. * stp[4]);
527 b1coeff1_5pn[6 +
PN15DIM *
MINUS] = +3. * (232. - 510. * stp[2] + 243. * stp[4]);
528 b1coeff1_5pn[7 +
PN15DIM *
PLUS_] = +9. * (6. - 5. * stp[2]);
529 b1coeff1_5pn[7 +
PN15DIM *
MINUS] = +9. * (6. - 5. * stp[2]);
536 b1coeff1_5pn[11 +
PN15DIM *
PLUS_] = (-348. + 591. * stp[2]);
537 b1coeff1_5pn[11 +
PN15DIM *
MINUS] = (+348. - 591. * stp[2]);
538 b1coeff1_5pn[12 +
PN15DIM *
PLUS_] = (+273. * stp[2] - 118.);
539 b1coeff1_5pn[12 +
PN15DIM *
MINUS] = (-273. * stp[2] + 118.);
542 b1coeff1_5pn[14 +
PN15DIM *
PLUS_] = (2. - 13. * stp[2] + 12. * stp[4]);
543 b1coeff1_5pn[14 +
PN15DIM *
MINUS] = (2. - 13. * stp[2] + 12. * stp[4]);
544 b1coeff1_5pn[15 +
PN15DIM *
PLUS_] = -9. * (2. - 13. * stp[2] + 12. * stp[4]);
545 b1coeff1_5pn[15 +
PN15DIM *
MINUS] = -9. * (2. - 13. * stp[2] + 12. * stp[4]);
546 b1coeff1_5pn[16 +
PN15DIM *
PLUS_] = -3. * (3. - 4. * stp[2]);
547 b1coeff1_5pn[16 +
PN15DIM *
MINUS] = -3. * (3. - 4. * stp[2]);
556 d1coeff1_5pn[4 +
PN15DIM *
PLUS_] = (28. - 126. * stp[2] + 105. * stp[4]);
557 d1coeff1_5pn[4 +
PN15DIM *
MINUS] = (28. - 126. * stp[2] + 105. * stp[4]);
560 d1coeff1_5pn[6 +
PN15DIM *
PLUS_] = +27. * (8. - 22. * stp[2] + 15. * stp[4]);
561 d1coeff1_5pn[6 +
PN15DIM *
MINUS] = +27. * (8. - 22. * stp[2] + 15. * stp[4]);
570 d1coeff1_5pn[11 +
PN15DIM *
PLUS_] = (-243. * stp[2] + 108.);
571 d1coeff1_5pn[11 +
PN15DIM *
MINUS] = (-243. * stp[2] + 108.);
572 d1coeff1_5pn[12 +
PN15DIM *
PLUS_] = +7. * (2. - 3. * stp[2]);
573 d1coeff1_5pn[12 +
PN15DIM *
MINUS] = +7. * (2. - 3. * stp[2]);
582 for (
i = 0;
i <= 16;
i++) {
583 for (j = 0; j <= 1; j++) {
585 + skp[2] * (b0coeff1_5pn[
i +
PN15DIM * j] + ckp[1] * d0coeff1_5pn[
i +
PN15DIM * j])
586 + skp[4] * (b1coeff1_5pn[
i +
PN15DIM * j] + ckp[1] * d1coeff1_5pn[
i +
PN15DIM * j]);
618 PN00_A, PN00_B, PN05_A, PN05_B, PN10_A, PN10_B, PN10_C, PN10_D, PN15_A, PN15_B, PN15_C,
623 skp[0] = ckp[0] = stp[0] = ctp[0] = 1.;
624 skp[1] = sin(
params->kappa1);
625 ckp[1] = cos(
params->kappa1);
626 stp[1] = sin(
params->theta);
627 ctp[1] = cos(
params->theta);
629 skp[
i] = skp[1] * skp[
i - 1];
630 ckp[
i] = ckp[1] * ckp[
i - 1];
631 stp[
i] = stp[1] * stp[
i - 1];
632 ctp[
i] = ctp[1] * ctp[
i - 1];
644 vP[
i] = vP[1] * vP[
i - 1];
650 * (1. + vP[2] * (1. - eta / 3.) );
653 * (1. + vP[2] * (1. - eta / 3.) + vP[3] * (eta + (2. / 3.) / (eta /
params->nu)));
658 phin[0] = psin[0] = 1.;
660 phin[
i] =
i * expr[
PHI];
661 psin[
i] =
i * expr[
PSI];
669 6. * skp[2] * stp[2] * cos(psin[2]) + (
673 ) - 2. * skp[1] * s2t * (
674 sin(phin[1] + psin[2]) * k[
PLUS_]
675 + sin(phin[1] - psin[2]) * k[
MINUS]
678 ) + 3. * log(eps_corr[
PN00][
PN15] / omega0) * (
679 4. * ctp[1] * skp[1] * stp[1] * (
680 -k[
MINUS] * cos(phin[1] - psin[2])
681 + k[
PLUS_] * cos(phin[1] + psin[2])
683 + sin(phin[2] - psin[2]) * (2. * ckp[1] - skp[2] + 2.) * (-stp[2] + 2.)
684 + sin(phin[2] + psin[2]) * (2. * ckp[1] + skp[2] - 2.)
685 + 6. * skp[2] * sin(psin[2]) * stp[2]
691 ) - 2. * skp[1] * stp[1] * (
692 cos(phin[1] + psin[2]) * k[
PLUS_]
693 + cos(phin[1] - psin[2]) * k[
MINUS]
695 ) + 6. * log(eps_corr[
PN00][
PN15] / omega0) * (
696 (2. * ckp[1] - skp[2] + 2.) * ctp[1] * cos(phin[2] - psin[2])
697 + (2. * ckp[1] + skp[2] - 2.) * ctp[1] * cos(phin[2] + psin[2])
698 + 2. * k[
MINUS] * skp[1] * stp[1] * sin(phin[1] - psin[2])
699 - 2. * k[
PLUS_] * skp[1] * stp[1] * sin(phin[1] + psin[2])
703 ckp[1] * skp[1] * cos(phin[2]) - c2k1 * ctp[1] * stp[1] * sin(phin[1])
704 + ckp[1] * skp[1] * stp[2] * (
705 6. * sin(psin[1]) * sin(psin[1]) - 2. + sin(phin[1]) * sin(phin[1])
708 2. * ctp[1] * skp[1] * stp[1] * (
709 (-3. * k[
PLUS_] - 4. * skp[2]) * sin(phin[1] + psin[2])
710 + (+3. * k[
MINUS] - 4. * skp[2]) * sin(phin[1] - psin[2])
711 ) + (stp[2] - 2.) * (
712 (-2. * k[
PLUS_] + (2. * ckp[1] - 3.) * skp[2]) * cos(phin[2] + psin[2])
713 + (-2. * k[
MINUS] + (2. * ckp[1] + 3.) * skp[2]) * cos(phin[2] - psin[2])
717 -2. * cos(phin[1]) * skp[1] * (stp[1] * c2k1 + ctp[1] * s2k1 * sin(phin[1])) + (
719 (-2. * k[
PLUS_] + (2. * ckp[1] - 3.) * skp[2]) * sin(phin[2] + psin[2])
720 + (-2. * k[
MINUS] + (2. * ckp[1] + 3.) * skp[2]) * sin(phin[2] - psin[2])
721 ) + skp[1] * stp[1] * (
722 (-3. * k[
PLUS_] - 4. * skp[2]) * cos(phin[1] + psin[2])
723 + (+3. * k[
MINUS] - 4. * skp[2]) * cos(phin[1] - psin[2])
727 waveampcoeffs[PN15_A +
AMPCOEFF_DIM *
PLUS_] = 1. / 12288. * (12. * ctp[1] * skp[1] * stp[2] * (
729 1701. * (2. - 3. * stp[2]) * skp[4] + 72. * skp[2] * (63. * stp[2] + 178.)
731 -14. * (2. - 3. * stp[2]) * skp[4]
732 - 8. * skp[2] * (7. * stp[2] + 162.) + 16. * (stp[2] + 66.)
733 ) - 4375. * (2. - 3. * stp[2]) * skp[4] * cos(psin[5])
735 2. * (stp[2] - 2.) * skp[4] * stp[3] * (
736 sin(phin[5] + psin[1]) * k[
PLUS_]
737 + sin(phin[5] - psin[1]) * k[
MINUS]
738 ) + 4. * ctp[1] * skp[3] * stp[2] * (
741 ) + 16. * ctp[1] * skp[1] * (
744 ) + 1250. * skp[4] * stp[1] * (105. * stp[4] - 126. * stp[2] + 28.) * (
745 sin(phin[1] + psin[5]) * k[
PLUS_]
746 + sin(phin[1] - psin[5]) * k[
MINUS]
747 ) + 625. * (stp[2] - 2.) * stp[3] * (
750 ) + 6. * skp[2] * stp[1] * (
753 ) + 243. * (stp[2] - 2.) * skp[2] * stp[3] * (
759 ) + 5000. * ctp[1] * skp[3] * (15. * stp[4] - 12. * stp[2] + 2.) * (
762 ) - 1250. * ctp[1] * skp[1] * stp[2] * (5. * stp[2] - 6.) * (
765 ) + 1875. * skp[2] * stp[1] * (8. - 22. * stp[2] + 15. * stp[4]) * (
768 ) + 216. * ctp[1] * skp[1] * (
774 ) + 54. * ctp[1] * skp[1] * stp[2] * (
777 ) + 54. * skp[2] * stp[1] * (
782 waveampcoeffs[PN15_A +
AMPCOEFF_DIM *
MINUS] = 1. / 6144. * (192. * ckp[1] * skp[1] * stp[2] * (
783 sin(psin[1]) * (64. - skp[2] * (7. * stp[2] - 6.) + 4. * stp[2])
784 + 27. * sin(psin[3]) * skp[2] * (7. * stp[2] - 6.)
786 4. * skp[3] * stp[2] * (
789 ) - 2. * ctp[1] * skp[4] * stp[3] * (
790 cos(phin[5] + psin[1]) * k[
PLUS_]
791 + cos(phin[5] - psin[1]) * k[
MINUS]
792 ) - 243. * ctp[1] * skp[2] * stp[3] * (
795 ) - 625. * ctp[1] * stp[3] * (
798 ) + 3. * skp[2] * s2t * (
801 ) + 27. * ctp[1] * stp[1] * (
804 ) + 1875. * ctp[1] * skp[2] * stp[1] * (4. - 9. * stp[2]) * (
810 ) + 27. * skp[2] * s2t * (
816 ) + 4375. * (2. - 3. * stp[2]) * skp[4] * s2t * (
817 cos(phin[1] + psin[5]) * k[
PLUS_]
818 + cos(phin[1] - psin[5]) * k[
MINUS]
819 ) + 108. * skp[1] * (
822 ) + 162. * skp[1] * stp[2] * (
825 ) - 2500. * skp[3] * (2. - 13. * stp[2] + 12. * stp[4]) * (
828 ) - 1250. * skp[1] * stp[2] * (3. - 4. * stp[2]) * (
834 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
841 -k[
PLUS_] * ctp[1] * sin(phin[2] + psin[1] - phi1_1)
842 + k[
MINUS] * ctp[1] * sin(phin[2] - psin[1] - phi1_1)
843 ) + skp[1] * stp[1] * (
844 sin(phin[1] + psin[1]) - sin(phin[1] - psin[1])
845 + cos(phin[1] + psin[1] - phi1_1) - cos(phin[1] - psin[1] - phi1_1)
849 2. * (sin(phi1_1) + 2.) * ckp[1] * sin(psin[1]) + 2. * cos(phi1_1) * cos(psin[1])
851 2. * ctp[1] * skp[1] * stp[1] * (
852 cos(phin[1] + psin[1]) - cos(phin[1] - psin[1])
853 - sin(phin[1] + psin[1] - phi1_1) + sin(phin[1] - psin[1] - phi1_1)
854 ) + (stp[2] - 2.) * (
855 k[
PLUS_] * cos(phin[2] + psin[1] - phi1_1)
856 - k[
MINUS] * cos(phin[2] - psin[1] - phi1_1)
860 * (k[
PLUS_] * sin(phin[1] + psin[1]) - k[
MINUS] * sin(phin[1] - psin[1]));
862 * (2. * skp[1] * sin(psin[1]) * stp[1]
863 + ctp[1] * (k[
PLUS_] * cos(phin[1] + psin[1]) - k[
MINUS] * cos(phin[1] - psin[1])));
865 ckp[1] * skp[1] * stp[2] * (
866 4. * (15. * stp[2] + 51.) * cos(psin[2])
867 + 20. * skp[2] * (7. * stp[2] - 6.) * (4. * cos(psin[4]) - cos(psin[2]))
875 ) + ctp[2] * s2t * 8. * (
881 ) + 8. * skp[2] * s2t * (7. * stp[2] - 3.) * (
882 sin(phin[1] + psin[4]) * (+3. * k[
PLUS_] + 4. * skp[2])
883 + sin(phin[1] - psin[4]) * (-3. * k[
MINUS] + 4. * skp[2])
884 ) + 16. * skp[1] * (2. - 8. * stp[2] + 7. * stp[4]) * (
887 ) + skp[1] * stp[2] * (stp[2] - 2.) * (
897 30. * ctp[1] * skp[1] * sin(psin[2]) * stp[2] * (3. * skp[2] - 2.) + (stp[1] * (
900 ) + 2. * ctp[1] * skp[1] * (
904 ) + 4. * (7. * stp[2] - 2.) * (
908 ) + ctp[1] * skp[1] * stp[2] * (
920 ) + 4. * (2. - 3. * stp[2]) * (
924 ) + 4. * skp[2] * stp[1] * (6. - 7. * stp[2]) * (
925 (-3. * k[
PLUS_] - 4. * skp[2]) * cos(phin[1] + psin[4])
926 + (+3. * k[
MINUS] - 4. * skp[2]) * cos(phin[1] - psin[4])
929 waveampcoeffs[PN10_A +
AMPCOEFF_DIM *
PLUS_] = 1. / 48. * (2. * skp[2] * stp[2] * (
930 5. * skp[2] * (7. * stp[2] - 6.) * (cos(psin[2]) - 4. * cos(psin[4]))
931 - 2. * (15. * stp[2] + 51.) * cos(psin[2])
933 16. * skp[3] * s2t * (7. * stp[2] - 3.) * (
934 sin(phin[1] + psin[4]) * k[
PLUS_]
935 + sin(phin[1] - psin[4]) * k[
MINUS]
936 ) - (stp[2] - 2.) * skp[2] * stp[2] * (
939 ) + 4. * (stp[2] - 2.) * stp[2] * (
942 ) + 2. * skp[1] * s2t * (
956 ) - 16. * skp[2] * (7. * stp[4] - 2. * (4. * stp[2] - 1.)) * (
962 60. * ckp[1] * ctp[1] * skp[2] * sin(psin[2]) * stp[2] + (
963 8. * skp[3] * stp[1] * (7. * stp[2] - 6.) * (
964 cos(phin[1] + psin[4]) * k[
PLUS_]
965 + cos(phin[1] - psin[4]) * k[
MINUS]
966 ) - ctp[1] * skp[2] * stp[2] * (
969 ) + 2. * skp[1] * stp[1] * (
972 ) + 4. * ctp[1] * stp[2] * (
978 ) - 8. * ctp[1] * skp[2] * (7. * stp[2] - 2.) * (
981 ) - 8. * (2. - 3. * stp[2]) * skp[1] * stp[1] * (
984 ) + 2. * skp[1] * stp[1] * (
991 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
996 4. * ckp[1] * ctp[1] * stp[2] * (135. * cos(psin[3]) * skp[2] + cos(psin[1]) * (4. - 15. * skp[2])
999 9. * (2. - 3. * stp[2]) * (
1005 ) - skp[1] * stp[1] * (stp[2] - 2.) * (
1012 ) + skp[1] * stp[1] * (
1013 45. * (2. - 3. * stp[2]) * (
1021 waveampcoeffs[PN05_B +
AMPCOEFF_DIM *
MINUS] = 1. / 32. * (32. * sin(psin[1]) * stp[2] * c2k1 + (
1022 ctp[1] * skp[1] * stp[1] * (27. * (
1026 cos(phin[3] + psin[1]) + 45. * cos(phin[1] + psin[3])
1028 cos(phin[3] - psin[1]) + 45. * cos(phin[1] - psin[3])
1032 )) - (18. * c2t) * (
1040 waveampcoeffs[PN05_A +
AMPCOEFF_DIM *
PLUS_] = 1. / 64. * (4. * ctp[1] * skp[1] * stp[2] * (
1041 -45. * skp[2] * cos(psin[3]) + cos(psin[1]) * (5. * skp[2] - 4.)
1042 ) - skp[2] * stp[1] * ((stp[2] - 2.) * (
1043 sin(phin[3] + psin[1]) * k[
PLUS_]
1044 + sin(phin[3] - psin[1]) * k[
MINUS]
1045 ) - 45. * (2. - 3. * stp[2]) * (
1046 sin(phin[1] + psin[3]) * k[
PLUS_]
1047 + sin(phin[1] - psin[3]) * k[
MINUS]
1051 - 9. * (stp[2] - 2.) * (
1055 ) + 2. * ctp[1] * skp[1] * (
1058 + 9. * (2. - 3. * stp[2]) * (
1064 -16. * s2k1 * stp[2] * sin(psin[1]) + ctp[1] * stp[1] * skp[2] * (
1065 cos(phin[3] + psin[1]) * k[
PLUS_]
1066 + cos(phin[3] - psin[1]) * k[
MINUS]
1068 cos(phin[1] + psin[3]) * k[
PLUS_]
1069 + cos(phin[1] - psin[3]) * k[
MINUS]
1088 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1095 ) + skp[1] * (stp[2] - 2.) * (
1096 cos(phin[2] + psin[2]) * k[
PLUS_]
1097 + cos(phin[2] - psin[2]) * k[
MINUS]
1098 ) - 3. * s2k1 * stp[2] * cos(psin[2]));
1100 sin(phin[2] + psin[2]) * k[
PLUS_]
1101 + sin(phin[2] - psin[2]) * k[
MINUS]
1109 ) - 2. * skp[1] * s2t * (
1110 sin(phin[1] + psin[2]) * k[
PLUS_]
1111 + sin(phin[1] - psin[2]) * k[
MINUS]
1112 ) + 6. * skp[2] * stp[2] * cos(psin[2]));
1116 ) - 2. * stp[1] * skp[1] * (
1117 cos(phin[1] + psin[2]) * k[
PLUS_]
1118 + cos(phin[1] - psin[2]) * k[
MINUS]));
1134 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1146 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1158 h[
i] +=epssqrt * temp;
1161 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1181 (*hplus)->data->data[idx] = ampcoeff * (h[
PLUS_]*cos(
params->polarizationangle)-h[
MINUS]*sin(
params->polarizationangle));
1182 (*hcross)->data->data[idx] = ampcoeff * (h[
MINUS]*cos(
params->polarizationangle)+h[
PLUS_]*sin(
params->polarizationangle));
1212 REAL8 totalmass, nu, chi1, beta1, kappa1, totalJ, S1, omega, eta, romega, v, LN,
theta, polarizationangle;
1214 totalmass = m1 + m2;
1222 "XLAL Error: Spin-dominated waveforms error: Please make sure that the total mass is higher than 45 solar mass, and mass ratio is lower than 0.03125. Also above 130 solar mass be aware that high starting frequency may result in termination right after start, due to high value of the pn parameter. \n");
1226 eta = nu / (1. + nu) / (1. + nu);
1227 chi1 = sqrt(s1x * s1x + s1y * s1y + s1z * s1z);
1230 "XLAL Error: Spin-dominated waveforms error: Please make sure that the dimensionless spin parameter is higher than 0.5 \n");
1233 REAL8 Lnh[DIM_XYZ] = { lnhatx, lnhaty, lnhatz };
1234 REAL8 LNHdotS1 = (Lnh[X] * s1x + Lnh[Y] * s1y + Lnh[Z] * s1z) / chi1;
1235 if (LNHdotS1 - 1.0 > 0 && LNHdotS1 - 1.0 < 1.0e-12)
1236 {kappa1 = acos(1.0);
1238 kappa1 = acos((Lnh[X] * s1x + Lnh[Y] * s1y + Lnh[Z] * s1z) / chi1);
1243 romega =
G_CP2 * totalmass / v / v * (1.);
1244 LN = eta * totalmass * romega * romega * omega;
1248 REAL8 JxN[DIM_XYZ], JxL[DIM_XYZ], Nvec[DIM_XYZ];
1249 REAL8 J[DIM_XYZ] = { LN * Lnh[X] + S1 * s1x / chi1, LN * Lnh[Y] + S1 * s1y / chi1, LN * Lnh[Z] + S1 * s1z / chi1 };
1250 totalJ = sqrt(J[X] * J[X] + J[Y] * J[Y] + J[Z] * J[Z]);
1252 if (kappa1 < 1
e-7) {
1256 polarizationangle=
LAL_PI;
1258 }
else if (kappa1 -
LAL_PI > 0 && kappa1 -
LAL_PI < 1.0e-12) {
1262 polarizationangle=
LAL_PI;
1265 REAL8 JdotS = (J[X] * s1x + J[Y] * s1y + J[Z] * s1z) / totalJ / chi1 ;
1266 if (JdotS - 1.0 > 0 && JdotS - 1.0 < 1.0e-12){
1269 beta1 = acos((J[X] * s1x + J[Y] * s1y + J[Z] * s1z) / totalJ / chi1);
1275 theta = acos((J[X] * Nvec[X] + J[Y] * Nvec[Y] + J[Z] * Nvec[Z]) / totalJ );
1281 REAL8 JxNxN[DIM_XYZ], NxLxN[DIM_XYZ], LxN[DIM_XYZ], NLNxJNN[DIM_XYZ];
1283 REAL8 JxNxNamp, NxLxNamp, polarizationanglesign, JxLamp;
1288 JxLamp = sqrt(JxL[X]*JxL[X]+JxL[Y]*JxL[Y]+JxL[Z]*JxL[Z]);
1289 JxNxNamp=sqrt(JxNxN[X]*JxNxN[X]+JxNxN[Y]*JxNxN[Y]+JxNxN[Z]*JxNxN[Z]);
1290 NxLxNamp=sqrt(NxLxN[X]*NxLxN[X]+NxLxN[Y]*NxLxN[Y]+NxLxN[Z]*NxLxN[Z]);
1292 REAL8 JxNxNdotNxLxN = (JxNxN[X]*NxLxN[X]+JxNxN[Y]*NxLxN[Y]+JxNxN[Z]*NxLxN[Z])/JxNxNamp/NxLxNamp ;
1294 if (JxNxNdotNxLxN - 1.0 > 0 && JxNxNdotNxLxN - 1.0 < 1.0e-12){
1295 polarizationangle = acos(1.0);
1296 }
else if (JxNxNdotNxLxN + 1.0 < 0 && fabs(JxNxNdotNxLxN + 1.0) < 1.0e-12){
1297 polarizationangle = acos(-1.0);
1300 polarizationangle = acos((JxNxN[X]*NxLxN[X]+JxNxN[Y]*NxLxN[Y]+JxNxN[Z]*NxLxN[Z])/JxNxNamp/NxLxNamp);
1303 vectorProd(NxLxN, JxNxN, JxNxNamp*NxLxNamp, NLNxJNN);
1306 polarizationangle =
LAL_PI;
1308 polarizationanglesign = NLNxJNN[X]*Nvec[X]+NLNxJNN[Y]*Nvec[Y]+NLNxJNN[Z]*Nvec[Z];
1310 if (polarizationanglesign < 0.) {
1311 polarizationangle *= -1.0;
1315 REAL8 JxNxJ[DIM_XYZ];
1320 JxNxJamp = sqrt(JxNxJ[X]*JxNxJ[X]+JxNxJ[Y]*JxNxJ[Y]+JxNxJ[Z]*JxNxJ[Z]);
1322 alpha0 = acos((JxNxJ[X] * JxL[X] + JxNxJ[Y] * JxL[Y] + JxNxJ[Z] * JxL[Z])/JxNxJamp/JxLamp);
1326 REAL8 JNJxJL[DIM_XYZ];
1327 vectorProd(JxNxJ, JxL, JxNxJamp*JxLamp, JNJxJL);
1328 REAL8 JNJxJLsign = JNJxJL[X]*J[X]+JNJxJL[Y]*J[Y]+JNJxJL[Z]*J[Z];
1330 if (JNJxJLsign > 0.) {
1337 fStart, fRef, phaseO, amplitudeO,
deltaT, phiRef, phin0, polarizationangle);
1362 REAL8 polarizationangle
1379 if (totalmass < 0) {
1390 XLALPrintError(
"XLAL Error - %s: Cannot allocate integrator\n", __func__);
1396 params.totalmass = totalmass;
1405 params.pnamp = amplitudeO;
1408 params.polarizationangle = polarizationangle;
1428 for (idx = 0; idx < intLen; idx++) {
1435 phiShift = phiRef - psi->
data->
data[0];
1439 }
else if (fRef == fStart) {
1440 phiShift = phiRef - psi->
data->
data[0];
1446 "XLAL Error: Spin-dominated waveforms error: Please set the reference frequency as the starting frequency, Setting 0 will default to the starting frequency. \n");
1449 if ((*hplus) && (*hcross)) {
1450 if ((*hplus)->data->length != (*hcross)->data->length) {
1454 if ((
int) (*hplus)->data->length < intLen) {
1466 if (*hplus == NULL || *hcross == NULL) {
1473 for (idx = 0; idx < intLen; idx++) {
1505 vP[
i] = vP[1] * vP[
i - 1];
1512 REAL8 phasecoeff = 96. / 5. * eta * vP[5] * values[
OMEGA] * values[
OMEGA];
1518 if (
params->kappa1 != 0 ) {
1519 switch (
params->pnphase) {
1524 * (1. - 2. *
params->xi * sqrt(
params->eps)) * (sinKappa1 * cosKappa1
1525 +
params->beta1 * cosKappa1 * cosKappa1);
1526 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1531 * ( 5. * sqrt(
params->eps) *
params->xi - 4.)*(1. + cosKappa1 *
params->beta1 / sinKappa1 );
1532 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1545 switch (
params->pnphase) {
1548 dvalues[
OMEGA] += phasecoeff * vP[
PN20] * (34103. / 18144. + 13661. / 2016. * eta + 59. / 18. * eta * eta);
1551 * (5. / 2. *
params->chi1 *
params->chi1 * eta /
params->nu * (3. * cosKappa1 * cosKappa1 - 1.)
1552 + 1. / 96. *
params->chi1 *
params->chi1 * eta /
params->nu * (6. + sinKappa1 * sinKappa1));
1553 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1560 * (-1 / 12. * cosKappa1 *
params->chi1 * (113. * eta /
params->nu + 75. * eta));
1561 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1565 dvalues[
OMEGA] += -phasecoeff * vP[
PN10] * (743. / 336. + 11. / 4. * eta);
1566 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1572 dvalues[
OMEGA] += phasecoeff * 1.;
1584 UNUSED
void *mparams) {
1590 vP[
i] = vP[1] * vP[
i - 1];
1601 switch (
params->pnphase) {
1604 mecotest += +6. * vP[
PN20]
1605 * (1. / 8. * (-27. + 19. * eta - eta * eta / 3.)
1606 - (3. * cosKappa1 * cosKappa1 - 1.) / 2. *
params->chi1 *
params->chi1 * eta /
params->nu);
1607 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1611 mecotest += +5. * vP[
PN15] * (8. / 3. * eta /
params->nu + 2. * eta) * cosKappa1 *
params->chi1;
1612 #
if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1616 mecotest += -4. * vP[
PN10] * (3. + eta / 3.) / 4.;
1617 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1644 else if (isnan(omega)) {
1647 }
else if (vP[1] >= 1.) {
1648 XLALPrintWarning(
"** LALSimInspiralSDW WARNING **: PN parameter is too large\n");
1650 }
else if (domega < 0.0) {
1653 }
else if (d2omega <= 0.) {
void XLALDestroyREAL8Array(REAL8Array *)
void XLALAdaptiveRungeKuttaFree(LALAdaptiveRungeKuttaIntegrator *integrator)
int XLALAdaptiveRungeKutta4Hermite(LALAdaptiveRungeKuttaIntegrator *integrator, void *params, REAL8 *yinit, REAL8 tinit, REAL8 tend_in, REAL8 deltat, REAL8Array **yout)
LALAdaptiveRungeKuttaIntegrator * XLALAdaptiveRungeKutta4Init(int dim, int(*dydt)(double t, const double y[], double dydt[], void *params), int(*stop)(double t, const double y[], double dydt[], void *params), double eps_abs, double eps_rel)
REAL8TimeSeries * XLALCreateREAL8TimeSeries(const CHAR *name, const LIGOTimeGPS *epoch, REAL8 f0, REAL8 deltaT, const LALUnit *sampleUnits, size_t length)
void XLALDestroyREAL8TimeSeries(REAL8TimeSeries *series)
const LALUnit lalStrainUnit
const LALUnit lalDimensionlessUnit
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
int int XLALPrintWarning(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
LIGOTimeGPS * XLALGPSAdd(LIGOTimeGPS *epoch, REAL8 dt)