27#include <gsl/gsl_integration.h>
28#include <lal/LALInference.h>
29#include <lal/LALInferencePriorVolumes.h>
30#include <lal/LALInferencePrior.h>
31#include <lal/LALCosmologyCalculator.h>
52 double factor =
mc * pow(1.0 +
q, 0.2);
53 double m1 = factor * pow(
q, -0.6);
70 double factor =
mc * pow(1.0 +
q, 0.2);
71 double m1 = factor * pow(
q, -0.6);
72 double m2 = factor * pow(
q, 0.4);
96 if (q<q_min || q>q_max)
return 0.0;
101 if (mc<mc_min || mc>mc_max)
return 0.0;
129 gsl_integration_workspace *
w = gsl_integration_workspace_alloc (10000);
130 double result, error;
131 const double epsabs = 1
e-4;
132 const double epsrel = 1
e-4;
133 const size_t wsSize = 10000;
148 fprintf(stderr,
"ERROR: q doesn't seem to be a valid param. Exiting\n");
152 int status = gsl_integration_qags (&F, q_min, q_max,epsabs, epsrel, wsSize,
157 gsl_integration_workspace_free(
w);
164 gsl_integration_workspace *
w = gsl_integration_workspace_alloc (10000);
165 double result, error;
166 const double epsabs = 1
e-4;
167 const double epsrel = 1
e-4;
168 const size_t wsSize = 10000;
174 oParams.
prior=priorArgs;
176 double mc_min,mc_max;
182 fprintf(stderr,
"ERROR: chirpmass doesn't seem to be a valid param. Exiting\n");
187 gsl_error_handler_t *oldhandler=gsl_set_error_handler_off();
189 int status = gsl_integration_qags (&F, mc_min, mc_max, epsabs, epsrel, wsSize,
w, &result, &error);
191 gsl_set_error_handler(oldhandler);
193 gsl_integration_workspace_free(
w);
227 return priorf(
x,omega);
234 gsl_integration_workspace *
w = gsl_integration_workspace_alloc (10000);
235 double result, error;
236 const double epsabs = 1
e-4;
237 const double epsrel = 1
e-4;
238 const size_t wsSize = 10000;
244 double intmin,intmax;
266 int status = gsl_integration_qags (&F, intmin, intmax, epsabs, epsrel, wsSize,
w, &result, &error);
271 gsl_integration_workspace_free(
w);
double XLALUniformComovingVolumeDensity(double z, void *omega)
static double loudness_integrand(double x, void *params)
static double loudness_volume(LALInferenceRunState *state)
double LALInferenceMassDistancePriorVolume(LALInferenceRunState *state)
static double redshift_prior(double z, LALCosmologicalParameters *omega)
static double chirp_to_comp_jacobian(double mc, double q)
static double distance_prior(double d, LALCosmologicalParameters *omega)
double LALInferenceMassPriorVolume(LALInferenceRunState *state)
static double mass_outer_integral(LALInferenceVariables *priorArgs)
static double inner_integral(double mc, void *params)
static double integrand(double q, void *params)
static double logdistance_prior(double ld, LALCosmologicalParameters *omega)
static double mass_indicator(double mc, double q, LALInferenceVariables *priorParams)
REAL8(* LALInferenceLoudnessPriorFunction)(double x, LALCosmologicalParameters *omega)
REAL8 LALInferenceGetREAL8Variable(LALInferenceVariables *vars, const char *name)
void * LALInferenceGetVariable(const LALInferenceVariables *vars, const char *name)
Return a pointer to the memory the variable vars is stored in specified by name User must cast this p...
int LALInferenceCheckVariable(LALInferenceVariables *vars, const char *name)
Checks for name being present in vars returns 1(==true) or 0.
void LALInferenceGetMinMaxPrior(LALInferenceVariables *priorArgs, const char *name, REAL8 *min, REAL8 *max)
Get the minimum and maximum values of the uniform prior from the priorArgs list, given a name.
#define XLAL_ERROR_REAL8(...)
Structure containing inference run state This includes pointers to the function types required to run...
LALInferenceVariables * priorArgs
Common arguments needed by proposals, to be copied to thread->cycle.
The LALInferenceVariables structure to contain a set of parameters Implemented as a linked list of LA...
LALInferenceVariables * prior
LALInferenceVariables * priorargs
LALInferenceLoudnessPriorFunction priorfunc
LALCosmologicalParameters * omega
LALInferenceVariables * prior