23 #ifndef _LALSIMIMRSPINEOBHCAPEXACTDERIVATIVE_C
24 #define _LALSIMIMRSPINEOBHCAPEXACTDERIVATIVE_C
27 #define UNUSED __attribute__ ((unused))
33 #include <gsl/gsl_deriv.h>
34 #include <lal/LALSimInspiral.h>
35 #include <lal/LALSimIMR.h>
101 const REAL8 values[],
109 params.varyParam = paramIdx;
112 if(paramIdx>=0 && paramIdx<6) {
140 memcpy( tmpVec, dParams->
values,
147 r.length =
p.length = 3;
171 memcpy( tmpVec, dParams->
values,
175 for(
int i=0;
i<6;
i++) tmpVec[
i] = input[
i];
179 r.length =
p.length = 3;
196 const REAL8 values[],
213 memcpy(
x->data,&values[0],3*
sizeof(
REAL8));
214 memcpy(
p->data,&values[3],3*
sizeof(
REAL8));
217 REAL8 e3z = (0.0 <= sigmaKerr->
data[2]) - (sigmaKerr->
data[2] < 0.0);
224 }
else if (paramIdx==3){
227 }
else if (paramIdx==5){
230 }
else if (paramIdx==0){
240 }
else if (paramIdx==3){
243 }
else if (paramIdx==5){
246 }
else if (paramIdx==0){
276 REAL8 e3z = (0.0 <= sigmaKerr->data[2]) - (sigmaKerr->data[2] < 0.0);
278 switch(which_to_vary) {
287 printf(
"XLALSimIMRSpinEOBHamiltonian_ExactDeriv(): Derivative option not supported: %d!\n",which_to_vary); exit(1);
292 switch(which_to_vary) {
301 printf(
"XLALSimIMRSpinEOBHamiltonian_ExactDeriv(): Derivative option not supported: %d!\n",which_to_vary); exit(1);
416 REAL8 e3z = (0.0 <= sigmaKerr->data[2]) - (sigmaKerr->data[2] < 0.0);
static REAL8 XLALSimIMRSpinEOBHamiltonian_derivs_allatonce(REAL8 output[6], const REAL8 eta, REAL8Vector *restrict x, REAL8Vector *restrict p, REAL8Vector *restrict s1Vec, REAL8Vector *restrict s2Vec, REAL8Vector *restrict sigmaKerr, REAL8Vector *restrict sigmaStar, INT4 tortoise, SpinEOBHCoeffs *coeffs)
Wrapper for GSL to call the Hamiltonian function.
static REAL8 XLALSimIMRSpinEOBHamiltonian_ExactDeriv(INT4 which_to_vary, const REAL8 eta, REAL8Vector *restrict x, REAL8Vector *restrict p, REAL8Vector *restrict s1Vec, REAL8Vector *restrict s2Vec, REAL8Vector *restrict sigmaKerr, REAL8Vector *restrict sigmaStar, INT4 tortoise, SpinEOBHCoeffs *coeffs)
static REAL8 XLALSpinHcapExactDerivWRTParam(const INT4 paramIdx, const REAL8 values[], SpinEOBParams *params)
Calculate the derivative of the Hamiltonian w.r.t.
static REAL8 GSLSpinAlignedHamiltonianWrapper_derivs_allatonce(REAL8 output[6], const REAL8 input[6], void *params)
static double GSLSpinAlignedHamiltonianWrapper_ExactDeriv(double x, void *params)
static REAL8 XLALSpinHcapHybDerivWRTParam(const INT4 paramIdx, const REAL8 values[], SpinEOBParams *funcParams)
REAL8Vector * XLALCreateREAL8Vector(UINT4 length)
void XLALDestroyREAL8Vector(REAL8Vector *vector)
Structure containing all the parameters needed for the EOB waveform.
Parameters for the spinning EOB model, used in calculating the Hamiltonian.
Parameters for the spinning EOB model.
SpinEOBHCoeffs * seobCoeffs
char output[FILENAME_MAX]