24 #ifndef _LALSIM_TEOB_RESUMS_H
25 #define _LALSIM_TEOB_RESUMS_H
27 #if defined(__cplusplus)
50 #include <gsl/gsl_math.h>
51 #include <gsl/gsl_sf.h>
52 #include <gsl/gsl_complex.h>
53 #include <gsl/gsl_complex_math.h>
54 #include <gsl/gsl_roots.h>
55 #include <gsl/gsl_errno.h>
56 #include <gsl/gsl_complex.h>
57 #include <gsl/gsl_spline.h>
58 #include <gsl/gsl_matrix.h>
59 #include <gsl/gsl_odeiv2.h>
62 #include <lal/LALString.h>
63 #include <lal/LALDatatypes.h>
64 #include <lal/Units.h>
65 #include <lal/BandPassTimeSeries.h>
66 #include <lal/SphericalHarmonics.h>
67 #include <lal/LALSimInspiral.h>
68 #include <lal/LALConstants.h>
69 #include <lal/LALStdlib.h>
70 #include <lal/Sequence.h>
71 #include <lal/TimeSeries.h>
72 #include <lal/FrequencySeries.h>
73 #include <lal/TimeFreqFFT.h>
79 #ifndef POSTPOSTCIRCULAR
80 #define POSTPOSTCIRCULAR 1
83 #ifndef RC_EXCLUDESPINSPINTIDES
84 #define RC_EXCLUDESPINSPINTIDES 0
87 #ifndef USEBTIDALPOTENTIAL
88 #define USEBTIDALPOTENTIAL 1
91 #ifndef ODESTOPAFTERNDT
92 #define ODESTOPAFTERNDT (4)
95 #define MAX_ITER (200)
96 #define TOLERANCE (1e-14)
99 #define POSTADIABATIC_RMIN_BNS (14)
100 #define POSTADIABATIC_RMIN_BBH (14)
101 #define POSTADIABATIC_DR (0.1)
102 #define POSTADIABATIC_NSTEP_MIN (10)
103 #define POSTADIABATIC_N (8)
104 #define TEOB_R0_THRESHOLD (14)
106 #define TEOB_LAMBDA_TOL (1.0)
108 #define TEOB_GE_TIDES_DEFAULT LAL_SIM_INSPIRAL_GETIDES_GSF23
109 #define TEOB_GM_TIDES_DEFAULT LAL_SIM_INSPIRAL_GMTIDES_PN
111 #define TEOB_MODES_BNS_DEFAULT TEOB_MODES_22
112 #define TEOB_MODES_BBH_DEFAULT TEOB_MODES_22
113 #define TEOB_MODES_NSBH_DEFAULT TEOB_MODES_22
114 #define TEOB_MODES_BHNS_DEFAULT TEOB_MODES_22
116 #define RINGDOWN_EXTEND_ARRAY (1500)
119 #define INTERP_UNIFORM_GRID_DEFAULT INTERP_UNIFORM_GRID_HLM
126 #define TEOB_STRLEN (128)
127 #define TEOBResumS_Info "TEOBResumS code (C) 2017\n"
128 #define TEOBResumS_Usage(x) {printf("%sUSAGE:\t%s <parfile>\n", TEOBResumS_Info, x);}
129 #define SIGN(x,y) ((y) >= 0.0 ? fabs(x) : -fabs(x))
130 #define typeof __typeof__
132 ({ typeof (a) _a = (a); \
133 typeof (b) _b = (b); \
134 _a > _b ? _a : _b; })
136 ({ typeof (a) _a = (a); \
137 typeof (b) _b = (b); \
138 _a < _b ? _a : _b; })
139 #define MAX3(a,b,c) (((a) > (b)) ? MAX(a,c) : MAX(b,c))
140 #define MIN3(a,b,c) (((a) < (b)) ? MIN(a,c) : MIN(b,c))
141 #define SQ(a) ((a)*(a))
142 #define DEQUAL(a,b,eps) (fabs((a)-(b))<(eps))
143 #define DUNEQUAL(a,b,eps) (fabs((a)-(b))>(eps))
144 #define STREQUAL(s,t) ((strcmp((s),(t))==0))
145 #define SWAPTRS(a,b) \
156 #define Sqrt3 (1.73205080756887729352744634150587237)
161 #define Log2 (0.693147180559945309417232)
162 #define Log3 (1.09861228866810969139525)
163 #define Log4 (1.38629436111989061883446)
164 #define Log5 (1.60943791243410037460076)
165 #define Log6 (1.79175946922805500081248)
166 #define Log7 (1.94591014905531330510535)
216 #define PMTERMS_eps (1)
218 #define OUTPUT_LM_LEN (35)
280 static const char*
const LALTEOBResumSRootErrors[] = {
"none",
"root is not bracketed.",
"root finder did not converged.",
"root finder failed."};
281 #define ROOTFINDER(i, x) {if ( ((i) = (x)) && ((i)>ROOT_ERRORS_NO) ) { exit(LALTEOBResumSRootErrors[(i)]); }}
289 typedef struct tagLALTEOBResumSWaveformModeSingleTime
299 typedef void (*
EOBWavFlmSFunc)(
REAL8,
REAL8,
REAL8,
REAL8,
REAL8,
REAL8,
REAL8,
REAL8,
REAL8,
REAL8,
REAL8 [
KMAX][6], int,
REAL8 *,
REAL8 *);
300 typedef void (*
EOBDynSGetRCFunc)(
REAL8,
REAL8,
REAL8,
REAL8,
REAL8,
REAL8,
REAL8,
REAL8,
REAL8,
REAL8,
REAL8,
INT4,
REAL8*,
REAL8*,
REAL8*);
303 typedef struct tagNQCcoefs
318 typedef struct tagNQCdata
325 typedef struct tagLALTEOBResumSDynamics
332 REAL8 H, Heff, Heff_orb,
E, jhat, r_omega, psi, v_phi;
355 REAL8 chi1, chi2, S1, S2, S, Sstar,
a1,
a2, aK2, C_Q1, C_Q2, C_Oct1, C_Oct2, C_Hex1, C_Hex2, cN3LO;
357 REAL8 kapA2,kapA3,kapA4, kapB2,kapB3,kapB4, kapT2,kapT3,kapT4, khatA2,khatB2;
442 LALValue **pModeArray,
454 const REAL8 lambda1oct,
455 const REAL8 lambda2oct,
456 const REAL8 lambda1hex,
457 const REAL8 lambda2hex,
486 void QNMHybridFitCab(
REAL8 nu,
REAL8 X1,
REAL8 X2,
REAL8 chi1,
REAL8 chi2,
REAL8 aK,
REAL8 Mbh,
REAL8 abh,
REAL8 *a1,
REAL8 *
a2,
REAL8 *a3,
REAL8 *
a4,
REAL8 *
b1,
REAL8 *
b2,
REAL8 *b3,
REAL8 *b4,
REAL8 *sigmar,
REAL8 *sigmai,
INT4 usespins);
494 void eob_ham_s(
REAL8 nu,
REAL8 r,
REAL8 rc,
REAL8 drc_dr,
REAL8 pphi,
REAL8 prstar,
REAL8 S,
REAL8 Sstar,
REAL8 chi1,
REAL8 chi2,
REAL8 X1,
REAL8 X2,
REAL8 aK2,
REAL8 c3,
REAL8 A,
REAL8 dA,
REAL8 *
H,
REAL8 *Heff,
REAL8 *Heff_orb,
REAL8 *dHeff_dr,
REAL8 *dHeff_dprstar,
REAL8 *dHeff_dpphi,
REAL8 *d2Heff_dprstar20);
495 void eob_dyn_s_GS(
REAL8 r,
REAL8 rc,
REAL8 drc_dr,
REAL8 aK2,
REAL8 prstar,
REAL8 pph,
REAL8 nu,
REAL8 chi1,
REAL8 chi2,
REAL8 X1,
REAL8 X2,
REAL8 cN3LO,
REAL8 *ggm);
498 void eob_dyn_s_get_rc_LO(
REAL8 r,
REAL8 nu,
REAL8 at1,
REAL8 at2,
REAL8 aK2,
REAL8 C_Q1,
REAL8 C_Q2,
REAL8 UNUSED C_Oct1,
REAL8 UNUSED C_Oct2,
REAL8 UNUSED C_Hex1,
REAL8 UNUSED C_Hex2,
INT4 usetidal,
REAL8 *rc,
REAL8 *drc_dr,
REAL8 *d2rc_dr2);
499 void eob_dyn_s_get_rc_NLO(
REAL8 r,
REAL8 nu,
REAL8 at1,
REAL8 at2,
REAL8 aK2,
REAL8 C_Q1,
REAL8 C_Q2,
REAL8 UNUSED C_Oct1,
REAL8 UNUSED C_Oct2,
REAL8 UNUSED C_Hex1,
REAL8 UNUSED C_Hex2,
INT4 usetidal,
REAL8 *rc,
REAL8 *drc_dr,
REAL8 *d2rc_dr2);
500 void eob_dyn_s_get_rc_NNLO(
REAL8 r,
REAL8 nu,
REAL8 at1,
REAL8 at2,
REAL8 aK2,
REAL8 C_Q1,
REAL8 C_Q2,
REAL8 UNUSED C_Oct1,
REAL8 UNUSED C_Oct2,
REAL8 UNUSED C_Hex1,
REAL8 UNUSED C_Hex2,
INT4 usetidal,
REAL8 *rc,
REAL8 *drc_dr,
REAL8 *d2rc_dr2);
501 void eob_dyn_s_get_rc_NNLO_S4(
REAL8 r,
REAL8 nu,
REAL8 at1,
REAL8 at2,
REAL8 aK2,
REAL8 C_Q1,
REAL8 C_Q2,
REAL8 C_Oct1,
REAL8 C_Oct2,
REAL8 C_Hex1,
REAL8 C_Hex2,
INT4 usetidal,
REAL8 *rc,
REAL8 *drc_dr,
REAL8 *d2rc_dr2);
502 void eob_dyn_s_get_rc_NOSPIN(
REAL8 r,
REAL8 UNUSED nu,
REAL8 UNUSED at1,
REAL8 UNUSED at2,
REAL8 UNUSED aK2,
REAL8 UNUSED C_Q1,
REAL8 UNUSED C_Q2,
REAL8 UNUSED C_Oct1,
REAL8 UNUSED C_Oct2,
REAL8 UNUSED C_Hex1,
REAL8 UNUSED C_Hex2,
INT4 UNUSED usetidal,
REAL8 UNUSED *rc,
REAL8 UNUSED *drc_dr,
REAL8 UNUSED *d2rc_dr2);
503 void eob_dyn_s_get_rc_NOTIDES(
REAL8 r,
REAL8 nu,
REAL8 at1,
REAL8 at2,
REAL8 aK2,
REAL8 C_Q1,
REAL8 C_Q2,
REAL8 UNUSED C_Oct1,
REAL8 UNUSED C_Oct2,
REAL8 UNUSED C_Hex1,
REAL8 UNUSED C_Hex2,
INT4 usetidal,
REAL8 *rc,
REAL8 *drc_dr,
REAL8 *d2rc_dr2);
515 REAL8 eob_dyn_bisecHeff0_s(
REAL8 nu,
REAL8 chi1,
REAL8 chi2,
REAL8 X1,
REAL8 X2,
REAL8 c3,
REAL8 pph,
REAL8 rorb,
REAL8 A,
REAL8 dA,
REAL8 rc,
REAL8 drc_dr,
REAL8 ak2,
REAL8 S,
REAL8 Ss);
544 void eob_wav_flm_s_SSLO(
REAL8 x,
REAL8 nu,
REAL8 X1,
REAL8 X2,
REAL8 chi1,
REAL8 chi2,
REAL8 a1,
REAL8 a2,
REAL8 C_Q1,
REAL8 C_Q2,
REAL8 clm[
KMAX][6],
int usetidal,
REAL8 *rholm,
REAL8 *flm);
545 void eob_wav_flm_s_SSNLO(
REAL8 x,
REAL8 nu,
REAL8 X1,
REAL8 X2,
REAL8 chi1,
REAL8 chi2,
REAL8 a1,
REAL8 a2,
REAL8 C_Q1,
REAL8 C_Q2,
REAL8 clm[
KMAX][6],
int usetidal,
REAL8 *rholm,
REAL8 *flm);
550 void eob_wav_ringdown_template(
REAL8 x,
REAL8 a1,
REAL8 a2,
REAL8 a3,
REAL8 a4,
REAL8 b1,
REAL8 b2,
REAL8 b3,
REAL8 b4,
REAL8 sigmar,
REAL8 sigmai,
REAL8 *psi);
577 #elif defined(__cplusplus)
void baryc_weights(INT4 n, REAL8 *x, REAL8 *omega)
void eob_wav_hlm(LALTEOBResumSDynamics *dyn, LALTEOBResumSWaveformModeSingleTime *hlm_t)
void eob_dyn_s_GS(REAL8 r, REAL8 rc, REAL8 drc_dr, REAL8 aK2, REAL8 prstar, REAL8 pph, REAL8 nu, REAL8 chi1, REAL8 chi2, REAL8 X1, REAL8 X2, REAL8 cN3LO, REAL8 *ggm)
void eob_ham(REAL8 nu, REAL8 r, REAL8 pph, REAL8 prstar, REAL8 A, REAL8 dA, REAL8 *H, REAL8 *Heff, REAL8 *dHeff_dr, REAL8 *dHeff_dprstar, REAL8 *dHeff_dpphi)
void eob_dyn_s_get_rc_NOSPIN(REAL8 r, REAL8 UNUSED nu, REAL8 UNUSED at1, REAL8 UNUSED at2, REAL8 UNUSED aK2, REAL8 UNUSED C_Q1, REAL8 UNUSED C_Q2, REAL8 UNUSED C_Oct1, REAL8 UNUSED C_Oct2, REAL8 UNUSED C_Hex1, REAL8 UNUSED C_Hex2, INT4 UNUSED usetidal, REAL8 UNUSED *rc, REAL8 UNUSED *drc_dr, REAL8 UNUSED *d2rc_dr2)
void eob_dyn_s_get_rc_NNLO(REAL8 r, REAL8 nu, REAL8 at1, REAL8 at2, REAL8 aK2, REAL8 C_Q1, REAL8 C_Q2, REAL8 UNUSED C_Oct1, REAL8 UNUSED C_Oct2, REAL8 UNUSED C_Hex1, REAL8 UNUSED C_Hex2, INT4 usetidal, REAL8 *rc, REAL8 *drc_dr, REAL8 *d2rc_dr2)
void eob_nqc_setcoefs(LALTEOBResumSDynamics *dyn)
REAL8 cumint3(REAL8 *f, REAL8 *x, const INT4 n, REAL8 *sum)
void XLALTEOBDynamicsPush(LALTEOBResumSDynamics **dyn, INT4 size)
void Waveform_lm_t_free(LALTEOBResumSWaveformModeSingleTime *wav)
static const char *const LALTEOBResumSODETimeStep[]
void eob_dyn_s_get_rc_LO(REAL8 r, REAL8 nu, REAL8 at1, REAL8 at2, REAL8 aK2, REAL8 C_Q1, REAL8 C_Q2, REAL8 UNUSED C_Oct1, REAL8 UNUSED C_Oct2, REAL8 UNUSED C_Hex1, REAL8 UNUSED C_Hex2, INT4 usetidal, REAL8 *rc, REAL8 *drc_dr, REAL8 *d2rc_dr2)
void unwrap(REAL8 *p, const INT4 size)
void XLALFreeTEOBDynamics(LALTEOBResumSDynamics *dyn)
void eob_dyn_s_get_rc_NLO(REAL8 r, REAL8 nu, REAL8 at1, REAL8 at2, REAL8 aK2, REAL8 C_Q1, REAL8 C_Q2, REAL8 UNUSED C_Oct1, REAL8 UNUSED C_Oct2, REAL8 UNUSED C_Hex1, REAL8 UNUSED C_Hex2, INT4 usetidal, REAL8 *rc, REAL8 *drc_dr, REAL8 *d2rc_dr2)
REAL8 eob_flx_Flux_s(REAL8 x, REAL8 Omega, REAL8 r_omega, REAL8 E, REAL8 Heff, REAL8 jhat, REAL8 r, REAL8 pr_star, REAL8 ddotr, LALTEOBResumSDynamics *dyn)
static const char *const LALTEOBResumSRootErrors[]
void eob_wav_flm_s_SSNLO(REAL8 x, REAL8 nu, REAL8 X1, REAL8 X2, REAL8 chi1, REAL8 chi2, REAL8 a1, REAL8 a2, REAL8 C_Q1, REAL8 C_Q2, REAL8 clm[KMAX][6], int usetidal, REAL8 *rholm, REAL8 *flm)
void eob_wav_flm_s_SSLO(REAL8 x, REAL8 nu, REAL8 X1, REAL8 X2, REAL8 chi1, REAL8 chi2, REAL8 a1, REAL8 a2, REAL8 C_Q1, REAL8 C_Q2, REAL8 clm[KMAX][6], int usetidal, REAL8 *rholm, REAL8 *flm)
REAL8 Yagi13_fit_barsigmalambda(REAL8 barlam2)
@ INTERP_UNIFORM_GRID_OFF
@ INTERP_UNIFORM_GRID_HPC
@ INTERP_UNIFORM_GRID_HLM
@ INTERP_UNIFORM_GRID_NOPT
void eob_metric(REAL8 r, LALTEOBResumSDynamics *dyn, REAL8 *A, REAL8 *B, REAL8 *dA, REAL8 *d2A, REAL8 *dB)
REAL8 eob_flx_HorizonFlux_s(REAL8 x, REAL8 Heff, REAL8 jhat, REAL8 nu, REAL8 X1, REAL8 X2, REAL8 chi1, REAL8 chi2)
REAL8 time_units_factor(REAL8 M)
void XLALSimIMRComputePolarisationsPolar(REAL8Sequence *hplus_out, REAL8Sequence *hcross_out, SphHarmPolarTimeSeries *hlm, LALValue *modeArray, REAL8 amplitude_prefactor, REAL8 theta, REAL8 phi)
REAL8 eob_dyn_bisecOmegaorb0(LALTEOBResumSDynamics *dyn, REAL8 omg_orb0, REAL8 r0_kepl)
void eob_dyn_ic_s(REAL8 r0, LALTEOBResumSDynamics *dyn, REAL8 y_init[])
void eob_wav_flm(REAL8 x, REAL8 nu, REAL8 clm[KMAX][6], REAL8 *rholm, REAL8 *flm)
void XLALTEOBDynamicsInterp(LALTEOBResumSDynamics *dyn, const INT4 size, const REAL8 t0, const REAL8 dt, const char *name)
void eob_dyn_s_get_rc_NNLO_S4(REAL8 r, REAL8 nu, REAL8 at1, REAL8 at2, REAL8 aK2, REAL8 C_Q1, REAL8 C_Q2, REAL8 C_Oct1, REAL8 C_Oct2, REAL8 C_Hex1, REAL8 C_Hex2, INT4 usetidal, REAL8 *rc, REAL8 *drc_dr, REAL8 *d2rc_dr2)
void XLALSimIMRComputePolarisations(REAL8Sequence *hplus_out, REAL8Sequence *hcross_out, SphHarmTimeSeries *hlm, LALValue *modeArray, REAL8 amplitude_prefactor, REAL8 theta, REAL8 phi)
const INT4 TEOB_MINDEX[KMAX]
int eob_dyn_Npostadiabatic(LALTEOBResumSDynamics *dyn, REAL8 r0)
void HealyBBHFitRemnant(REAL8 chi1, REAL8 chi2, REAL8 q, REAL8 *mass, REAL8 *spin)
REAL8 JimenezFortezaRemnantSpin(REAL8 nu, REAL8 X1, REAL8 X2, REAL8 chi1, REAL8 chi2)
void eob_wav_deltalm(REAL8 Hreal, REAL8 Omega, REAL8 nu, REAL8 *dlm)
int eob_dyn_adiabLR(LALTEOBResumSDynamics *dyn, REAL8 *rLR, INT4 tidesFlag)
void eob_ham_s(REAL8 nu, REAL8 r, REAL8 rc, REAL8 drc_dr, REAL8 pphi, REAL8 prstar, REAL8 S, REAL8 Sstar, REAL8 chi1, REAL8 chi2, REAL8 X1, REAL8 X2, REAL8 aK2, REAL8 c3, REAL8 A, REAL8 dA, REAL8 *H, REAL8 *Heff, REAL8 *Heff_orb, REAL8 *dHeff_dr, REAL8 *dHeff_dprstar, REAL8 *dHeff_dpphi, REAL8 *d2Heff_dprstar20)
INT4 XLALSetup_TEOB_mode_array(LALValue *ModeArray, INT4 modeType)
Should not be needed in LAL (all parameters passed to interface function)
void XLALTEOBDynamicsSetParams(LALTEOBResumSDynamics *dyn, LALValue **pModeArray, 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 deltaT, const REAL8 lambda1, const REAL8 lambda2, const REAL8 lambda1oct, const REAL8 lambda2oct, const REAL8 lambda1hex, const REAL8 lambda2hex, LALDict *LALparams)
void eob_wav_ringdown_template(REAL8 x, REAL8 a1, REAL8 a2, REAL8 a3, REAL8 a4, REAL8 b1, REAL8 b2, REAL8 b3, REAL8 b4, REAL8 sigmar, REAL8 sigmai, REAL8 *psi)
void XLALTEOBDynamicsExtract(LALTEOBResumSDynamics *dyna, const REAL8 to, const REAL8 tn, LALTEOBResumSDynamics **dynb, const char *name)
void eob_wav_speedyTail(REAL8 Omega, REAL8 Hreal, REAL8 bphys, LALTEOBResumSWaveformModeSingleTime *tlm)
REAL8 baryc_f_weights(REAL8 xx, INT4 n, REAL8 *f, REAL8 *x, REAL8 *omega)
REAL8 eob_flx_Flux(REAL8 x, REAL8 Omega, REAL8 r_omega, REAL8 E, REAL8 Heff, REAL8 jhat, REAL8 r, REAL8 pr_star, REAL8 ddotr, LALTEOBResumSDynamics *dyn)
void eob_flx_FlmNewt(REAL8 x, REAL8 nu, REAL8 *Nlm)
REAL8 get_mrg_timestep(REAL8 q, REAL8 chi1, REAL8 chi2)
void eob_metric_Atidal(REAL8 r, LALTEOBResumSDynamics *dyn, REAL8 *AT, REAL8 *dAT, REAL8 *d2AT)
void NQCdata_free(NQCdata *nqc)
void XLALTEOBDynamicsJoin(LALTEOBResumSDynamics *dyna, LALTEOBResumSDynamics *dynb, REAL8 to)
REAL8 q_to_nu(const REAL8 q)
void eob_wav_hlmNQC_nospin201602(REAL8 nu, REAL8 r, REAL8 prstar, REAL8 Omega, REAL8 ddotr, LALTEOBResumSWaveformModeSingleTime *hlmnqc)
REAL8 baryc_f(REAL8 xx, INT4 n, REAL8 *f, REAL8 *x)
void eob_wav_flm_coeffs(REAL8 nu, REAL8 clm[KMAX][6])
REAL8 Eulerlog(const REAL8 x, const INT4 m)
int D2(REAL8 *f, REAL8 dx, INT4 n, REAL8 *d2f)
void eob_wav_hlmNQC_find_a1a2a3_mrg(LALTEOBResumSDynamics *dyn_mrg, SphHarmPolarTimeSeries *hlm_mrg, SphHarmPolarTimeSeries *hnqc, LALTEOBResumSDynamics *dyn, SphHarmPolarTimeSeries *hlm)
REAL8 eob_dyn_bisecHeff0_s(REAL8 nu, REAL8 chi1, REAL8 chi2, REAL8 X1, REAL8 X2, REAL8 c3, REAL8 pph, REAL8 rorb, REAL8 A, REAL8 dA, REAL8 rc, REAL8 drc_dr, REAL8 ak2, REAL8 S, REAL8 Ss)
REAL8 JFAPG_fit_Sigma_Irrotational(REAL8 barlam2)
REAL8 eob_c3_fit_global(REAL8 nu, REAL8 chi1, REAL8 chi2, REAL8 X1, REAL8 X2, REAL8 a1, REAL8 a2)
void XLALSphHarmPolarJoin(SphHarmPolarTimeSeries *hlma, SphHarmPolarTimeSeries *hlmb, REAL8 to)
void eob_metric_s(REAL8 r, LALTEOBResumSDynamics *dyn, REAL8 *A, REAL8 *B, REAL8 *dA, REAL8 *d2A, REAL8 *dB)
REAL8 eob_dyn_r0_eob(REAL8 f0, LALTEOBResumSDynamics *dyn)
REAL8 nu_to_X1(const REAL8 nu)
int get_uniform_size(const REAL8 tf, const REAL8 t0, const REAL8 dt)
void(* EOBDynSGetRCFunc)(REAL8, REAL8, REAL8, REAL8, REAL8, REAL8, REAL8, REAL8, REAL8, REAL8, REAL8, INT4, REAL8 *, REAL8 *, REAL8 *)
void eob_nqc_setcoefs_nospin201602(REAL8 nu, NQCcoefs *nqc)
REAL8 Yagi14_fit_Chex(REAL8 C_Q)
REAL8 Yagi13_fit_barlamdel(REAL8 barlam2, INT4 ell)
void eob_wav_hlmNewt(REAL8 r, REAL8 Omega, REAL8 phi, REAL8 nu, LALTEOBResumSWaveformModeSingleTime *hNewt)
void QNMHybridFitCab(REAL8 nu, REAL8 X1, REAL8 X2, REAL8 chi1, REAL8 chi2, REAL8 aK, REAL8 Mbh, REAL8 abh, REAL8 *a1, REAL8 *a2, REAL8 *a3, REAL8 *a4, REAL8 *b1, REAL8 *b2, REAL8 *b3, REAL8 *b4, REAL8 *sigmar, REAL8 *sigmai, INT4 usespins)
void eob_wav_ringdown(LALTEOBResumSDynamics *dyn, SphHarmPolarTimeSeries *hlm)
void eob_wav_hlmNQC(REAL8 nu, REAL8 r, REAL8 prstar, REAL8 Omega, REAL8 ddotr, NQCcoefs *nqc, LALTEOBResumSWaveformModeSingleTime *psilmnqc)
@ ODE_TSTEP_ADAPTIVE_UNIFORM_AFTER_LSO
void unwrap_proxy(REAL8 *p, REAL8 *r, const INT4 size, const INT4 shift0)
REAL8 eob_nqc_timeshift(REAL8 nu, REAL8 chi1)
void eob_wav_hhatlmTail(REAL8 Omega, REAL8 Hreal, REAL8 bphys, LALTEOBResumSWaveformModeSingleTime *tlm)
REAL8 eob_flx_HorizonFlux(REAL8 x, REAL8 Heff, REAL8 jhat, REAL8 nu)
void eob_metric_A5PNlog(REAL8 r, REAL8 nu, REAL8 *A, REAL8 *dA, REAL8 *d2A)
int eob_dyn_rhs(REAL8 t, const REAL8 y[], REAL8 dy[], void *params)
REAL8 interp1d(const INT4 order, REAL8 xx, INT4 nx, REAL8 *f, REAL8 *x)
void Waveform_lm_t_alloc(LALTEOBResumSWaveformModeSingleTime **wav)
Replaced by LAL COMPLEX16TimeSeries functions.
REAL8 time_units_conversion(REAL8 M, REAL8 t)
int D0(REAL8 *f, REAL8 dx, INT4 n, REAL8 *df)
XLALWignerdMatrix, XLALWignerDMatrix in <lal/SphericalHarmonics.h>
REAL8 radius0(REAL8 M, REAL8 fHz)
INT4 XLALCheck_TEOB_mode_array(LALValue *ModeArray, UINT4 use_tidal)
void NQCdata_alloc(NQCdata **nqc)
int eob_dyn_rhs_s(REAL8 t, const REAL8 y[], REAL8 dy[], void *params)
void eob_wav_hlmNQC_find_a1a2a3(LALTEOBResumSDynamics *dyn, SphHarmPolarTimeSeries *h, SphHarmPolarTimeSeries *hnqc)
const INT4 TEOB_LINDEX[KMAX]
Maps between linear index and the corresponding (l, m) multipole indices.
REAL8 eob_dyn_Omegaorb0(REAL8 r, void *params)
void XLALTEOBDynamicsInit(LALTEOBResumSDynamics **dyn, INT4 size, const CHAR *name)
REAL8 Yagi14_fit_Coct(REAL8 C_Q)
void eob_dyn_s_get_rc_NOTIDES(REAL8 r, REAL8 nu, REAL8 at1, REAL8 at2, REAL8 aK2, REAL8 C_Q1, REAL8 C_Q2, REAL8 UNUSED C_Oct1, REAL8 UNUSED C_Oct2, REAL8 UNUSED C_Hex1, REAL8 UNUSED C_Hex2, INT4 usetidal, REAL8 *rc, REAL8 *drc_dr, REAL8 *d2rc_dr2)
REAL8 eob_dyn_r0_Kepler(REAL8 f0)
void(* EOBWavFlmSFunc)(REAL8, REAL8, REAL8, REAL8, REAL8, REAL8, REAL8, REAL8, REAL8, REAL8, REAL8[KMAX][6], int, REAL8 *, REAL8 *)
Func pointer types.
REAL8 eob_dyn_fLR(REAL8 r, void *params)
void eob_flx_Tlm(REAL8 w, REAL8 *MTlm)
void interp_spline(REAL8 *t, REAL8 *y, INT4 n, REAL8 *ti, INT4 ni, REAL8 *yi)
void eob_wav_hlmTidal(REAL8 x, LALTEOBResumSDynamics *dyn, REAL8 *hTidallm)
REAL8 JFAPG_fit_Sigma_Static(REAL8 barlam2)
REAL8 eob_dyn_DHeff0(REAL8 x, void *params)
void eob_dyn_ic(REAL8 r0, LALTEOBResumSDynamics *dyn, REAL8 y_init[])
int find_point_bisection(REAL8 x, INT4 n, REAL8 *xp, INT4 o)
REAL8 find_max(const INT4 n, REAL8 dx, REAL8 x0, REAL8 *f, REAL8 *fmax)
static REAL8 sum(REAL8 *arr1, REAL8 *arr2, int k)
EOBDynSGetRCFunc eob_dyn_s_get_rc
EOBWavFlmSFunc eob_wav_flm_s
Multipolar coefficients for NQC waveform.
NQC data for flux and waveform.
Structure to carry a collection of spherical harmonic modes in COMPLEX16 time series.