Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALSimulation 6.2.0.1-b246709
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
PhenomNSBHTest.c
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2019 Edward Jacob Fauchon-Jones, Jonathan E. Thompson, Sebastian Khan
3 * Test code for LALSimIMRPhenomNSBH
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with with program; see the file COPYING. If not, write to the
17 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18 * MA 02110-1301 USA
19 */
20
21#include <stdio.h>
22#include <stdlib.h>
23#include <math.h>
24#include <float.h>
25
26#include <lal/Units.h>
27#include <lal/LALAdaptiveRungeKuttaIntegrator.h>
28#include <lal/LALConstants.h>
29#include <lal/FindRoot.h>
30#include <lal/SeqFactories.h>
31#include <lal/LALSimInspiral.h>
32#include <lal/LALSimIMR.h>
33
34#include <lal/LALSimNoise.h>
35#include <lal/ComplexFFT.h>
36
37#include <lal/ComplexFFT.h>
38#include <gsl/gsl_errno.h>
39#include <gsl/gsl_spline.h>
40#include <gsl/gsl_math.h>
41
42#include "../lib/LALSimIMRPhenomNSBH.c"
43
44#define MYUNUSED(expr) do { (void)(expr); } while (0)
45
46bool approximatelyEqual(REAL8 a, REAL8 b, REAL8 epsilon);
48 if (a == 0)
49 return fabs(b) < epsilon;
50 else if (b == 0)
51 return fabs(a) < epsilon;
52 else
53 return !gsl_fcmp(a, b, epsilon);
54}
55
56void print_difference(const char *name, REAL8 u, REAL8 u_expected);
57void print_difference(const char *name, REAL8 u, REAL8 u_expected) {
58 printf("%s: %-20.17g\t%-20.17g\t%-20.17g\n", name, u, u_expected, u - u_expected);
59}
60
61#define COUNT_X_D 36
62#define TOLERANCE_X_D 1e-8
63double input_x_D[COUNT_X_D][4] = {
64 {0.0234970529550629, 0.14, 2.00, -0.90}, {0.1299454661328111, 0.14, 2.00, 0.00},
65 {0.2882657031643916, 0.14, 2.00, 0.90}, {0.0000000000000000, 0.14, 3.00, -0.90},
66 {0.0643792049443779, 0.14, 3.00, 0.00}, {0.2941998033123807, 0.14, 3.00, 0.90},
67 {0.0000000000000000, 0.14, 4.00, -0.90}, {0.0000000000000000, 0.14, 4.00, 0.00},
68 {0.2887085776862365, 0.14, 4.00, 0.90}, {0.0000000000000000, 0.14, 5.00, -0.90},
69 {0.0000000000000000, 0.14, 5.00, 0.00}, {0.2763968308942356, 0.14, 5.00, 0.90},
70 {0.0000000000000000, 0.17, 2.00, -0.90}, {0.0430073416291199, 0.17, 2.00, 0.00},
71 {0.2332155204085186, 0.17, 2.00, 0.90}, {0.0000000000000000, 0.17, 3.00, -0.90},
72 {0.0000000000000000, 0.17, 3.00, 0.00}, {0.2231866136920418, 0.17, 3.00, 0.90},
73 {0.0000000000000000, 0.17, 4.00, -0.90}, {0.0000000000000000, 0.17, 4.00, 0.00},
74 {0.2028602793140871, 0.17, 4.00, 0.90}, {0.0000000000000000, 0.17, 5.00, -0.90},
75 {0.0000000000000000, 0.17, 5.00, 0.00}, {0.1765433406768961, 0.17, 5.00, 0.90},
76 {0.0000000000000000, 0.20, 2.00, -0.90}, {0.0000000000000000, 0.20, 2.00, 0.00},
77 {0.1778008350569429, 0.20, 2.00, 0.90}, {0.0000000000000000, 0.20, 3.00, -0.90},
78 {0.0000000000000000, 0.20, 3.00, 0.00}, {0.1517306063389851, 0.20, 3.00, 0.90},
79 {0.0000000000000000, 0.20, 4.00, -0.90}, {0.0000000000000000, 0.20, 4.00, 0.00},
80 {0.1165992019782404, 0.20, 4.00, 0.90}, {0.0000000000000000, 0.20, 5.00, -0.90},
81 {0.0000000000000000, 0.20, 5.00, 0.00}, {0.0764832851666699, 0.20, 5.00, 0.90}};
83 0.3088924923327651, 0.3608377155105134, 0.4646547625420939,
84 0.2714360204588185, 0.2813120354031964, 0.4566294437711992,
85 0.2594324700000000, 0.2049292800000000, 0.4391346676862365,
86 0.2494980801484723, 0.1949948901484723, 0.4168885310427079,
87 0.2981427993777023, 0.2866469510068221, 0.4223519397862209,
88 0.2841833804588185, 0.2296801904588185, 0.3983636141508602,
89 0.2721798300000000, 0.2176766400000000, 0.3660337293140871,
90 0.2622454401484722, 0.2077422501484723, 0.3297824008253684,
91 0.3108901593777023, 0.2563869693777023, 0.3796846144346452,
92 0.2969307404588185, 0.2424275504588185, 0.3396549667978037,
93 0.2849271900000000, 0.2304240000000000, 0.2925200119782405,
94 0.2749928001484723, 0.2204896101484723, 0.2424697053151421};
95static void Test_x_D(void);
96static void Test_x_D(void) {
97 printf("\n## Test_x_D\n\n");
98 for (int i=0; i<COUNT_X_D; i++) {
100 input_x_D[i][0],
101 input_x_D[i][1],
102 input_x_D[i][2],
103 input_x_D[i][3]);
104 print_difference("XLALSimIMRPhenomNSBH_x_D", output, expected_x_D[i]);
106 }
107}
108
109#define COUNT_EPSILON_INS_WITH_TORUS_MASS 36
110#define TOLERANCE_EPSILON_INS_WITH_TORUS_MASS 1e-8
112 {0.0234970529550629, 0.14, 2.00, -0.90}, {0.1299454661328111, 0.14, 2.00, 0.00},
113 {0.2882657031643916, 0.14, 2.00, 0.90}, {0.0000000000000000, 0.14, 3.00, -0.90},
114 {0.0643792049443779, 0.14, 3.00, 0.00}, {0.2941998033123807, 0.14, 3.00, 0.90},
115 {0.0000000000000000, 0.14, 4.00, -0.90}, {0.0000000000000000, 0.14, 4.00, 0.00},
116 {0.2887085776862365, 0.14, 4.00, 0.90}, {0.0000000000000000, 0.14, 5.00, -0.90},
117 {0.0000000000000000, 0.14, 5.00, 0.00}, {0.2763968308942356, 0.14, 5.00, 0.90},
118 {0.0000000000000000, 0.17, 2.00, -0.90}, {0.0430073416291199, 0.17, 2.00, 0.00},
119 {0.2332155204085186, 0.17, 2.00, 0.90}, {0.0000000000000000, 0.17, 3.00, -0.90},
120 {0.0000000000000000, 0.17, 3.00, 0.00}, {0.2231866136920418, 0.17, 3.00, 0.90},
121 {0.0000000000000000, 0.17, 4.00, -0.90}, {0.0000000000000000, 0.17, 4.00, 0.00},
122 {0.2028602793140871, 0.17, 4.00, 0.90}, {0.0000000000000000, 0.17, 5.00, -0.90},
123 {0.0000000000000000, 0.17, 5.00, 0.00}, {0.1765433406768961, 0.17, 5.00, 0.90},
124 {0.0000000000000000, 0.20, 2.00, -0.90}, {0.0000000000000000, 0.20, 2.00, 0.00},
125 {0.1778008350569429, 0.20, 2.00, 0.90}, {0.0000000000000000, 0.20, 3.00, -0.90},
126 {0.0000000000000000, 0.20, 3.00, 0.00}, {0.1517306063389851, 0.20, 3.00, 0.90},
127 {0.0000000000000000, 0.20, 4.00, -0.90}, {0.0000000000000000, 0.20, 4.00, 0.00},
128 {0.1165992019782404, 0.20, 4.00, 0.90}, {0.0000000000000000, 0.20, 5.00, -0.90},
129 {0.0000000000000000, 0.20, 5.00, 0.00}, {0.0764832851666699, 0.20, 5.00, 0.90}};
131 0.8001567056997589, 0.7161488129677773, 0.5482517318264241,
132 0.8607328102731804, 0.8447609238645346, 0.5612305983554656,
133 0.8801454322171999, 0.9682901712127998, 0.5895238500311107,
134 0.8962117248606847, 0.9843564638562846, 0.6255011920564910,
135 0.8175415391344047, 0.8361330849537270, 0.6166655489001320,
136 0.8401172697867804, 0.9282620087823803, 0.6554604286506627,
137 0.8595298917307999, 0.9476746307263999, 0.7077456116040858,
138 0.8755961843742848, 0.9637409233698846, 0.7663727100891812,
139 0.7969259986480047, 0.8850707376436047, 0.6856688541517143,
140 0.8195017293003803, 0.9076464682959803, 0.7504064014959200,
141 0.8389143512443999, 0.9270590902399999, 0.8266349358283103,
142 0.8549806438878846, 0.9431253828834847, 0.9075782937761394};
143static void Test_epsilon_ins_with_torus_mass(void);
145 printf("\n## Test_epsilon_ins_with_torus_mass\n\n");
146 for (int i=0; i<COUNT_EPSILON_INS_WITH_TORUS_MASS; i++) {
152 print_difference("XLALSimIMRPhenomNSBH_epsilon_ins_with_torus_mass", output, expected_epsilon_ins_with_torus_mass[i]);
154 }
155}
156
157#define COUNT_X_D_PRIME 36
158#define TOLERANCE_X_D_PRIME 1e-8
160 {0.0234970529550629, 0.14, 2.00, -0.90}, {0.1299454661328111, 0.14, 2.00, 0.00},
161 {0.2882657031643916, 0.14, 2.00, 0.90}, {0.0000000000000000, 0.14, 3.00, -0.90},
162 {0.0643792049443779, 0.14, 3.00, 0.00}, {0.2941998033123807, 0.14, 3.00, 0.90},
163 {0.0000000000000000, 0.14, 4.00, -0.90}, {0.0000000000000000, 0.14, 4.00, 0.00},
164 {0.2887085776862365, 0.14, 4.00, 0.90}, {0.0000000000000000, 0.14, 5.00, -0.90},
165 {0.0000000000000000, 0.14, 5.00, 0.00}, {0.2763968308942356, 0.14, 5.00, 0.90},
166 {0.0000000000000000, 0.17, 2.00, -0.90}, {0.0430073416291199, 0.17, 2.00, 0.00},
167 {0.2332155204085186, 0.17, 2.00, 0.90}, {0.0000000000000000, 0.17, 3.00, -0.90},
168 {0.0000000000000000, 0.17, 3.00, 0.00}, {0.2231866136920418, 0.17, 3.00, 0.90},
169 {0.0000000000000000, 0.17, 4.00, -0.90}, {0.0000000000000000, 0.17, 4.00, 0.00},
170 {0.2028602793140871, 0.17, 4.00, 0.90}, {0.0000000000000000, 0.17, 5.00, -0.90},
171 {0.0000000000000000, 0.17, 5.00, 0.00}, {0.1765433406768961, 0.17, 5.00, 0.90},
172 {0.0000000000000000, 0.20, 2.00, -0.90}, {0.0000000000000000, 0.20, 2.00, 0.00},
173 {0.1778008350569429, 0.20, 2.00, 0.90}, {0.0000000000000000, 0.20, 3.00, -0.90},
174 {0.0000000000000000, 0.20, 3.00, 0.00}, {0.1517306063389851, 0.20, 3.00, 0.90},
175 {0.0000000000000000, 0.20, 4.00, -0.90}, {0.0000000000000000, 0.20, 4.00, 0.00},
176 {0.1165992019782404, 0.20, 4.00, 0.90}, {0.0000000000000000, 0.20, 5.00, -0.90},
177 {0.0000000000000000, 0.20, 5.00, 0.00}, {0.0764832851666699, 0.20, 5.00, 0.90}};
179 0.3355511601551063, 0.3832042797328545, 0.3853372531644350,
180 0.2899147353874842, 0.2954986467318621, 0.3691319814998649,
181 0.2708773336000000, 0.2120820400000000, 0.3446033540862365,
182 0.2551215810194710, 0.1963262874194710, 0.3165358547137066,
183 0.3080714872000434, 0.2922835352291633, 0.3263044504085620,
184 0.2859321153874842, 0.2271368217874842, 0.2941361718795260,
185 0.2668947136000000, 0.2080994200000000, 0.2547724357140870,
186 0.2511389610194710, 0.1923436674194710, 0.2126997444963671,
187 0.3040888672000434, 0.2452935736000434, 0.2669071450569863,
188 0.2819494953874842, 0.2231542017874842, 0.2186975445264693,
189 0.2629120936000000, 0.2041168000000000, 0.1645287383782404,
190 0.2471563410194710, 0.1883610474194710, 0.1086570689861409};
191static void Test_x_D_prime(void);
192static void Test_x_D_prime(void) {
193 printf("\n## Test_x_D_prime\n\n");
194 for (int i=0; i<COUNT_X_D_PRIME; i++) {
196 input_x_D_prime[i][0],
197 input_x_D_prime[i][1],
198 input_x_D_prime[i][2],
199 input_x_D_prime[i][3]);
200 print_difference("XLALSimIMRPhenomNSBH_x_D_prime", output, expected_x_D_prime[i]);
202 }
203}
204
205#define COUNT_SIGMA_TIDE_WITH_TORUS_MASS 36
206#define TOLERANCE_SIGMA_TIDE_WITH_TORUS_MASS 1e-8
208 {0.0234970529550629, 0.14, 2.00, -0.90}, {0.1299454661328111, 0.14, 2.00, 0.00},
209 {0.2882657031643916, 0.14, 2.00, 0.90}, {0.0000000000000000, 0.14, 3.00, -0.90},
210 {0.0643792049443779, 0.14, 3.00, 0.00}, {0.2941998033123807, 0.14, 3.00, 0.90},
211 {0.0000000000000000, 0.14, 4.00, -0.90}, {0.0000000000000000, 0.14, 4.00, 0.00},
212 {0.2887085776862365, 0.14, 4.00, 0.90}, {0.0000000000000000, 0.14, 5.00, -0.90},
213 {0.0000000000000000, 0.14, 5.00, 0.00}, {0.2763968308942356, 0.14, 5.00, 0.90},
214 {0.0000000000000000, 0.17, 2.00, -0.90}, {0.0430073416291199, 0.17, 2.00, 0.00},
215 {0.2332155204085186, 0.17, 2.00, 0.90}, {0.0000000000000000, 0.17, 3.00, -0.90},
216 {0.0000000000000000, 0.17, 3.00, 0.00}, {0.2231866136920418, 0.17, 3.00, 0.90},
217 {0.0000000000000000, 0.17, 4.00, -0.90}, {0.0000000000000000, 0.17, 4.00, 0.00},
218 {0.2028602793140871, 0.17, 4.00, 0.90}, {0.0000000000000000, 0.17, 5.00, -0.90},
219 {0.0000000000000000, 0.17, 5.00, 0.00}, {0.1765433406768961, 0.17, 5.00, 0.90},
220 {0.0000000000000000, 0.20, 2.00, -0.90}, {0.0000000000000000, 0.20, 2.00, 0.00},
221 {0.1778008350569429, 0.20, 2.00, 0.90}, {0.0000000000000000, 0.20, 3.00, -0.90},
222 {0.0000000000000000, 0.20, 3.00, 0.00}, {0.1517306063389851, 0.20, 3.00, 0.90},
223 {0.0000000000000000, 0.20, 4.00, -0.90}, {0.0000000000000000, 0.20, 4.00, 0.00},
224 {0.1165992019782404, 0.20, 4.00, 0.90}, {0.0000000000000000, 0.20, 5.00, -0.90},
225 {0.0000000000000000, 0.20, 5.00, 0.00}, {0.0764832851666699, 0.20, 5.00, 0.90}};
227 0.0393259844495971, 0.0253523266239769, 0.0247268598938206,
228 0.0527082727391803, 0.0510708633282890, 0.0294788451409241,
229 0.0582907433271368, 0.0755316988365200, 0.0366715462578143,
230 0.0629109129465934, 0.0801518684559766, 0.0449019755713168,
231 0.0473840413079209, 0.0520136529800058, 0.0420374618755445,
232 0.0538761242801203, 0.0711170797895035, 0.0514703913665634,
233 0.0594585948680768, 0.0766995503774600, 0.0630132952685083,
234 0.0640787644875334, 0.0813197199969166, 0.0753505650231188,
235 0.0485518928488609, 0.0657928483582441, 0.0594549495049245,
236 0.0550439758210603, 0.0722849313304435, 0.0735917881356917,
237 0.0606264464090168, 0.0778674019184000, 0.0894760863441799,
238 0.0652466160284734, 0.0824875715378566, 0.1058597270617110};
239static void Test_sigma_tide_with_torus_mass(void);
241 printf("\n## Test_sigma_tide_with_torus_mass\n\n");
242 for (int i=0; i<COUNT_SIGMA_TIDE_WITH_TORUS_MASS; i++) {
248 print_difference("XLALSimIMRPhenomNSBH_sigma_tide_with_torus_mass", output, expected_sigma_tide_with_torus_mass[i]);
250 }
251}
252
253#define COUNT_EPSILON_TIDE_ND 108
254#define TOLERANCE_EPSILON_TIDE_ND 1e-8
256 {0.0750891905667151}, {0.0205860905667151}, {-0.0339170094332849}, {0.0811293896551724},
257 {0.0266262896551724}, {-0.0278768103448276}, {0.0864809986779085}, {0.0319778986779085},
258 {-0.0225252013220915}, {0.0912559101484723}, {0.0367528101484723}, {-0.0177502898515277},
259 {0.0899611105667151}, {0.0354580105667151}, {-0.0190450894332849}, {0.0960013096551724},
260 {0.0414982096551724}, {-0.0130048903448276}, {0.1013529186779085}, {0.0468498186779085},
261 {-0.0076532813220915}, {0.1061278301484723}, {0.0516247301484723}, {-0.0028783698515277},
262 {0.1048330305667151}, {0.0503299305667151}, {-0.0041731694332849}, {0.1108732296551724},
263 {0.0563701296551724}, {0.0018670296551724}, {0.1162248386779085}, {0.0617217386779085},
264 {0.0072186386779085}, {0.1209997501484723}, {0.0664966501484723}, {0.0119935501484722},
265 {0.2050891905667151}, {0.1505860905667151}, {0.0960829905667151}, {0.2111293896551724},
266 {0.1566262896551724}, {0.1021231896551724}, {0.2164809986779085}, {0.1619778986779085},
267 {0.1074747986779085}, {0.2212559101484723}, {0.1667528101484723}, {0.1122497101484723},
268 {0.2199611105667151}, {0.1654580105667151}, {0.1109549105667151}, {0.2260013096551724},
269 {0.1714982096551724}, {0.1169951096551724}, {0.2313529186779085}, {0.1768498186779085},
270 {0.1223467186779085}, {0.2361278301484722}, {0.1816247301484722}, {0.1271216301484722},
271 {0.2348330305667151}, {0.1803299305667151}, {0.1258268305667151}, {0.2408732296551724},
272 {0.1863701296551724}, {0.1318670296551724}, {0.2462248386779085}, {0.1917217386779085},
273 {0.1372186386779085}, {0.2509997501484723}, {0.1964966501484723}, {0.1419935501484723},
274 {0.3350891905667152}, {0.2805860905667151}, {0.2260829905667151}, {0.3411293896551725},
275 {0.2866262896551725}, {0.2321231896551725}, {0.3464809986779085}, {0.2919778986779085},
276 {0.2374747986779085}, {0.3512559101484723}, {0.2967528101484723}, {0.2422497101484723},
277 {0.3499611105667151}, {0.2954580105667151}, {0.2409549105667151}, {0.3560013096551725},
278 {0.3014982096551724}, {0.2469951096551724}, {0.3613529186779085}, {0.3068498186779085},
279 {0.2523467186779085}, {0.3661278301484723}, {0.3116247301484723}, {0.2571216301484722},
280 {0.3648330305667151}, {0.3103299305667151}, {0.2558268305667151}, {0.3708732296551724},
281 {0.3163701296551724}, {0.2618670296551724}, {0.3762248386779086}, {0.3217217386779085},
282 {0.2672186386779085}, {0.3809997501484723}, {0.3264966501484723}, {0.2719935501484723}};
284 0.9999998046379084, 0.9999548831569878, 0.9896872570770727,
285 0.9999998931171316, 0.9999753160110837, 0.9943314088158876,
286 0.9999999373622024, 0.9999855340106710, 0.9966701567238552,
287 0.9999999611157933, 0.9999910197737862, 0.9979302909525667,
288 0.9999999557491098, 0.9999897803621014, 0.9976453084404011,
289 0.9999999757902789, 0.9999944087966979, 0.9987103698215647,
290 0.9999999858120989, 0.9999967233153314, 0.9992438195259769,
291 0.9999999911924543, 0.9999979659016727, 0.9995304446762743,
292 0.9999999899768628, 0.9999976851620673, 0.9994656726625458,
293 0.9999999945163283, 0.9999987335477748, 0.9997075980461685,
294 0.9999999967863409, 0.9999992578060686, 0.9998286195805649,
295 0.9999999980050291, 0.9999995392617429, 0.9998936037842391,
296 0.9999999999995498, 0.9999999998960247, 0.9999999759869289,
297 0.9999999999997538, 0.9999999999431151, 0.9999999868624169,
298 0.9999999999998557, 0.9999999999666631, 0.9999999923008313,
299 0.9999999999999104, 0.9999999999793051, 0.9999999952205205,
300 0.9999999999998981, 0.9999999999764488, 0.9999999945608710,
301 0.9999999999999443, 0.9999999999871152, 0.9999999970242452,
302 0.9999999999999674, 0.9999999999924489, 0.9999999982560843,
303 0.9999999999999797, 0.9999999999953124, 0.9999999989174144,
304 0.9999999999999769, 0.9999999999946655, 0.9999999987679991,
305 0.9999999999999873, 0.9999999999970814, 0.9999999993259707,
306 0.9999999999999927, 0.9999999999982896, 0.9999999996049909,
307 0.9999999999999953, 0.9999999999989382, 0.9999999997547868,
308 1.0000000000000000, 0.9999999999999998, 0.9999999999999447,
309 1.0000000000000000, 0.9999999999999999, 0.9999999999999698,
310 1.0000000000000000, 1.0000000000000000, 0.9999999999999822,
311 1.0000000000000000, 1.0000000000000000, 0.9999999999999890,
312 1.0000000000000000, 1.0000000000000000, 0.9999999999999875,
313 1.0000000000000000, 1.0000000000000000, 0.9999999999999931,
314 1.0000000000000000, 1.0000000000000000, 0.9999999999999960,
315 1.0000000000000000, 1.0000000000000000, 0.9999999999999976,
316 1.0000000000000000, 1.0000000000000000, 0.9999999999999971,
317 1.0000000000000000, 1.0000000000000000, 0.9999999999999984,
318 1.0000000000000000, 1.0000000000000000, 0.9999999999999991,
319 1.0000000000000000, 1.0000000000000000, 0.9999999999999994};
320static void Test_epsilon_tide_ND(void);
321static void Test_epsilon_tide_ND(void) {
322 printf("\n## Test_epsilon_tide_ND\n\n");
323 for (int i=0; i<COUNT_EPSILON_TIDE_ND; i++) {
326 print_difference("XLALSimIMRPhenomNSBH_epsilon_tide_ND", output, expected_epsilon_tide_ND[i]);
328 }
329}
330
331#define COUNT_SIGMA_TIDE_ND 108
332#define TOLERANCE_SIGMA_TIDE_ND 1e-8
334 {11.4913585699999974}, {11.4679606399999976}, {11.4445627099999978}, {11.4782100899999975},
335 {11.4548121599999977}, {11.4314142299999979}, {11.4650616099999976}, {11.4416636799999978},
336 {11.4182657499999980}, {11.4519131299999959}, {11.4285151999999961}, {11.4051172699999963},
337 {5.7479675665397911}, {5.7245696365397913}, {5.7011717065397916}, {5.7348190865397912},
338 {5.7114211565397914}, {5.6880232265397916}, {5.7216706065397913}, {5.6982726765397915},
339 {5.6748747465397917}, {5.7085221265397914}, {5.6851241965397916}, {5.6617262665397918},
340 {3.9313585699999996}, {3.9079606399999998}, {3.8845627100000000}, {3.9182100899999996},
341 {3.8948121599999999}, {3.8714142300000001}, {3.9050616099999997}, {3.8816636799999999},
342 {3.8582657500000002}, {3.8919131299999998}, {3.8685152000000000}, {3.8451172700000003},
343 {0.5713585699999997}, {0.5479606399999997}, {0.5245627099999997}, {0.5582100899999997},
344 {0.5348121599999996}, {0.5114142299999996}, {0.5450616099999996}, {0.5216636799999996},
345 {0.4982657499999996}, {0.5319131299999997}, {0.5085151999999997}, {0.4851172699999997},
346 {0.7099052828027679}, {0.6865073528027679}, {0.6631094228027679}, {0.6967568028027679},
347 {0.6733588728027678}, {0.6499609428027678}, {0.6836083228027678}, {0.6602103928027678},
348 {0.6368124628027678}, {0.6704598428027679}, {0.6470619128027679}, {0.6236639828027679},
349 {0.7716363477777777}, {0.7482384177777777}, {0.7248404877777777}, {0.7584878677777777},
350 {0.7350899377777776}, {0.7116920077777776}, {0.7453393877777776}, {0.7219414577777776},
351 {0.6985435277777776}, {0.7321909077777777}, {0.7087929777777777}, {0.6853950477777777},
352 {3.1713585699999998}, {3.1479606400000000}, {3.1245627100000002}, {3.1582100899999999},
353 {3.1348121600000001}, {3.1114142300000003}, {3.1450616100000000}, {3.1216636800000002},
354 {3.0982657500000004}, {3.1319131300000000}, {3.1085152000000003}, {3.0851172700000005},
355 {0.3500436911072667}, {0.3266457611072667}, {0.3032478311072667}, {0.3368952111072667},
356 {0.3134972811072667}, {0.2900993511072667}, {0.3237467311072668}, {0.3003488011072667},
357 {0.2769508711072667}, {0.3105982511072667}, {0.2872003211072667}, {0.2638023911072667},
358 {-0.0408636522222222}, {-0.0642615822222222}, {-0.0876595122222222}, {-0.0540121322222222},
359 {-0.0774100622222222}, {-0.1008079922222222}, {-0.0671606122222222}, {-0.0905585422222222},
360 {-0.1139564722222222}, {-0.0803090922222222}, {-0.1037070222222222}, {-0.1271049522222222}};
362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.221245327087672e-12, 2.787214903321455e-12,
364 6.361189353043528e-12, 1.941724558918168e-12, 4.431566225093775e-12,
365 1.011390970973025e-11, 3.087252675726404e-12, 7.045919403481093e-12,
366 1.608063682212446e-11, 4.908573547623973e-12, 1.120264991882891e-11,
367 2.556738154524396e-11, 9.214851104388799e-15, 2.103872631664672e-14,
368 4.801714581503802e-14, 1.465494392505207e-14, 3.347322419244847e-14,
369 7.638334409421077e-14, 2.331468351712829e-14, 5.3179682879545e-14,
370 1.214028877427609e-13, 3.708144902248023e-14, 8.459899447643693e-14,
371 1.930677839823147e-13, 1.054711873393899e-15, 2.386979502944087e-15,
372 5.440092820663267e-15, 1.665334536937735e-15, 3.774758283725532e-15,
373 8.659739592076221e-15, 2.664535259100376e-15, 6.050715484207103e-15,
374 1.376676550535194e-14, 4.218847493575595e-15, 9.603429163007604e-15,
375 2.187139358511558e-14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
376 2.995577952358275e-09, 6.836670896070984e-09, 1.560302204106634e-08,
377 4.762812699787844e-09, 1.086995016219561e-08, 2.48079912168464e-08,
378 7.572623861307193e-09, 1.728265386358174e-08, 3.944341192552159e-08,
379 1.20400769909601e-08, 2.747851823858838e-08, 6.271296681958916e-08,
380 0.002899872666640546, 0.006593729188420216, 0.01492240094346903,
381 0.004602772033608815, 0.01044306254129324, 0.02351879316771205,
382 0.007298349629951184, 0.01650225678554373, 0.03688192323742007,
383 0.01155424686739143, 0.0259847540081769, 0.05739158511822012};
384static void Test_sigma_tide_ND(void);
385static void Test_sigma_tide_ND(void) {
386 printf("\n## Test_sigma_tide_ND\n\n");
387 for (int i=0; i<COUNT_SIGMA_TIDE_ND; i++) {
390 print_difference("XLALSimIMRPhenomNSBH_sigma_tide_ND", output, expected_sigma_tide_ND[i]);
392 }
393}
394
395#define COUNT_X_ND 108
396#define TOLERANCE_X_ND 1e-8
397double input_x_ND[COUNT_X_ND][4] = {
398 {-0.120, 0.050, 0.140, -0.900}, {-0.120, 0.050, 0.140, 0.000}, {-0.120, 0.050, 0.140, 0.900},
399 {-0.120, 0.050, 0.160, -0.900}, {-0.120, 0.050, 0.160, 0.000}, {-0.120, 0.050, 0.160, 0.900},
400 {-0.120, 0.050, 0.180, -0.900}, {-0.120, 0.050, 0.180, 0.000}, {-0.120, 0.050, 0.180, 0.900},
401 {-0.120, 0.050, 0.200, -0.900}, {-0.120, 0.050, 0.200, 0.000}, {-0.120, 0.050, 0.200, 0.900},
402 {-0.120, 0.085, 0.140, -0.900}, {-0.120, 0.085, 0.140, 0.000}, {-0.120, 0.085, 0.140, 0.900},
403 {-0.120, 0.085, 0.160, -0.900}, {-0.120, 0.085, 0.160, 0.000}, {-0.120, 0.085, 0.160, 0.900},
404 {-0.120, 0.085, 0.180, -0.900}, {-0.120, 0.085, 0.180, 0.000}, {-0.120, 0.085, 0.180, 0.900},
405 {-0.120, 0.085, 0.200, -0.900}, {-0.120, 0.085, 0.200, 0.000}, {-0.120, 0.085, 0.200, 0.900},
406 {-0.120, 0.120, 0.140, -0.900}, {-0.120, 0.120, 0.140, 0.000}, {-0.120, 0.120, 0.140, 0.900},
407 {-0.120, 0.120, 0.160, -0.900}, {-0.120, 0.120, 0.160, 0.000}, {-0.120, 0.120, 0.160, 0.900},
408 {-0.120, 0.120, 0.180, -0.900}, {-0.120, 0.120, 0.180, 0.000}, {-0.120, 0.120, 0.180, 0.900},
409 {-0.120, 0.120, 0.200, -0.900}, {-0.120, 0.120, 0.200, 0.000}, {-0.120, 0.120, 0.200, 0.900},
410 {0.010, 0.050, 0.140, -0.900}, {0.010, 0.050, 0.140, 0.000}, {0.010, 0.050, 0.140, 0.900},
411 {0.010, 0.050, 0.160, -0.900}, {0.010, 0.050, 0.160, 0.000}, {0.010, 0.050, 0.160, 0.900},
412 {0.010, 0.050, 0.180, -0.900}, {0.010, 0.050, 0.180, 0.000}, {0.010, 0.050, 0.180, 0.900},
413 {0.010, 0.050, 0.200, -0.900}, {0.010, 0.050, 0.200, 0.000}, {0.010, 0.050, 0.200, 0.900},
414 {0.010, 0.085, 0.140, -0.900}, {0.010, 0.085, 0.140, 0.000}, {0.010, 0.085, 0.140, 0.900},
415 {0.010, 0.085, 0.160, -0.900}, {0.010, 0.085, 0.160, 0.000}, {0.010, 0.085, 0.160, 0.900},
416 {0.010, 0.085, 0.180, -0.900}, {0.010, 0.085, 0.180, 0.000}, {0.010, 0.085, 0.180, 0.900},
417 {0.010, 0.085, 0.200, -0.900}, {0.010, 0.085, 0.200, 0.000}, {0.010, 0.085, 0.200, 0.900},
418 {0.010, 0.120, 0.140, -0.900}, {0.010, 0.120, 0.140, 0.000}, {0.010, 0.120, 0.140, 0.900},
419 {0.010, 0.120, 0.160, -0.900}, {0.010, 0.120, 0.160, 0.000}, {0.010, 0.120, 0.160, 0.900},
420 {0.010, 0.120, 0.180, -0.900}, {0.010, 0.120, 0.180, 0.000}, {0.010, 0.120, 0.180, 0.900},
421 {0.010, 0.120, 0.200, -0.900}, {0.010, 0.120, 0.200, 0.000}, {0.010, 0.120, 0.200, 0.900},
422 {0.140, 0.050, 0.140, -0.900}, {0.140, 0.050, 0.140, 0.000}, {0.140, 0.050, 0.140, 0.900},
423 {0.140, 0.050, 0.160, -0.900}, {0.140, 0.050, 0.160, 0.000}, {0.140, 0.050, 0.160, 0.900},
424 {0.140, 0.050, 0.180, -0.900}, {0.140, 0.050, 0.180, 0.000}, {0.140, 0.050, 0.180, 0.900},
425 {0.140, 0.050, 0.200, -0.900}, {0.140, 0.050, 0.200, 0.000}, {0.140, 0.050, 0.200, 0.900},
426 {0.140, 0.085, 0.140, -0.900}, {0.140, 0.085, 0.140, 0.000}, {0.140, 0.085, 0.140, 0.900},
427 {0.140, 0.085, 0.160, -0.900}, {0.140, 0.085, 0.160, 0.000}, {0.140, 0.085, 0.160, 0.900},
428 {0.140, 0.085, 0.180, -0.900}, {0.140, 0.085, 0.180, 0.000}, {0.140, 0.085, 0.180, 0.900},
429 {0.140, 0.085, 0.200, -0.900}, {0.140, 0.085, 0.200, 0.000}, {0.140, 0.085, 0.200, 0.900},
430 {0.140, 0.120, 0.140, -0.900}, {0.140, 0.120, 0.140, 0.000}, {0.140, 0.120, 0.140, 0.900},
431 {0.140, 0.120, 0.160, -0.900}, {0.140, 0.120, 0.160, 0.000}, {0.140, 0.120, 0.160, 0.900},
432 {0.140, 0.120, 0.180, -0.900}, {0.140, 0.120, 0.180, 0.000}, {0.140, 0.120, 0.180, 0.900},
433 {0.140, 0.120, 0.200, -0.900}, {0.140, 0.120, 0.200, 0.000}, {0.140, 0.120, 0.200, 0.900}};
435 11.4845653589999959, 11.4799892999999962, 11.4754132409999965,
436 11.4731352589999958, 11.4685591999999961, 11.4639831409999964,
437 11.4617051589999974, 11.4571290999999977, 11.4525530409999980,
438 11.4502750589999973, 11.4456989999999976, 11.4411229409999979,
439 5.7411743555397914, 5.7365982965397917, 5.7320222375397920,
440 5.7297442555397913, 5.7251681965397916, 5.7205921375397919,
441 5.7183141555397912, 5.7137380965397915, 5.7091620375397918,
442 5.7068840555397911, 5.7023079965397914, 5.6977319375397917,
443 3.9245653590000003, 3.9199893000000001, 3.9154132410000000,
444 3.9131352590000001, 3.9085592000000000, 3.9039831409999999,
445 3.9017051590000000, 3.8971290999999999, 3.8925530409999998,
446 3.8902750589999999, 3.8856989999999998, 3.8811229409999997,
447 0.5645653589999997, 0.5599892999999997, 0.5554132409999997,
448 0.5531352589999997, 0.5485591999999997, 0.5439831409999997,
449 0.5417051589999997, 0.5371290999999997, 0.5325530409999997,
450 0.5302750589999997, 0.5256989999999997, 0.5211229409999997,
451 0.7031120718027679, 0.6985360128027679, 0.6939599538027679,
452 0.6916819718027679, 0.6871059128027679, 0.6825298538027679,
453 0.6802518718027679, 0.6756758128027679, 0.6710997538027679,
454 0.6688217718027679, 0.6642457128027679, 0.6596696538027679,
455 0.7648431367777777, 0.7602670777777777, 0.7556910187777777,
456 0.7534130367777777, 0.7488369777777777, 0.7442609187777777,
457 0.7419829367777777, 0.7374068777777777, 0.7328308187777777,
458 0.7305528367777777, 0.7259767777777777, 0.7214007187777777,
459 3.1645653590000005, 3.1599893000000003, 3.1554132410000002,
460 3.1531352590000004, 3.1485592000000002, 3.1439831410000001,
461 3.1417051590000002, 3.1371291000000001, 3.1325530410000000,
462 3.1302750590000001, 3.1256990000000000, 3.1211229409999999,
463 0.3432504801072668, 0.3386744211072668, 0.3340983621072667,
464 0.3318203801072668, 0.3272443211072668, 0.3226682621072667,
465 0.3203902801072668, 0.3158142211072668, 0.3112381621072667,
466 0.3089601801072668, 0.3043841211072668, 0.2998080621072667,
467 -0.0476568632222222, -0.0522329222222222, -0.0568089812222222,
468 -0.0590869632222222, -0.0636630222222222, -0.0682390812222222,
469 -0.0705170632222222, -0.0750931222222222, -0.0796691812222222,
470 -0.0819471632222222, -0.0865232222222222, -0.0910992812222222};
471static void Test_x_ND(void);
472static void Test_x_ND(void) {
473 printf("\n## Test_x_ND\n\n");
474 for (int i=0; i<COUNT_X_ND; i++) {
476 input_x_ND[i][0],
477 input_x_ND[i][1],
478 input_x_ND[i][2],
479 input_x_ND[i][3]);
480 print_difference("XLALSimIMRPhenomNSBH_x_ND", output, expected_x_ND[i]);
482 }
483}
484
485#define COUNT_X_ND_PRIME 108
486#define TOLERANCE_X_ND_PRIME 1e-8
488 {-0.120, 0.050, 0.140, -0.900}, {-0.120, 0.050, 0.140, 0.000}, {-0.120, 0.050, 0.140, 0.900},
489 {-0.120, 0.050, 0.160, -0.900}, {-0.120, 0.050, 0.160, 0.000}, {-0.120, 0.050, 0.160, 0.900},
490 {-0.120, 0.050, 0.180, -0.900}, {-0.120, 0.050, 0.180, 0.000}, {-0.120, 0.050, 0.180, 0.900},
491 {-0.120, 0.050, 0.200, -0.900}, {-0.120, 0.050, 0.200, 0.000}, {-0.120, 0.050, 0.200, 0.900},
492 {-0.120, 0.085, 0.140, -0.900}, {-0.120, 0.085, 0.140, 0.000}, {-0.120, 0.085, 0.140, 0.900},
493 {-0.120, 0.085, 0.160, -0.900}, {-0.120, 0.085, 0.160, 0.000}, {-0.120, 0.085, 0.160, 0.900},
494 {-0.120, 0.085, 0.180, -0.900}, {-0.120, 0.085, 0.180, 0.000}, {-0.120, 0.085, 0.180, 0.900},
495 {-0.120, 0.085, 0.200, -0.900}, {-0.120, 0.085, 0.200, 0.000}, {-0.120, 0.085, 0.200, 0.900},
496 {-0.120, 0.120, 0.140, -0.900}, {-0.120, 0.120, 0.140, 0.000}, {-0.120, 0.120, 0.140, 0.900},
497 {-0.120, 0.120, 0.160, -0.900}, {-0.120, 0.120, 0.160, 0.000}, {-0.120, 0.120, 0.160, 0.900},
498 {-0.120, 0.120, 0.180, -0.900}, {-0.120, 0.120, 0.180, 0.000}, {-0.120, 0.120, 0.180, 0.900},
499 {-0.120, 0.120, 0.200, -0.900}, {-0.120, 0.120, 0.200, 0.000}, {-0.120, 0.120, 0.200, 0.900},
500 {0.010, 0.050, 0.140, -0.900}, {0.010, 0.050, 0.140, 0.000}, {0.010, 0.050, 0.140, 0.900},
501 {0.010, 0.050, 0.160, -0.900}, {0.010, 0.050, 0.160, 0.000}, {0.010, 0.050, 0.160, 0.900},
502 {0.010, 0.050, 0.180, -0.900}, {0.010, 0.050, 0.180, 0.000}, {0.010, 0.050, 0.180, 0.900},
503 {0.010, 0.050, 0.200, -0.900}, {0.010, 0.050, 0.200, 0.000}, {0.010, 0.050, 0.200, 0.900},
504 {0.010, 0.085, 0.140, -0.900}, {0.010, 0.085, 0.140, 0.000}, {0.010, 0.085, 0.140, 0.900},
505 {0.010, 0.085, 0.160, -0.900}, {0.010, 0.085, 0.160, 0.000}, {0.010, 0.085, 0.160, 0.900},
506 {0.010, 0.085, 0.180, -0.900}, {0.010, 0.085, 0.180, 0.000}, {0.010, 0.085, 0.180, 0.900},
507 {0.010, 0.085, 0.200, -0.900}, {0.010, 0.085, 0.200, 0.000}, {0.010, 0.085, 0.200, 0.900},
508 {0.010, 0.120, 0.140, -0.900}, {0.010, 0.120, 0.140, 0.000}, {0.010, 0.120, 0.140, 0.900},
509 {0.010, 0.120, 0.160, -0.900}, {0.010, 0.120, 0.160, 0.000}, {0.010, 0.120, 0.160, 0.900},
510 {0.010, 0.120, 0.180, -0.900}, {0.010, 0.120, 0.180, 0.000}, {0.010, 0.120, 0.180, 0.900},
511 {0.010, 0.120, 0.200, -0.900}, {0.010, 0.120, 0.200, 0.000}, {0.010, 0.120, 0.200, 0.900},
512 {0.140, 0.050, 0.140, -0.900}, {0.140, 0.050, 0.140, 0.000}, {0.140, 0.050, 0.140, 0.900},
513 {0.140, 0.050, 0.160, -0.900}, {0.140, 0.050, 0.160, 0.000}, {0.140, 0.050, 0.160, 0.900},
514 {0.140, 0.050, 0.180, -0.900}, {0.140, 0.050, 0.180, 0.000}, {0.140, 0.050, 0.180, 0.900},
515 {0.140, 0.050, 0.200, -0.900}, {0.140, 0.050, 0.200, 0.000}, {0.140, 0.050, 0.200, 0.900},
516 {0.140, 0.085, 0.140, -0.900}, {0.140, 0.085, 0.140, 0.000}, {0.140, 0.085, 0.140, 0.900},
517 {0.140, 0.085, 0.160, -0.900}, {0.140, 0.085, 0.160, 0.000}, {0.140, 0.085, 0.160, 0.900},
518 {0.140, 0.085, 0.180, -0.900}, {0.140, 0.085, 0.180, 0.000}, {0.140, 0.085, 0.180, 0.900},
519 {0.140, 0.085, 0.200, -0.900}, {0.140, 0.085, 0.200, 0.000}, {0.140, 0.085, 0.200, 0.900},
520 {0.140, 0.120, 0.140, -0.900}, {0.140, 0.120, 0.140, 0.000}, {0.140, 0.120, 0.140, 0.900},
521 {0.140, 0.120, 0.160, -0.900}, {0.140, 0.120, 0.160, 0.000}, {0.140, 0.120, 0.160, 0.900},
522 {0.140, 0.120, 0.180, -0.900}, {0.140, 0.120, 0.180, 0.000}, {0.140, 0.120, 0.180, 0.900},
523 {0.140, 0.120, 0.200, -0.900}, {0.140, 0.120, 0.200, 0.000}, {0.140, 0.120, 0.200, 0.900}};
525 11.4913585699999974, 11.4679606399999976, 11.4445627099999978,
526 11.4782100899999975, 11.4548121599999977, 11.4314142299999979,
527 11.4650616099999976, 11.4416636799999978, 11.4182657499999980,
528 11.4519131299999959, 11.4285151999999961, 11.4051172699999963,
529 5.7479675665397911, 5.7245696365397913, 5.7011717065397916,
530 5.7348190865397912, 5.7114211565397914, 5.6880232265397916,
531 5.7216706065397913, 5.6982726765397915, 5.6748747465397917,
532 5.7085221265397914, 5.6851241965397916, 5.6617262665397918,
533 3.9313585699999996, 3.9079606399999998, 3.8845627100000000,
534 3.9182100899999996, 3.8948121599999999, 3.8714142300000001,
535 3.9050616099999997, 3.8816636799999999, 3.8582657500000002,
536 3.8919131299999998, 3.8685152000000000, 3.8451172700000003,
537 0.5713585699999997, 0.5479606399999997, 0.5245627099999997,
538 0.5582100899999997, 0.5348121599999996, 0.5114142299999996,
539 0.5450616099999996, 0.5216636799999996, 0.4982657499999996,
540 0.5319131299999997, 0.5085151999999997, 0.4851172699999997,
541 0.7099052828027679, 0.6865073528027679, 0.6631094228027679,
542 0.6967568028027679, 0.6733588728027678, 0.6499609428027678,
543 0.6836083228027678, 0.6602103928027678, 0.6368124628027678,
544 0.6704598428027679, 0.6470619128027679, 0.6236639828027679,
545 0.7716363477777777, 0.7482384177777777, 0.7248404877777777,
546 0.7584878677777777, 0.7350899377777776, 0.7116920077777776,
547 0.7453393877777776, 0.7219414577777776, 0.6985435277777776,
548 0.7321909077777777, 0.7087929777777777, 0.6853950477777777,
549 3.1713585699999998, 3.1479606400000000, 3.1245627100000002,
550 3.1582100899999999, 3.1348121600000001, 3.1114142300000003,
551 3.1450616100000000, 3.1216636800000002, 3.0982657500000004,
552 3.1319131300000000, 3.1085152000000003, 3.0851172700000005,
553 0.3500436911072667, 0.3266457611072667, 0.3032478311072667,
554 0.3368952111072667, 0.3134972811072667, 0.2900993511072667,
555 0.3237467311072668, 0.3003488011072667, 0.2769508711072667,
556 0.3105982511072667, 0.2872003211072667, 0.2638023911072667,
557 -0.0408636522222222, -0.0642615822222222, -0.0876595122222222,
558 -0.0540121322222222, -0.0774100622222222, -0.1008079922222222,
559 -0.0671606122222222, -0.0905585422222222, -0.1139564722222222,
560 -0.0803090922222222, -0.1037070222222222, -0.1271049522222222};
561static void Test_x_ND_prime(void);
562static void Test_x_ND_prime(void) {
563 printf("\n## Test_x_ND_prime\n\n");
564 for (int i=0; i<COUNT_X_ND_PRIME; i++) {
569 input_x_ND_prime[i][3]);
570 print_difference("XLALSimIMRPhenomNSBH_x_ND_prime", output, expected_x_ND_prime[i]);
572 }
573}
574
575#define COUNT_DELTA2_PRIME 9
576#define TOLERANCE_DELTA2_PRIME 1e-8
578 {-0.120, 0.050}, {-0.120, 0.085}, {-0.120, 0.120}, {0.010, 0.050}, {0.010, 0.085}, {0.010, 0.120},
579 {0.140, 0.050}, {0.140, 0.085}, {0.140, 0.120}};
581 0, 0, 0, 3.246794811282427e-09, 4.64277487690623e-10, 2.064565954817965e-10,
582 0.81248, 0.8124797075947712, 0.7884780818898274};
583static void Test_delta2_prime(void);
584static void Test_delta2_prime(void) {
585 printf("\n## Test_delta2_prime\n\n");
586 for (int i=0; i<COUNT_DELTA2_PRIME; i++) {
590 print_difference("XLALSimIMRPhenomNSBH_delta2_prime", output, expected_delta2_prime[i]);
592 }
593}
594
595#define COUNT_BARYONIC_MASS_FROM_C 9
596#define TOLERANCE_BARYONIC_MASS_FROM_C 1e-8
598 {0.1400, 1.3500}, {0.1400, 1.6750}, {0.1400, 2.0000}, {0.1700, 1.3500}, {0.1700, 1.6750},
599 {0.1700, 2.0000}, {0.2000, 1.3500}, {0.2000, 1.6750}, {0.2000, 2.0000}};
601 1.4705869140000001, 1.8246170970000000, 2.1786472799999999,
602 1.4973626385000001, 1.8578388292500001, 2.2183150199999999,
603 1.5244686000000001, 1.8914703000000002, 2.2584720000000003};
604static void Test_baryonic_mass_from_C(void);
605static void Test_baryonic_mass_from_C(void) {
606 printf("\n## Test_baryonic_mass_from_C\n\n");
607 for (int i=0; i<COUNT_BARYONIC_MASS_FROM_C; i++) {
611 print_difference("XLALSimIMRPhenomNSBH_baryonic_mass_from_C", output, expected_baryonic_mass_from_C[i]);
613 }
614}
615
616#define COUNT_OMEGA_TILDE 7
617#define TOLERANCE_OMEGA_TILDE 1e-8
619 {-0.90}, {-0.60}, {-0.30}, {-0.00}, {0.30}, {0.60}, {0.90}};
621 0.2972594561409131 + I*0.08831455648737546,
622 0.3171300978041187 + I*0.08877332447220707,
623 0.34160908369694554 + I*0.08909934918507662,
624 0.37365201926604874 + I*0.0890130676852164,
625 0.4193077676007321 + I*0.0878758597418964,
626 0.4940799241800059 + I*0.08379761075049783,
627 0.6716700435394974 + I*0.06485409916444959};
628static void Test_omega_tilde(void);
629static void Test_omega_tilde(void) {
630 printf("\n## Test_omega_tilde\n\n");
631 for (int i=0; i<COUNT_OMEGA_TILDE; i++) {
633
634 // Assert real part is approximately equal
635 print_difference("XLALSimIMRPhenomNSBH_omega_tilde (real)", creal(output), creal(expected_omega_tilde[i]));
637
638 // Assert imaginary part is approximately equal
639 print_difference("XLALSimIMRPhenomNSBH_omega_tilde (imag)", cimag(output), cimag(expected_omega_tilde[i]));
641 }
642}
643
644int main(int argc, char *argv[]) {
645 MYUNUSED(argc);
646 MYUNUSED(argv);
647
648 Test_x_D();
654 Test_x_ND();
657
659
661
662 return 0;
663}
const char * name
static void Test_epsilon_tide_ND(void)
bool approximatelyEqual(REAL8 a, REAL8 b, REAL8 epsilon)
#define TOLERANCE_SIGMA_TIDE_ND
int main(int argc, char *argv[])
#define COUNT_DELTA2_PRIME
double input_baryonic_mass_from_C[COUNT_BARYONIC_MASS_FROM_C][2]
#define TOLERANCE_EPSILON_INS_WITH_TORUS_MASS
#define COUNT_X_ND_PRIME
double expected_epsilon_tide_ND[COUNT_EPSILON_TIDE_ND]
static void Test_sigma_tide_ND(void)
#define TOLERANCE_EPSILON_TIDE_ND
double expected_sigma_tide_with_torus_mass[COUNT_SIGMA_TIDE_WITH_TORUS_MASS]
double input_x_D_prime[COUNT_X_D_PRIME][4]
static void Test_sigma_tide_with_torus_mass(void)
double input_sigma_tide_ND[COUNT_SIGMA_TIDE_ND][1]
double input_x_ND[COUNT_X_ND][4]
#define MYUNUSED(expr)
#define COUNT_SIGMA_TIDE_WITH_TORUS_MASS
#define TOLERANCE_X_ND
#define COUNT_EPSILON_INS_WITH_TORUS_MASS
#define COUNT_EPSILON_TIDE_ND
#define TOLERANCE_X_D
#define TOLERANCE_X_D_PRIME
static void Test_x_ND_prime(void)
static void Test_x_D_prime(void)
static void Test_epsilon_ins_with_torus_mass(void)
double input_x_D[COUNT_X_D][4]
void print_difference(const char *name, REAL8 u, REAL8 u_expected)
double expected_baryonic_mass_from_C[COUNT_BARYONIC_MASS_FROM_C]
double input_sigma_tide_with_torus_mass[COUNT_SIGMA_TIDE_WITH_TORUS_MASS][4]
double input_omega_tilde[COUNT_OMEGA_TILDE][1]
static void Test_delta2_prime(void)
double input_x_ND_prime[COUNT_X_ND_PRIME][4]
double expected_epsilon_ins_with_torus_mass[COUNT_EPSILON_INS_WITH_TORUS_MASS]
double expected_delta2_prime[COUNT_DELTA2_PRIME]
static void Test_baryonic_mass_from_C(void)
#define TOLERANCE_DELTA2_PRIME
#define COUNT_X_ND
double input_epsilon_tide_ND[COUNT_EPSILON_TIDE_ND][1]
double input_delta2_prime[COUNT_DELTA2_PRIME][2]
double expected_x_ND[COUNT_X_ND]
#define TOLERANCE_OMEGA_TILDE
#define COUNT_BARYONIC_MASS_FROM_C
double expected_sigma_tide_ND[COUNT_SIGMA_TIDE_ND]
double expected_x_D_prime[COUNT_X_D_PRIME]
COMPLEX16 expected_omega_tilde[COUNT_OMEGA_TILDE]
#define TOLERANCE_SIGMA_TIDE_WITH_TORUS_MASS
static void Test_omega_tilde(void)
#define TOLERANCE_X_ND_PRIME
double input_epsilon_ins_with_torus_mass[COUNT_EPSILON_INS_WITH_TORUS_MASS][4]
#define COUNT_X_D_PRIME
#define COUNT_X_D
#define TOLERANCE_BARYONIC_MASS_FROM_C
static void Test_x_ND(void)
#define COUNT_OMEGA_TILDE
double expected_x_D[COUNT_X_D]
double expected_x_ND_prime[COUNT_X_ND_PRIME]
static void Test_x_D(void)
#define COUNT_SIGMA_TIDE_ND
double i
Definition: bh_ringdown.c:118
const double u
double complex COMPLEX16
double REAL8
double XLALSimIMRPhenomNSBH_sigma_tide_with_torus_mass(const REAL8 Mtorus, const REAL8 C, const REAL8 q, const REAL8 chi)
Correction to ringdown Lorentzian width for disruptive mergers.
double XLALSimIMRPhenomNSBH_sigma_tide_ND(const REAL8 x_ND_prime)
Correction to ringdown Lorentzian width for nondisruptive mergers.
double XLALSimIMRPhenomNSBH_x_D(const REAL8 Mtorus, const REAL8 C, const REAL8 q, const REAL8 chi)
Convenience function for expression appearing in disruptive merger.
double XLALSimIMRPhenomNSBH_x_ND_prime(const REAL8 f_tide, const REAL8 f_RD_tilde, const REAL8 C, const REAL8 chi)
Convinience function for expression appearing in disruptive merger.
double XLALSimIMRPhenomNSBH_baryonic_mass_from_C(const REAL8 C, const REAL8 Mg)
NS baryonic mass as a function of NS gravitational mass.
double XLALSimIMRPhenomNSBH_x_ND(const REAL8 f_tide, const REAL8 f_RD_tilde, const REAL8 C, const REAL8 chi)
Convinience function for expression appearing in disruptive merger.
COMPLEX16 XLALSimIMRPhenomNSBH_omega_tilde(const REAL8 a)
220 quasi-normal mode dimensionless frequency
double XLALSimIMRPhenomNSBH_epsilon_ins_with_torus_mass(const REAL8 Mtorus, const REAL8 C, const REAL8 q, const REAL8 chi)
Correction to the inspiral transition frequency with spin contributions.
double XLALSimIMRPhenomNSBH_epsilon_tide_ND(const REAL8 x_ND)
PhenomC parameter delta_1 NSBH correction factor.
double XLALSimIMRPhenomNSBH_delta2_prime(const REAL8 f_tide, const REAL8 f_RD_tilde)
Fitted coefficient for PhenomC Lorentzian.
double XLALSimIMRPhenomNSBH_x_D_prime(const REAL8 Mtorus, const REAL8 C, const REAL8 q, const REAL8 chi)
Convinience function for expression appearing in disruptive merger.
static const INT4 a
#define XLAL_CHECK_EXIT(assertion)
char output[FILENAME_MAX]
Definition: unicorn.c:26