29#include <lal/LALSimInspiralWaveformCache.h>
30#include <lal/FrequencySeries.h>
32#include <lal/LALConstants.h>
35 clock_t s1, e1, s2, e2;
38 REAL8 plusdiff, crossdiff, temp;
48 REAL8 s1x = 0., s1y = 0., s1z = 0., s2x = 0., s2y = 0., s2z = 0.;
50 REAL8 dt = 1./16384., df = 1./16.;
51 int ret, phaseO = 7, ampO = 0;
54 REAL8 phiref1 = 0., phiref2 = 0.3;
55 REAL8 inc1 = 0.2, inc2 = 1.3;
71 m1, m2, s1x, s1y, s1z, s2x, s2y, s2z,
73 phiref1, 0., 0., 0.,
dt,
f_min, f_ref,
76 diff1 = (double) (e1 - s1) / CLOCKS_PER_SEC;
83 dt, m1, m2, s1x, s1y, s1z, s2x, s2y, s2z,
f_min, f_ref, dist1, inc1,
84 LALpars, approx, cache);
86 diff2 = (double) (e2 - s2) / CLOCKS_PER_SEC;
91 plusdiff = crossdiff = 0.;
95 if(temp > plusdiff) plusdiff = temp;
97 if(temp > crossdiff) crossdiff = temp;
99 printf(
"Comparing waveforms from ChooseTDWaveform and ChooseTDWaveformFromCache\n");
100 printf(
"when both must be generated from scratch...\n");
101 printf(
"ChooseTDWaveform took %f seconds\n", diff1);
102 printf(
"ChooseTDWaveformFromCache took %f seconds\n", diff2);
103 printf(
"Largest difference in plus polarization is: %.16g\n", plusdiff);
104 printf(
"Largest difference in cross polarization is: %.16g\n\n", crossdiff);
110 hplus = hcross = hplusC = hcrossC = NULL;
116 s1x, s1y, s1z, s2x, s2y, s2z,
117 dist2, inc2, phiref2, 0., 0., 0.,
121 diff1 = (double) (e1 - s1) / CLOCKS_PER_SEC;
128 dt, m1, m2, s1x, s1y, s1z, s2x, s2y, s2z,
f_min, f_ref, dist2, inc2,
129 LALpars, approx, cache);
131 diff2 = (double) (e2 - s2) / CLOCKS_PER_SEC;
136 plusdiff = crossdiff = 0.;
140 if(temp > plusdiff) plusdiff = temp;
142 if(temp > crossdiff) crossdiff = temp;
144 printf(
"Comparing waveforms from ChooseTDWaveform and ChooseTDWaveformFromCache\n");
145 printf(
"when the latter is cached and transformed...\n");
146 printf(
"ChooseTDWaveform took %f seconds\n", diff1);
147 printf(
"ChooseTDWaveformFromCache took %f seconds\n", diff2);
148 printf(
"Largest difference in plus polarization is: %.16g\n", plusdiff);
149 printf(
"Largest difference in cross polarization is: %.16g\n\n", crossdiff);
155 hplus = hcross = hplusC = hcrossC = NULL;
165 m1, m2, s1x, s1y, s1z, s2x, s2y, s2z,
166 dist1, inc1, phiref1, 0., 0., 0.,
170 diff1 = (double) (e1 - s1) / CLOCKS_PER_SEC;
177 phiref1, df, m1, m2, s1x, s1y, s1z, s2x, s2y, s2z,
f_min,
f_max,
178 f_ref, dist1, inc1, LALpars, approxFD, cache, NULL);
180 diff2 = (double) (e2 - s2) / CLOCKS_PER_SEC;
185 plusdiff = crossdiff = 0.;
189 if(temp > plusdiff) plusdiff = temp;
191 if(temp > crossdiff) crossdiff = temp;
193 printf(
"Comparing waveforms from ChooseFDWaveform and ChooseFDWaveformFromCache\n");
194 printf(
"when both must be generated from scratch...\n");
195 printf(
"ChooseFDWaveform took %f seconds\n", diff1);
196 printf(
"ChooseFDWaveformFromCache took %f seconds\n", diff2);
197 printf(
"Largest difference in plus polarization is: %.16g\n", plusdiff);
198 printf(
"Largest difference in cross polarization is: %.16g\n\n", crossdiff);
204 hptilde = hctilde = hptildeC = hctildeC = NULL;
209 m1, m2, s1x, s1y, s1z, s2x, s2y, s2z,
215 diff1 = (double) (e1 - s1) / CLOCKS_PER_SEC;
222 phiref2, df, m1, m2, s1x, s1y, s1z, s2x, s2y, s2z,
f_min,
f_max,
223 f_ref, dist2, inc2, LALpars, approxFD, cache, NULL);
226 diff2 = (double) (e2 - s2) / CLOCKS_PER_SEC;
231 plusdiff = crossdiff = 0.;
235 if(temp > plusdiff) plusdiff = temp;
237 if(temp > crossdiff) crossdiff = temp;
239 printf(
"Comparing waveforms from ChooseFDWaveform and ChooseFDWaveformFromCache\n");
240 printf(
"when the latter is cached and transformed...\n");
241 printf(
"ChooseFDWaveform took %f seconds\n", diff1);
242 printf(
"ChooseFDWaveformFromCache took %f seconds\n", diff2);
243 printf(
"Largest difference in plus polarization is: %.16g\n", plusdiff);
244 printf(
"Largest difference in cross polarization is: %.16g\n\n", crossdiff);
250 hptilde = hctilde = hptildeC = hctildeC = NULL;
void XLALDestroyDict(LALDict *dict)
LALDict * XLALCreateDict(void)
void LALCheckMemoryLeaks(void)
void XLALDestroyCOMPLEX16FrequencySeries(COMPLEX16FrequencySeries *series)
int XLALSimInspiralChooseFDWaveform(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, const REAL8 m1, const REAL8 m2, const REAL8 S1x, const REAL8 S1y, const REAL8 S1z, const REAL8 S2x, const REAL8 S2y, const REAL8 S2z, const REAL8 distance, const REAL8 inclination, const REAL8 phiRef, const REAL8 longAscNodes, const REAL8 eccentricity, const REAL8 UNUSED meanPerAno, const REAL8 deltaF, const REAL8 f_min, const REAL8 f_max, REAL8 f_ref, LALDict *params, const Approximant approximant)
Chooses between different approximants when requesting a waveform to be generated For spinning wavefo...
int XLALSimInspiralChooseTDWaveform(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const REAL8 m1, const REAL8 m2, const REAL8 S1x, const REAL8 S1y, const REAL8 S1z, const REAL8 S2x, const REAL8 S2y, const REAL8 S2z, const REAL8 distance, const REAL8 inclination, const REAL8 phiRef, const REAL8 longAscNodes, const REAL8 eccentricity, const REAL8 UNUSED meanPerAno, const REAL8 deltaT, const REAL8 f_min, REAL8 f_ref, LALDict *params, const Approximant approximant)
Chooses between different approximants when requesting a waveform to be generated For spinning wavefo...
Approximant
Enum that specifies the PN approximant to be used in computing the waveform.
@ SEOBNRv1
Spin-aligned EOBNR model.
@ TaylorF2
The standard stationary phase approximation; Outputs a frequency-domain wave.
void XLALDestroyREAL8TimeSeries(REAL8TimeSeries *series)