21 #include <lal/LALStdlib.h>
22 #include <lal/LALSimInspiral.h>
23 #include <lal/LALConstants.h>
24 #include <lal/TimeSeries.h>
28 #define UNUSED __attribute__ ((unused))
68 if (
l == 2 && abs(
m) == 2 )
70 else if (
l == 2 && abs(
m) == 1 )
72 else if (
l == 2 &&
m == 0 )
74 else if (
l == 3 && abs(
m) == 3 )
76 else if (
l == 3 && abs(
m) == 2 )
78 else if (
l == 3 && abs(
m) == 1 )
80 else if (
l == 3 &&
m == 0 )
82 else if (
l == 4 && abs(
m) == 4 )
84 else if (
l == 4 && abs(
m) == 3 )
86 else if (
l == 4 && abs(
m) == 2 )
88 else if (
l == 4 && abs(
m) == 1 )
90 else if (
l == 4 &&
m == 0 )
92 else if (
l == 5 && abs(
m) == 5 )
94 else if (
l == 5 && abs(
m) == 4 )
96 else if (
l == 5 && abs(
m) == 3 )
98 else if (
l == 5 && abs(
m) == 2 )
100 else if (
l == 5 && abs(
m) == 1 )
102 else if (
l == 5 &&
m == 0 )
104 else if (
l == 6 && abs(
m) == 6 )
106 else if (
l == 6 && abs(
m) == 5 )
108 else if (
l == 6 && abs(
m) == 4 )
110 else if (
l == 6 && abs(
m) == 3 )
112 else if (
l == 6 && abs(
m) == 2 )
114 else if (
l == 6 && abs(
m) == 1 )
116 else if (
l == 6 &&
m == 0 )
119 XLALPrintError(
"XLAL Error - %s: Unsupported mode l=%d, m=%d\n", __func__,
l,
m );
125 REAL8 sign =
l % 2 ? -1.0 : 1.0;
157 if (
l == 2 && abs(
m) == 2 )
159 else if (
l == 2 && abs(
m) == 1 )
161 else if (
l == 2 &&
m == 0 )
163 else if (
l == 3 && abs(
m) == 3 )
165 else if (
l == 3 && abs(
m) == 2 )
167 else if (
l == 3 && abs(
m) == 1 )
169 else if (
l == 3 &&
m == 0 )
171 else if (
l == 4 && abs(
m) == 4 )
173 else if (
l == 4 && abs(
m) == 3 )
175 else if (
l == 4 && abs(
m) == 2 )
177 else if (
l == 4 && abs(
m) == 1 )
179 else if (
l == 4 &&
m == 0 )
181 else if (
l == 5 && abs(
m) == 5 )
183 else if (
l == 5 && abs(
m) == 4 )
185 else if (
l == 5 && abs(
m) == 3 )
187 else if (
l == 5 && abs(
m) == 2 )
189 else if (
l == 5 && abs(
m) == 1 )
191 else if (
l == 5 &&
m == 0 )
193 else if (
l == 6 && abs(
m) == 6 )
195 else if (
l == 6 && abs(
m) == 5 )
197 else if (
l == 6 && abs(
m) == 4 )
199 else if (
l == 6 && abs(
m) == 3 )
201 else if (
l == 6 && abs(
m) == 2 )
203 else if (
l == 6 && abs(
m) == 1 )
205 else if (
l == 6 &&
m == 0 )
208 XLALPrintError(
"XLAL Error - %s: Unsupported mode l=%d, m=%d\n", __func__,
l,
m );
215 sign*=
l % 2 ? -1.0 : 1.0;
261 REAL8 phi, v, v2, logv, logv_v0, logv0 = log(v0);
265 REAL8 re0 = 1., re2 = 0., re3 = 0., im3log = 0., re4 = 0., re5 = 0.;
266 REAL8 im5 = 0., im5log = 0., re6 = 0., im6 = 0., re6log = 0.;
267 REAL8 re6logsq = 0., im6log = 0.;
271 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
275 re6 = (27027409.0/646800.0) - (856.0/105.0)*
LAL_GAMMA
276 + (2.0/3.0)*pi2 - (1712.0/105.0)*log(2.0)
277 - ((278185.0/33264.0) - (41.0/96.0)*pi2)*nu
278 - (20261.0/2772.0)*nu2 + (114635.0/99792.0)*nu3;
279 re6log = - (856.0/105.0);
281 im6 = (428.0/105.0)*
LAL_PI;
283 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
287 re5 = - ((107.0/21.0) - (34.0/21.0)*nu)*
LAL_PI;
289 im5log = - ((107.0/7.0) - (34.0/7.0)*nu)*2.0;
290 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
294 re4 = - ((2173.0/1512.0) + (1069.0/216.0)*nu
295 - (2047.0/1512.0)*nu2);
296 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
302 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
306 re2 = - ((107.0/42.0) - (55.0/42.0)*nu);
307 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
315 for (j=0; j <
V->data->length; j++) {
316 v =
V->data->data[j];
319 logv_v0 = logv - logv0;
321 re = re0 + v2*(re2 + v*(re3 + v*(re4 + v*(re5 + v*(re6
322 + re6log*logv + re6logsq*logv_v0*logv_v0)))));
323 im = v*v2*(im3log*logv_v0 + v2*(im5 + im5log*logv_v0
324 + v*(im6 + im6log*logv_v0)));
369 REAL8 re1 = 0., re3 = 0., re4 = 0., im4 = 0., im4log = 0., re5 = 0.;
373 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
378 re5 = -((43.0/126.0)+(509.0/126.0)*nu-(79.0/168.0)*nu2);
379 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
384 im4 = -(1.0/2.0) - 2.0*log(2.0);
386 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
390 re3 = - ((17.0/28.0) - (5.0/7.0)*nu);
391 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
397 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
404 for (j=0; j <
V->data->length; j++) {
405 v =
V->data->data[j];
408 re = re1 + v2 * (re3 + v * (re4 + v * re5));
409 im = v*v2 * (im4 + im4log * log(v/v0));
411 hlm->
data->
data[j] = ans * I * ((fac*nu*dm/
r)*v2*v);
450 for (j=0; j <
V->data->length; j++) {
451 v =
V->data->data[j];
497 REAL8 re1 = 0., re3 = 0., re4 = 0., im4 = 0., im4log = 0., re5 = 0.;
501 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
506 re5 = ((123.0/110.0) - (1838.0/165.0)*nu
507 - (887.0/330.0)*nu2);
508 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
513 im4 = -(21.0/5.0) + 6.0*log(3.0/2.0);
515 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
519 re3 = - (4.0 - 2.0*nu);
520 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
526 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
533 for (j=0; j <
V->data->length; j++) {
534 v =
V->data->data[j];
537 re = re1 + v2 * (re3 + v * (re4 + v * re5));
538 im = v*v2 * (im4 + im4log * log(v/v0));
540 hlm->
data->
data[j] = ans * I * ((fac*nu*dm/
r)*v2*v);
579 REAL8 nuterm = (1. - 3.*nu);
584 REAL8 re2 = 0., re4 = 0., re5 = 0., im5 = 0., im5log = 0.;
588 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
594 im5 = -3.0 + (66.0/5.0)*nu;
595 im5log = 12.0*nuterm;
596 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
600 re4 = - ((193.0/90.0) - (145.0/18.0)*nu
602 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
608 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
616 for (j=0; j <
V->data->length; j++) {
617 v =
V->data->data[j];
620 re = re2 + v2 * (re4 + v * re5);
621 im = v*v2 * (im5 + im5log * log(v/v0));
623 hlm->
data->
data[j] = ans * ((fac*nu*
m/
r)*v2*v2);
666 REAL8 re1 = 0., re3 = 0., re4 = 0., im4 = 0., im4log = 0., re5 = 0.;
670 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
675 re5 = ((607.0/198.0) - (136.0/99.0)*nu
676 - (247.0/198.0)*nu2);
677 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
682 im4 = -(7.0/5.0) - 2.0*log(2.0);
684 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
688 re3 = - ((8.0/3.0) + (2.0/3.0)*nu);
689 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
695 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
702 for (j=0; j <
V->data->length; j++) {
703 v =
V->data->data[j];
706 re = re1 + v2 * (re3 + v * (re4 + v * re5));
707 im = v*v2 * (im4 + im4log * log(v/v0));
709 hlm->
data->
data[j] = ans * I * ((fac*nu*dm/
r)*v2*v);
754 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
768 for (j=0; j <
V->data->length; j++) {
769 v =
V->data->data[j];
772 hlm->
data->
data[j] = ans * I * ((fac*
m*nu2/
r)*v7);
810 REAL8 nuterm = 1. - 3.*nu;
815 REAL8 re2 = 0., re4 = 0., re5 = 0., im5 = 0., im5log = 0., re6 = 0.;
819 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
823 re6 = 1068671./200200. - (1088119./28600.)*nu
824 + (146879./2340.)*nu2 - (226097./17160.)*nu2*nu;
825 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
830 im5 = -42./5. + (1193./40.) *nu + 8.*nuterm*log(2.);
832 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
836 re4 = 593./110. - (1273./66.)*nu + (175./22.)*nu2;
837 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
843 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
851 for (j=0; j <
V->data->length; j++) {
852 v =
V->data->data[j];
855 re = re2 + v2 * (re4 + v * (re5 + v * re6));
856 im = v*v2 * (im5 + im5log * log(v/v0));
858 hlm->
data->
data[j] = ans * ((fac*nu*
m/
r)*v2*v2);
901 REAL8 re3 = 0., re5 = 0.;
905 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
910 re5 = 39./11. - (1267./132.)*nu + (131./33.)*nu2;
911 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
917 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
926 for (j=0; j <
V->data->length; j++) {
927 v =
V->data->data[j];
932 hlm->
data->
data[j] = ans * ((fac*nu*dm/
r)*v*v2*v2);
970 REAL8 nuterm = 1. - 3.*nu;
975 REAL8 re2 = 0., re4 = 0., re5 = 0., im5 = 0., im5log = 0., re6 = 0.;
979 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
983 re6 = 1038039./200200. - (606751./28600.)*nu
984 + (400453./25740.)*nu2 + (25783./17160.)*nu*nu2;
985 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
990 im5 = -21./5. + (84./5.) *nu + 8.*nuterm*log(2.);
992 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
996 re4 = 437./110. - (805./66.)*nu + (19./22.)*nu2;
997 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1003 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1011 for (j=0; j <
V->data->length; j++) {
1012 v =
V->data->data[j];
1015 re = re2 + v2 * (re4 + v * (re5 + v * re6));
1016 im = v*v2 * (im5 + im5log * log(v/v0));
1018 hlm->
data->
data[j] = ans * ((fac*nu*
m/
r)*v2*v2);
1061 REAL8 re3 = 0., re5 = 0.;
1065 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
1070 re5 = - (101./33. - (337./44.)*nu + (83./33.)*nu2);
1071 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1077 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1086 for (j=0; j <
V->data->length; j++) {
1087 v =
V->data->data[j];
1090 re = re3 + v2 * re5;
1092 hlm->
data->
data[j] = ans * I * ((fac*nu*dm/
r)*v*v2*v2);
1131 for (j=0; j <
V->data->length; j++) {
1132 v =
V->data->data[j];
1178 REAL8 re3 = 0., re5 = 0.;
1182 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
1187 re5 = - (263./39. - (688./39.)*nu + (256./39.)*nu2);
1188 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1194 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1203 for (j=0; j <
V->data->length; j++) {
1204 v =
V->data->data[j];
1207 re = re3 + v2 * re5;
1209 hlm->
data->
data[j] = ans * I * ((fac*nu*dm/
r)*v*v2*v2);
1251 REAL8 re4 = 0., re6 = 0.;
1255 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
1259 re6 = - (4451./910. - (3619./130.)*nu + (521./13.)*nu2
1260 - (339./26.)*nu*nu2);
1261 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1266 re4 = 1. - 5.*nu + 5.*nu2;
1267 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1277 for (j=0; j <
V->data->length; j++) {
1278 v =
V->data->data[j];
1281 re = re4 + v2 * re6;
1283 hlm->
data->
data[j] = ans * ((fac*nu*
m/
r)*v2*v2*v2);
1326 REAL8 re3 = 0., re5 = 0.;
1330 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
1335 re5 = - (69./13. - (464./39.)*nu + (88./39.)*nu2);
1336 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1342 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1351 for (j=0; j <
V->data->length; j++) {
1352 v =
V->data->data[j];
1355 re = re3 + v2 * re5;
1357 hlm->
data->
data[j] = ans * I * ((fac*nu*dm/
r)*v*v2*v2);
1399 REAL8 re4 = 0., re6 = 0.;
1403 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
1407 re6 = - (3911./910. - (3079./130.)*nu + (413./13.)*nu2
1408 - (231./26.)*nu*nu2);
1409 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1414 re4 = 1. - 5.*nu + 5.*nu2;
1415 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1425 for (j=0; j <
V->data->length; j++) {
1426 v =
V->data->data[j];
1429 re = re4 + v2 * re6;
1431 hlm->
data->
data[j] = ans * ((fac*nu*
m/
r)*v2*v2*v2);
1474 REAL8 re3 = 0., re5 = 0.;
1478 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
1483 re5 = - (179./39. - (352./39.)*nu + (4./39.)*nu2);
1484 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1490 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1499 for (j=0; j <
V->data->length; j++) {
1500 v =
V->data->data[j];
1503 re = re3 + v2 * re5;
1505 hlm->
data->
data[j] = ans * I * ((fac*nu*dm/
r)*v*v2*v2);
1539 for (j=0; j <
V->data->length; j++) {
1582 REAL8 re4 = 0., re6 = 0.;
1586 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
1590 re6 = - (113./14. - (91./2.)*nu + (64.)*nu2
1592 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1597 re4 = 1. - 5.*nu + 5.*nu2;
1598 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1608 for (j=0; j <
V->data->length; j++) {
1609 v =
V->data->data[j];
1612 re = re4 + v2 * re6;
1614 hlm->
data->
data[j] = ans * ((fac*nu*
m/
r)*v2*v2*v2);
1661 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
1666 re5 = 1. - 4.*nu + 3.*nu2;
1675 for (j=0; j <
V->data->length; j++) {
1676 v =
V->data->data[j];
1681 hlm->
data->
data[j] = ans * I * ((fac*nu*dm/
r)*v*v2*v2*v2);
1723 REAL8 re4 = 0., re6 = 0.;
1727 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
1731 re6 = - (113./14. - (91./2.)*nu + (64.)*nu2
1733 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1738 re4 = 1. - 5.*nu + 5.*nu2;
1739 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1749 for (j=0; j <
V->data->length; j++) {
1750 v =
V->data->data[j];
1753 re = re4 + v2 * re6;
1755 hlm->
data->
data[j] = ans * ((fac*nu*
m/
r)*v2*v2*v2);
1802 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
1807 re5 = 1. - 4.*nu + 3.*nu2;
1816 for (j=0; j <
V->data->length; j++) {
1817 v =
V->data->data[j];
1822 hlm->
data->
data[j] = ans * I * ((fac*nu*dm/
r)*v*v2*v2*v2);
1864 REAL8 re4 = 0., re6 = 0.;
1868 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
1872 re6 = - (81./14. - (59./2.)*nu + 32.*nu2
1874 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1879 re4 = 1. - 5.*nu + 5.*nu2;
1880 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
1890 for (j=0; j <
V->data->length; j++) {
1891 v =
V->data->data[j];
1894 re = re4 + v2 * re6;
1896 hlm->
data->
data[j] = ans * ((fac*nu*
m/
r)*v2*v2*v2);
1943 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, O/2, O%2?
".5":
"" );
1948 re5 = 1. - 4.*nu + 3.*nu2;
1957 for (j=0; j <
V->data->length; j++) {
1958 v =
V->data->data[j];
1963 hlm->
data->
data[j] = ans * I * ((fac*nu*dm/
r)*v*v2*v2*v2);
1997 for (j=0; j <
V->data->length; j++) {
2007 typedef struct tagLALSimInspiralInclAngle {
2036 angle->
ciSq=ciota*ciota;
2037 angle->
siSq=1.-ciota*ciota;
2038 angle->
si=sqrt(angle->
siSq);
2040 angle->
s2i=2.*ciota*angle->
si;
2111 REAL8 eta=m1/(m1+m2)*m2/(m1+m2);
2112 REAL8 dm=(m1-m2)/(m1+m2);
2123 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
2128 amp3 = (-1.7+2.*eta)/2.8;
2130 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
2134 amp2 = -10.7/4.2 +5.5/4.2*eta;
2136 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
2144 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, ampO/2, ampO%2?
".5":
"" );
2154 for (idx=0;idx<
V->data->length;idx++) {
2163 REAL8 checkL,checke;
2166 if ((checkL<1.-
EPS)||(checkL>1.+
EPS)) {
2167 XLALPrintError(
"XLAL Error - %s: LNhat unit vector has not unit norm %12.4e at idx %d\n", __func__,checkL,idx);
2171 if ((checke<1.-
EPS)||(checke>1.+
EPS)) {
2172 XLALPrintError(
"XLAL Error - %s: e1 unit vector has not unit norm %12.4e at idx %d\n", __func__,checke,idx);
2208 REAL8 c2Pp3a,c2Pm3a,c2Pp2a,c2Pm2a,cPp2a,cPm2a,c2Ppa,c2Pma,cPpa,cPma,c2P,cP;
2209 REAL8 s2Pp3a,s2Pm3a,s2Pp2a,s2Pm2a,sPp2a,sPm2a,s2Ppa,s2Pma,sPpa,sPma,s2P,sP;
2210 REAL8 ca,sa,c2a,s2a,c3a,s3a;
2211 REAL8 Sax,Ssx,Say,Ssy;
2222 REAL8 re023p,re13,re2S,re3S,im023p,im13,im2S,im3S;
2224 REAL8 const sqrt1p5=sqrt(1.5);
2226 for (idx=0; idx<
V->data->length; idx++) {
2227 v=
V->data->data[idx];
2236 ny=e1y->
data->
data[idx]*cos(Psi)+e2y*sin(Psi);
2237 nz=e1z->
data->
data[idx]*cos(Psi)+e2z*sin(Psi);
2239 ly=e2y*cos(Psi)-e1y->
data->
data[idx]*sin(Psi);
2240 lz=e2z*cos(Psi)-e1z->
data->
data[idx]*sin(Psi);
2260 c2Pp2a=c2P*c2a-s2P*s2a;
2261 c2Pm2a=c2P*c2a+s2P*s2a;
2262 s2Pp2a=s2P*c2a+c2P*s2a;
2263 s2Pm2a=s2P*c2a-c2P*s2a;
2264 c2Pp3a=c2P*c3a-s2P*s3a;
2265 c2Pm3a=c2P*c3a+s2P*s3a;
2266 s2Pp3a=c2P*s3a+s2P*c3a;
2267 s2Pm3a=-c2P*s3a+s2P*c3a;
2268 c2Ppa=c2P*ca-s2P*sa;
2269 c2Pma=c2P*ca+s2P*sa;
2270 s2Ppa=s2P*ca+c2P*sa;
2271 s2Pma=s2P*ca-c2P*sa;
2276 cPp2a=cP*c2a-sP*s2a;
2277 cPm2a=cP*c2a+sP*s2a;
2278 sPp2a=sP*c2a+cP*s2a;
2279 sPm2a=sP*c2a-cP*s2a;
2289 re023p = (1. + v2*amp2 + v3*amp3pi ) * ( c2Pp2a*an->
ciBy2Qu + c2Pm2a*an->
siBy2Qu );
2290 re13 = v * dm/3.*amp1*an->
si*(1.+v2*amp3)*( cPp2a*an->
ciBy2Sq + cPm2a*an->
siBy2Sq);
2297 re3S+= (-c2a*an->
ci*an->
siSq + 2.*((1.-5./3.*an->
ci)*an->
ciBy2Qu*c2Pp2a-(1.+5./3.*an->
ci)*an->
siBy2Qu*c2Pm2a))*(Ssz+dm*Saz);
2298 re3S+= eta*(0.5*c2a*an->
siSq*an->
ci + 1./3.*((5.-an->
ci)*an->
ciBy2Qu*c2Pp2a - (5.+an->
ci)*an->
siBy2Qu*c2Pm2a) )*Ssz;
2301 im023p = (1. + v2*amp2 + v3*amp3pi ) * (-s2Pp2a*an->
ciBy2Qu + s2Pm2a*an->
siBy2Qu );
2302 im13 = v * dm/3.*amp1*an->
si*(1.+v2*amp3)*(-sPp2a*an->
ciBy2Sq + sPm2a*an->
siBy2Sq);
2304 im3S = ( -sa*(1.-2.*an->
siSq*ca*ca) + 5./3.*( an->
ciBy2Qu*s2Pp3a-an->
siBy2Qu*s2Pm3a) + 1./6.*(-(1.-5.*an->
ci)*an->
ciBy2Sq*s2Ppa+(1.+5.*an->
ci)*an->
siBy2Sq*s2Pma) )*(Ssx+dm*Sax);
2306 im3S+= ( -ca*(1.-2.*an->
siSq*sa*sa) - 5./3.*(an->
ciBy2Qu*c2Pp3a+an->
siBy2Qu*c2Pm3a) - 1./6.*((1.-5.*an->
ci)*an->
ciBy2Sq*c2Ppa+(1.+5.*an->
ci)*an->
siBy2Sq*c2Pma) )*(Ssy+dm*Say);
2309 im3S+= ( s2a*an->
ci*an->
siSq - 2.*((1.-5./3.*an->
ci)*an->
ciBy2Qu*s2Pp2a + (1.+5./3.*an->
ci)*an->
siBy2Qu*s2Pm2a) ) * (Ssz+dm*Saz);
2310 im3S+= eta*(-0.5*s2a*an->
ci*an->
siSq - 1./3.*((5.-an->
ci)*an->
ciBy2Qu*s2Pp2a + (5.+an->
ci)*an->
siBy2Qu*s2Pm2a ) )*Ssz;
2313 h22->
data->
data[idx] =amp22*v2*(re023p+re13+re2S+re3S+I*( im023p+im13+im2S+im3S));
2314 h2m2->
data->
data[idx]=amp22*v2*(re023p-re13-re2S+re3S+I*(-im023p+im13+im2S-im3S));
2317 re023p = an->
si * ( 1. + v2*amp2 + v3*amp3pi ) * ( c2Ppa * an->
ciBy2Sq - c2Pma * an->
siBy2Sq );
2318 re13 = v * dm/3.*amp1*(1.+v2*amp3)*(-cPpa*(an->
ci+an->
c2i)/2. -cPma*an->
siBy2Sq*(1.+2.*an->
ci) );
2319 re2S = v2*amp2S * 0.5 * ( an->
si*sP*(Say+dm*Ssy) + (cPma*an->
siBy2Sq+cPpa*an->
ciBy2Sq)*(Saz+dm*Ssz) );
2320 re3S = an->
si*(ca*an->
c2i + (1.-10./3.*an->
ci)*an->
ciBy2Sq*c2Ppa + (1.+10./3.*an->
ci)*an->
siBy2Sq*c2Pma)*(Ssz+dm*Saz);
2321 re3S+= an->
si*eta*( (5.-2.*an->
ci)/6.*an->
ciBy2Sq*c2Ppa+an->
siBy2Sq*(5.+2.*an->
ci)/6.*c2Pma - 0.5*ca*an->
c2i )*Ssz;
2322 re3S+= 1./3.*((-7.+10.*an->
ci)*an->
ciBy2Qu*s2Pp2a-(7.+10.*an->
ci)*an->
siBy2Qu*s2Pm2a + .5*an->
siSq*s2P + 3.*an->
ci*an->
siSq*s2a) * (dm*Say+Ssy);
2323 re3S+= eta*((0.5+an->
ci/3.)*an->
ciBy2Qu*s2Pp2a+(0.5-an->
ci/3.)*an->
siBy2Qu*s2Pm2a -1.3/1.2*an->
siSq*s2P - 0.5*an->
ci*an->
siSq*s2a) * Ssy;
2328 im023p = an->
si * ( 1. + v2*amp2 + v3*amp3pi ) * (-s2Ppa * an->
ciBy2Sq - s2Pma * an->
siBy2Sq );
2329 im13 = v * dm/3.*amp1*(1.+v2*amp3)*( sPpa*(an->
ci+an->
c2i)/2. -sPma*an->
siBy2Sq*(1.+2.*an->
ci) );
2330 im2S = v2*amp2S * 0.5 * ( an->
si*sP*(Sax+dm*Ssx) + (sPma*an->
siBy2Sq-sPpa*an->
ciBy2Sq)*(Saz+dm*Ssz) );
2331 im3S = an->
si*(-sa*an->
c2i + (-1.+10./3.*an->
ci)*an->
ciBy2Sq*s2Ppa + (1.+10./3.*an->
ci)*an->
siBy2Sq*s2Pma)*(Ssz+dm*Saz);
2332 im3S+= an->
si*eta*( (-5.+2.*an->
ci)/6.*an->
ciBy2Sq*s2Ppa+an->
siBy2Sq*(5.+2.*an->
ci)/6.*s2Pma+0.5*sa*an->
c2i)*Ssz;
2335 im3S+= 1./3.*((7.-10.*an->
ci)*an->
ciBy2Qu*s2Pp2a+(7.+10.*an->
ci)*an->
siBy2Qu*s2Pm2a + .5*an->
siSq*s2P - 3.*an->
ci*an->
siSq*s2a) * (dm*Sax+Ssx);
2336 im3S+= eta*(-(0.5+an->
ci/3.)*an->
ciBy2Qu*s2Pp2a-(0.5-an->
ci/3.)*an->
siBy2Qu*s2Pm2a -1.3/1.2*an->
siSq*s2P + 0.5*an->
ci*an->
siSq*s2a) * Ssx;
2339 h21->
data->
data[idx] =amp22*v2*( re023p+re13+re2S+re3S+I*( im023p+im13+im2S+im3S));
2340 h2m1->
data->
data[idx]=amp22*v2*(-re023p+re13+re2S-re3S+I*( im023p-im13-im2S+im3S));
2344 re023p = ( 1. + v2*amp2 + v3*amp3pi) * ( an->
siSq*c2P );
2347 re3S = an->
s2i/3.*( (3.-5.*c2P)*(Ssz+dm*Saz) - eta/2.*(3.+c2P)*Ssz );
2348 re3S+=(-2.*ca*an->
ciSq + 2./3.*(5.*an->
ci-2.)*an->
ciBy2Sq*c2Ppa - 2./3.*(5.*an->
ci+2.)*an->
siBy2Sq*c2Pma)*(Ssx+dm*Sax);
2350 re3S+=(-2.*sa*an->
ciSq + 2./3.*(5.*an->
ci-2.)*an->
ciBy2Sq*s2Ppa + 2./3.*(5.*an->
ci+2.)*an->
siBy2Sq*s2Pma)*(Ssy+dm*Say);
2352 re3S*=amp3S*v3*an->
si;
2355 im13 = v*amp1*dm/3.*(1.+v2*amp3)*an->
s2i*sP;
2356 im2S = v2*amp2S/3.* (-2.*sP*an->
si*(Saz+dm*Ssz) + (-sPpa*an->
ciBy2Sq+sPma*an->
siBy2Sq)*(Sax+dm*Ssx) + (cPpa*an->
ciBy2Sq+cPma*an->
siBy2Sq)*(Say+dm*Ssy) );
2359 h20->
data->
data[idx]=amp22*v2*sqrt1p5*(re023p+re13+re2S+re3S+I*(im023p+im13+im2S+im3S));
2439 REAL8 eta=m1/(m1+m2)*m2/(m1+m2);
2440 REAL8 dm=(m1-m2)/(m1+m2);
2449 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
2455 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
2460 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
2468 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, ampO/2, ampO%2?
".5":
"" );
2472 REAL8 checkL,checke;
2475 if ((checkL<1.-
EPS)||(checkL>1.+
EPS)) {
2476 XLALPrintError(
"XLAL Error - %s: LNhat unit vector has not unit norm %12.4e\n", __func__,checkL);
2480 if ((checke<1.-
EPS)||(checke>1.+
EPS)) {
2481 XLALPrintError(
"XLAL Error - %s: e1 unit vector has not unit norm %12.4e at idx %d\n", __func__,checke,idx);
2492 for (idx=0;idx<
V->data->length;idx++) {
2532 REAL8 c3Pp3a,c3Pm3a,c3Pp2a,c3Pm2a,c3Ppa,c3Pma,c2Pp3a,c2Pm3a,c2Pp2a,c2Pm2a,c2Ppa,c2Pma,cPp3a,cPm3a,cPp2a,cPm2a,cPpa,cPma,cP,c2P,c3P;
2533 REAL8 s3Pp3a,s3Pm3a,s3Pp2a,s3Pm2a,s3Ppa,s3Pma,s2Pp3a,s2Pm3a,s2Pp2a,s2Pm2a,s2Ppa,sPp2a,sPm2a,s2Pma,sPpa,sPma,sPp3a,sPm3a,sP,s2P,s3P;
2534 REAL8 ca,sa,c2a,s2a,c3a,s3a;
2549 REAL8 re3,re4,re5,re5S,im3,im4,im5,im5S;
2551 for (idx=0; idx<
V->data->length; idx++) {
2552 v=
V->data->data[idx];
2561 ny=e1y->
data->
data[idx]*cos(Psi)+e2y*sin(Psi);
2562 nz=e1z->
data->
data[idx]*cos(Psi)+e2z*sin(Psi);
2564 ly=e2y*cos(Psi)-e1y->
data->
data[idx]*sin(Psi);
2565 lz=e2z*cos(Psi)-e1z->
data->
data[idx]*sin(Psi);
2587 c3Pp3a=c3P*c3a-s3P*s3a;
2588 c3Pm3a=c3P*c3a+s3P*s3a;
2589 s3Pp3a=s3P*c3a+c3P*s3a;
2590 s3Pm3a=s3P*c3a-c3P*s3a;
2591 c3Pp2a=c3P*c2a-s3P*s2a;
2592 c3Pm2a=c3P*c2a+s3P*s2a;
2593 s3Pp2a=s3P*c2a+c3P*s2a;
2594 s3Pm2a=s3P*c2a-c3P*s2a;
2595 c3Ppa=c3P*ca-s3P*sa;
2596 c3Pma=c3P*ca+s3P*sa;
2597 s3Ppa=s3P*ca+c3P*sa;
2598 s3Pma=s3P*ca-c3P*sa;
2599 c2Pp3a=c2P*c3a-s2P*s3a;
2600 c2Pm3a=c2P*c3a+s2P*s3a;
2601 s2Pp3a=s2P*c3a+c2P*s3a;
2602 s2Pm3a=s2P*c3a-c2P*s3a;
2603 c2Pp2a=c2P*c2a-s2P*s2a;
2604 c2Pm2a=c2P*c2a+s2P*s2a;
2605 s2Pp2a=s2P*c2a+c2P*s2a;
2606 s2Pm2a=s2P*c2a-c2P*s2a;
2607 c2Ppa=c2P*ca-s2P*sa;
2608 c2Pma=c2P*ca+s2P*sa;
2609 s2Ppa=s2P*ca+c2P*sa;
2610 s2Pma=s2P*ca-c2P*sa;
2611 cPp3a=cP*c3a-sP*s3a;
2612 cPm3a=cP*c3a+sP*s3a;
2613 sPp3a=sP*c3a+cP*s3a;
2614 sPm3a=sP*c3a-cP*s3a;
2615 cPp2a=cP*c2a-sP*s2a;
2616 cPm2a=cP*c2a+sP*s2a;
2617 sPp2a=sP*c2a+cP*s2a;
2618 sPm2a=sP*c2a-cP*s2a;
2640 h33->
data->
data[idx] =amp33*v2*( re3+re4+re5+re5S+I*(im3+im4+im5+im5S));
2641 h3m3->
data->
data[idx]=amp33*v2*(-re3+re4-re5+re5S+I*(im3-im4+im5-im5S));
2645 re4 = amp2*v2*4.*( an->
ciBy2Qu*c2Pp2a*(2./3.-an->
ci) + an->
siBy2Qu*c2Pm2a*(2./3.+an->
ci) );
2646 re5 = amp3*v3*dm*an->
si*(-18.*(1.-0.5*eta)*(an->
ciBy2Qu*c3Pp2a + an->
siBy2Qu*c3Pm2a) + (1.+0.25*eta)*2./9.*((-1.+3.*an->
ci)*an->
ciBy2Sq*cPp2a - (1.+3.*an->
ci)*an->
siBy2Sq*cPm2a ) );
2649 im4 = amp2*v2*4.*(-an->
ciBy2Qu*s2Pp2a*(2./3.-an->
ci) + an->
siBy2Qu*s2Pm2a*(2./3.+an->
ci) );
2650 im5 = amp3*v3*dm*an->
si*( 18.*(1.-0.5*eta)*(an->
ciBy2Qu*s3Pp2a - an->
siBy2Qu*s3Pm2a) + (1.+0.25*eta)*2./9.*(( 1.-3.*an->
ci)*an->
ciBy2Sq*sPp2a - (1.+3.*an->
ci)*an->
siBy2Sq*sPm2a ) );
2652 h32->
data->
data[idx] =amp33*sqrt(6.)*v2*(re3+re4+re5+re5S+I*( im3+im4+im5+im5S));
2653 h3m2->
data->
data[idx]=amp33*sqrt(6.)*v2*(re3-re4+re5-re5S+I*(-im3+im4-im5+im5S));
2657 re4 = amp2*v2*10./3.*an->
si*(an->
ciBy2Sq*c2Ppa*(1.-3.*an->
ci) - an->
siBy2Sq*c2Pma*(1.+3.*an->
ci));
2661 im4 = amp2*v2*10./3.*an->
si*(-an->
ciBy2Sq*s2Ppa*(1.-3.*an->
ci) - an->
siBy2Sq*s2Pma*(1.+3.*an->
ci));
2664 h31->
data->
data[idx] =amp33*sqrt(.6)*v2*( re3+re4+re5+re5S+I*(im3+im4+im5+im5S));
2665 h3m1->
data->
data[idx]=amp33*sqrt(.6)*v2*(-re3+re4-re5+re5S+I*(im3-im4+im5-im5S));
2668 re3 = amp1*v*dm*an->
si*( cP/4.*(3.+5.*an->
c2i) +22.5*c3P*an->
siSq);
2670 re5 = amp3*v3*dm*an->
si*(-90.*(1.-0.5*eta)*an->
siSq*c3P - 2.*(1.+0.25*eta)*(1.+5./3.*an->
c2i)*cP);
2673 im4 = amp2*v2*20.*an->
ci*an->
siSq*s2P;
2676 h30->
data->
data[idx]=amp33/sqrt(5.)*v2*(re3+re4+re5+re5S+I*(im3+im4+im5+im5S));
2760 REAL8 eta=m1/(m1+m2)*m2/(m1+m2);
2761 REAL8 dm=(m1-m2)/(m1+m2);
2768 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
2773 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
2782 XLALPrintError(
"XLAL Error - %s: PN order %d%s not supported\n", __func__, ampO/2, ampO%2?
".5":
"" );
2786 REAL8 checkL,checke;
2789 if ((checkL<1.-
EPS)||(checkL>1.+
EPS)) {
2790 XLALPrintError(
"XLAL Error - %s: LNhat unit vector has not unit norm %12.4e\n", __func__,checkL);
2794 if ((checke<1.-
EPS)||(checke>1.+
EPS)) {
2795 XLALPrintError(
"XLAL Error - %s: e1 unit vector has not unit norm %12.4e at idx %d\n", __func__,checke,idx);
2846 REAL8 cP,sP,c2P,s2P,c3P,s3P,c4P,s4P;
2847 REAL8 ca,sa,c2a,s2a,c3a,s3a,c4a,s4a;
2850 REAL8 c4Pm4a,c3Pm4a,c2Pm4a,cPm4a,cPp4a,c2Pp4a,c3Pp4a,c4Pp4a,c4Pm3a,c3Pm3a,c2Pm3a,cPm3a,cPp3a,c2Pp3a,c3Pp3a,c4Pp3a,c4Pm2a,c3Pm2a,c2Pm2a,cPm2a,cPp2a,c2Pp2a,c3Pp2a,c4Pp2a,c4Pma,c3Pma,c2Pma,cPma,cPpa,c2Ppa,c3Ppa,c4Ppa;
2851 REAL8 s4Pm4a,s3Pm4a,s2Pm4a,sPm4a,sPp4a,s2Pp4a,s3Pp4a,s4Pp4a,s4Pm3a,s3Pm3a,s2Pm3a,sPm3a,sPp3a,s2Pp3a,s3Pp3a,s4Pp3a,s4Pm2a,s3Pm2a,s2Pm2a,sPm2a,sPp2a,s2Pp2a,s3Pp2a,s4Pp2a,s4Pma,s3Pma,s2Pma,sPma,sPpa,s2Ppa,s3Ppa,s4Ppa;
2866 REAL8 re4,re5,im4,im5;
2868 for (idx=0; idx<
V->data->length; idx++) {
2869 v=
V->data->data[idx];
2878 ny=e1y->
data->
data[idx]*cos(Psi)+e2y*sin(Psi);
2879 nz=e1z->
data->
data[idx]*cos(Psi)+e2z*sin(Psi);
2881 ly=e2y*cos(Psi)-e1y->
data->
data[idx]*sin(Psi);
2882 lz=e2z*cos(Psi)-e1z->
data->
data[idx]*sin(Psi);
2899 c4a=c2a*c2a-s2a*s2a;
2900 s4a=c2a*s2a+s2a*c2a;
2905 c4P=c2P*c2P-s2P*s2P;
2906 s4P=c2P*s2P+s2P*c2P;
2907 c4Pp4a=c4P*c4a-s4P*s4a;
2908 c4Pm4a=c4P*c4a+s4P*s4a;
2909 s4Pp4a=s4P*c4a+c4P*s4a;
2910 s4Pm4a=s4P*c4a-c4P*s4a;
2911 c4Pp3a=c4P*c3a-s4P*s3a;
2912 c4Pm3a=c4P*c3a+s4P*s3a;
2913 s4Pp3a=s4P*c3a+c4P*s3a;
2914 s4Pm3a=s4P*c3a-c4P*s3a;
2915 c4Pp2a=c4P*c2a-s4P*s2a;
2916 c4Pm2a=c4P*c2a+s4P*s2a;
2917 s4Pp2a=s4P*c2a+c4P*s2a;
2918 s4Pm2a=s4P*c2a-c4P*s2a;
2919 c4Ppa=c4P*ca-s4P*sa;
2920 c4Pma=c4P*ca+s4P*sa;
2921 s4Ppa=s4P*ca+c4P*sa;
2922 s4Pma=s4P*ca-c4P*sa;
2923 c3Pp4a=c3P*c4a-s3P*s4a;
2924 c3Pm4a=c3P*c4a+s3P*s4a;
2925 s3Pp4a=s3P*c4a+c3P*s4a;
2926 s3Pm4a=s3P*c4a-c3P*s4a;
2927 c3Pp3a=c3P*c3a-s3P*s3a;
2928 c3Pm3a=c3P*c3a+s3P*s3a;
2929 s3Pp3a=s3P*c3a+c3P*s3a;
2930 s3Pm3a=s3P*c3a-c3P*s3a;
2931 c3Pp2a=c3P*c2a-s3P*s2a;
2932 c3Pm2a=c3P*c2a+s3P*s2a;
2933 s3Pp2a=s3P*c2a+c3P*s2a;
2934 s3Pm2a=s3P*c2a-c3P*s2a;
2935 c3Ppa=c3P*ca-s3P*sa;
2936 c3Pma=c3P*ca+s3P*sa;
2937 s3Ppa=s3P*ca+c3P*sa;
2938 s3Pma=s3P*ca-c3P*sa;
2939 c2Pp4a=c2P*c4a-s2P*s4a;
2940 c2Pm4a=c2P*c4a+s2P*s4a;
2941 s2Pp4a=s2P*c4a+c2P*s4a;
2942 s2Pm4a=s2P*c4a-c2P*s4a;
2943 c2Pp3a=c2P*c3a-s2P*s3a;
2944 c2Pm3a=c2P*c3a+s2P*s3a;
2945 s2Pp3a=s2P*c3a+c2P*s3a;
2946 s2Pm3a=s2P*c3a-c2P*s3a;
2947 c2Pp2a=c2P*c2a-s2P*s2a;
2948 c2Pm2a=c2P*c2a+s2P*s2a;
2949 s2Pp2a=s2P*c2a+c2P*s2a;
2950 s2Pm2a=s2P*c2a-c2P*s2a;
2951 c2Ppa=c2P*ca-s2P*sa;
2952 c2Pma=c2P*ca+s2P*sa;
2953 s2Ppa=s2P*ca+c2P*sa;
2954 s2Pma=s2P*ca-c2P*sa;
2955 cPp4a=cP*c4a-sP*s4a;
2956 cPm4a=cP*c4a+sP*s4a;
2957 sPp4a=sP*c4a+cP*s4a;
2958 sPm4a=sP*c4a-cP*s4a;
2959 cPp3a=cP*c3a-sP*s3a;
2960 cPm3a=cP*c3a+sP*s3a;
2961 sPp3a=sP*c3a+cP*s3a;
2962 sPm3a=sP*c3a-cP*s3a;
2963 cPp2a=cP*c2a-sP*s2a;
2964 cPm2a=cP*c2a+sP*s2a;
2965 sPp2a=sP*c2a+cP*s2a;
2966 sPm2a=sP*c2a-cP*s2a;
2984 h44->
data->
data[idx] =amp44*v2*( re4+re5+I*( im4+im5));
2985 h4m4->
data->
data[idx]=amp44*v2*( re4-re5+I*(-im4+im5));
2989 re5 = amp3*v3*dm* (9./5.*( an->
ciBy2Sx*(-1.5+2.*an->
ci)*c3Pp3a + an->
siBy2Sx*(1.5+2.*an->
ci)*c3Pm3a ) + 1./80.*an->
siSq*( cPp3a*(an->
ci+1./3.+2./3.*an->
c2i) + cPm3a*(an->
ci-1./3.-2./3.*an->
c2i) ) );
2991 im5 = amp3*v3*dm* (9./5.*(-an->
ciBy2Sx*(-1.5+2.*an->
ci)*s3Pp3a + an->
siBy2Sx*(1.5+2.*an->
ci)*s3Pm3a ) + 1./80.*an->
siSq*(-sPp3a*(an->
ci+1./3.+2./3.*an->
c2i) + sPm3a*(an->
ci-1./3.-2./3.*an->
c2i) ) );
2992 h43->
data->
data[idx] =amp44*sqrt(2.)*v2*( re4+re5+I*( im4+im5));
2993 h4m3->
data->
data[idx]=amp44*sqrt(2.)*v2*(-re4+re5+I*( im4-im5));
2997 re5 = amp3*v3*dm*an->
si*( 9./10.*( c3Pp2a*an->
ciBy2Qu*(-1.+2.*an->
ci) - c3Pm2a*an->
siBy2Qu*(1.+2.*an->
ci) ) - 1./70.*( cPp2a*an->
ciBy2Sq*(1.-7./6.*an->
ci+7./6.*an->
c2i) + cPm2a*an->
siBy2Sq*(1.+7./6.*an->
ci+7./6.*an->
c2i) ) );
2999 im5 = amp3*v3*dm*an->
si*( 9./10.*( s3Pp2a*an->
ciBy2Qu*( 1.-2.*an->
ci) - s3Pm2a*an->
siBy2Qu*(1.+2.*an->
ci) ) + 1./70.*( sPp2a*an->
ciBy2Sq*(1.-7./6.*an->
ci+7./6.*an->
c2i) - sPm2a*an->
siBy2Sq*(1.+7./6.*an->
ci+7./6.*an->
c2i) ) );
3000 h42->
data->
data[idx] =amp44*sqrt(7.)*v2*( re4+re5+I*( im4+im5));
3001 h4m2->
data->
data[idx]=amp44*sqrt(7.)*v2*( re4-re5+I*(-im4+im5));
3005 re5 = amp3*v3*dm*( 63./40.*an->
siSq*( c3Ppa*an->
ciBy2Sq*(-1.+4.*an->
ci) + c3Pma*an->
siBy2Sq*(1.+4.*an->
ci) ) + 1./30.*( cPpa*an->
ciBy2Sq*(-15./8.+15./4.*an->
ci-21./8.*an->
c2i+7./4.*an->
c3i) + cPma*an->
siBy2Sq*( 15./8.+15./4.*an->
ci+21./8.*an->
c2i+7./4.*an->
c3i) ) );
3007 im5 = amp3*v3*dm*( 63./40.*an->
siSq*( s3Ppa*an->
ciBy2Sq*( 1.-4.*an->
ci) + s3Pma*an->
siBy2Sq*(1.+4.*an->
ci) ) + 1./30.*( sPpa*an->
ciBy2Sq*( 15./8.-15./4.*an->
ci+21./8.*an->
c2i-7./4.*an->
c3i) + sPma*an->
siBy2Sq*( 15./8.+15./4.*an->
ci+21./8.*an->
c2i+7./4.*an->
c3i) ) );
3008 h41->
data->
data[idx] =amp44*sqrt(2./7.)*v2*( re4+re5+I*(im4+im5));
3009 h4m1->
data->
data[idx]=amp44*sqrt(2./7.)*v2*(-re4+re5+I*(im4-im5));
3012 re4 = -amp2*v2/18.*an->
siSq*( 56.*an->
siSq*c4P + (5.+7.*an->
c2i)*c2P );
3015 im5 = -amp3*v3*dm*an->
s2i/40.*( 63.*an->
siSq*s3P + (1.+7.*an->
c2i)/6.*sP );
3016 h40->
data->
data[idx]=amp44*sqrt(10./7.)*v2*(re4+re5+I*(im4+im5));
#define LAL_CHECK_VALID_SERIES(s, val)
#define LAL_CHECK_CONSISTENT_TIME_SERIES(s1, s2, val)
COMPLEX16TimeSeries * XLALSimInspiralPNMode41(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(4,1) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode43(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(4,3) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode33(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(3,3) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode64(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(6,4) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode54(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(5,4) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALCreateSimInspiralPNModeCOMPLEX16TimeSeries(REAL8TimeSeries *v, REAL8TimeSeries *phi, REAL8 v0, REAL8 m1, REAL8 m2, REAL8 r, int O, int l, int m)
Computes h(l,m) mode timeseries of spherical harmonic decomposition of the post-Newtonian inspiral wa...
COMPLEX16TimeSeries * XLALSimInspiralPNMode55(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(5,5) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
INT4 XLALSimInspiralSpinPNMode2m(SphHarmTimeSeries **h2ms, REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8TimeSeries *LNhx, REAL8TimeSeries *LNhy, REAL8TimeSeries *LNhz, REAL8TimeSeries *e1x, REAL8TimeSeries *e1y, REAL8TimeSeries *e1z, REAL8TimeSeries *S1x, REAL8TimeSeries *S1y, REAL8TimeSeries *S1z, REAL8TimeSeries *S2x, REAL8TimeSeries *S2y, REAL8TimeSeries *S2z, REAL8 m1, REAL8 m2, REAL8 distance, int ampO)
Computes the 5 l=2 modes of spherical harmonic decomposition of the post-Newtonian inspiral waveform ...
COMPLEX16TimeSeries * XLALSimInspiralPNMode60(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 UNUSED m1, REAL8 UNUSED m2, REAL8 UNUSED r, int UNUSED O)
Computes h(6,0) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode44(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(4,4) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode63(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(6,3) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode50(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 UNUSED m1, REAL8 UNUSED m2, REAL8 UNUSED r, int UNUSED O)
Computes h(5,0) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode42(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(4,2) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode40(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int UNUSED O)
Computes h(4,0) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALCreateSimInspiralPNModeCOMPLEX16TimeSeriesLALConvention(REAL8TimeSeries *v, REAL8TimeSeries *phi, REAL8 m1, REAL8 m2, REAL8 r, int O, int l, int m)
Computes h(l,m) mode timeseries of spherical harmonic decomposition of the post-Newtonian inspiral wa...
COMPLEX16TimeSeries * XLALSimInspiralPNMode62(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(6,2) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode30(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(3,0) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode20(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int UNUSED O)
Computes h(2,0) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
static LALSimInspiralInclAngle * XLALSimInspiralComputeInclAngle(REAL8 ciota)
COMPLEX16TimeSeries * XLALSimInspiralPNMode65(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(6,5) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
INT4 XLALSimInspiralSpinPNMode4m(SphHarmTimeSeries **h4ms, REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8TimeSeries *LNhx, REAL8TimeSeries *LNhy, REAL8TimeSeries *LNhz, REAL8TimeSeries *e1x, REAL8TimeSeries *e1y, REAL8TimeSeries *e1z, UNUSED REAL8TimeSeries *S1x, UNUSED REAL8TimeSeries *S1y, UNUSED REAL8TimeSeries *S1z, UNUSED REAL8TimeSeries *S2x, UNUSED REAL8TimeSeries *S2y, UNUSED REAL8TimeSeries *S2z, REAL8 m1, REAL8 m2, REAL8 distance, int ampO)
Computes all l=3 modes of spherical harmonic decomposition of the post-Newtonian inspiral waveform fo...
COMPLEX16TimeSeries * XLALSimInspiralPNMode66(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(6,6) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode21(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(2,1) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode61(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(6,1) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
INT4 XLALSimInspiralSpinPNMode3m(SphHarmTimeSeries **h3ms, REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8TimeSeries *LNhx, REAL8TimeSeries *LNhy, REAL8TimeSeries *LNhz, REAL8TimeSeries *e1x, REAL8TimeSeries *e1y, REAL8TimeSeries *e1z, REAL8TimeSeries *S1x, REAL8TimeSeries *S1y, REAL8TimeSeries *S1z, REAL8TimeSeries *S2x, REAL8TimeSeries *S2y, REAL8TimeSeries *S2z, REAL8 m1, REAL8 m2, REAL8 distance, int ampO)
Computes all l=3 modes of spherical harmonic decomposition of the post-Newtonian inspiral waveform fo...
COMPLEX16TimeSeries * XLALSimInspiralPNMode31(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(3,1) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode32(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(3,2) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode51(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(5,1) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode22(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(2,2) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode52(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(5,2) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
COMPLEX16TimeSeries * XLALSimInspiralPNMode53(REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 UNUSED v0, REAL8 m1, REAL8 m2, REAL8 r, int O)
Computes h(5,3) mode of spherical harmonic decomposition of the post-Newtonian inspiral waveform.
SphHarmTimeSeries * XLALSphHarmTimeSeriesAddMode(SphHarmTimeSeries *appended, const COMPLEX16TimeSeries *inmode, UINT4 l, INT4 m)
Prepend a node to a linked list of SphHarmTimeSeries, or create a new head.
REAL8TimeSeries * XLALCreateREAL8TimeSeries(const CHAR *name, const LIGOTimeGPS *epoch, REAL8 f0, REAL8 deltaT, const LALUnit *sampleUnits, size_t length)
void XLALDestroyCOMPLEX16TimeSeries(COMPLEX16TimeSeries *series)
void XLALDestroyREAL8TimeSeries(REAL8TimeSeries *series)
COMPLEX16TimeSeries * XLALCreateCOMPLEX16TimeSeries(const CHAR *name, const LIGOTimeGPS *epoch, REAL8 f0, REAL8 deltaT, const LALUnit *sampleUnits, size_t length)
const LALUnit lalStrainUnit
const LALUnit lalDimensionlessUnit
#define XLAL_ERROR_NULL(...)
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
Utility type and function to compute trigonometric functions from the cosine of an angle.
Structure to carry a collection of spherical harmonic modes in COMPLEX16 time series.