30 #define UNUSED __attribute__ ((unused))
39 #include <gsl/gsl_bspline.h>
40 #include <gsl/gsl_blas.h>
41 #include <gsl/gsl_spline.h>
42 #include <gsl/gsl_complex_math.h>
44 #include <lal/SeqFactories.h>
45 #include <lal/FileIO.h>
46 #include <lal/H5FileIO.h>
48 #include <lal/XLALError.h>
49 #include <lal/LALConstants.h>
50 #include <lal/LALSimIMR.h>
67 const char* NRSurRemnant_DATAFILE
73 "Unable to find data file %s in $LAL_DATA_PATH\n",
74 NRSurRemnant_DATAFILE);
77 char *dir = dirname(
path);
78 const UINT4 size = strlen(dir) + strlen(NRSurRemnant_DATAFILE) + 2;
80 snprintf(file_path, size,
"%s/%s", dir, NRSurRemnant_DATAFILE);
85 "Unable to load data file %s in $LAL_DATA_PATH."
86 " File may be corrupted.\n", NRSurRemnant_DATAFILE);
104 if (fit_data == NULL || *fit_data != NULL) {
123 sub,
"constant_value");
131 sub,
"y_train_mean");
152 sub,
"lin_intercept");
163 ret = ReadHDF5RealVectorDataset(sub,
"length_scale",
173 hyperparams->
alpha = NULL;
174 ret = ReadHDF5RealVectorDataset(sub,
"alpha",
175 &(hyperparams->
alpha));
181 (*fit_data)->lin_coef = NULL;
182 ret = ReadHDF5RealVectorDataset(sub,
"lin_coef", &((*fit_data)->lin_coef));
187 (*fit_data)->hyperparams = hyperparams;
206 if (vector_data == NULL || *vector_data != NULL) {
213 const size_t str_size = 20;
215 UNUSED
size_t nwritten;
221 nwritten = snprintf(sub_grp_name, str_size,
"%s/comp_%u", grp_name,
i);
226 (*vector_data)->fit_data[
i] = fit_data;
228 (*vector_data)->vec_dim = vec_dim;
244 if (sur_data == NULL) {
251 if (sur_data->
setup) {
253 "Model was already initialized. Exiting.");
257 gsl_matrix *x_train = NULL;
258 int ret = ReadHDF5RealMatrixDataset(
file,
"GPR_X_train", &x_train);
300 if (sur_data == NULL) {
307 if (sur_data->
setup) {
309 "Model was already initialized. Exiting.");
313 gsl_matrix *x_train = NULL;
314 int ret = ReadHDF5RealMatrixDataset(
file,
"GPR_X_train", &x_train);
struct tagLALH5File LALH5File
Auxiliary functions for SEOBNRv1/v2 reduced order modeling codes in LALSimIMRSEOBNRv2ROMDoubleSpin....
int ReadHDF5DoubleDataset(REAL8 *param, LALH5File *sub, const char *name)
Reads a REAL8 value from a H5 file/group.
int NRSurRemnant_LoadScalarFit(ScalarFitData **fit_data, LALH5File *file, const char *grp_name)
Loads a single NRSurRemnant GPR fit, as described in the supplementary materials of arxiv:1809....
void NRSurRemnant_LoadH5File(LALH5File **file, const char *NRSurRemnant_DATAFILE)
Loads H5 file for a NRSurRemnant model.
int NRSurRemnant_LoadVectorFit(VectorFitData **vector_data, UINT4 vec_dim, LALH5File *file, const char *grp_name)
Loads a vector of NRSurRemnant GPR fits.
int AlignedSpinNRSurRemnant_Init(AlignedSpinRemnantFitData *sur_data, LALH5File *file)
Initializes fit data for an aligned-spin NRSurRemnant.
int PrecessingNRSurRemnant_Init(PrecessingRemnantFitData *sur_data, LALH5File *file)
Initializes fit data for a precessing NRSurRemnant.
Utils for NR surrogates for remnant BH mass, spin and recoil kick.
#define XLAL_FILE_RESOLVE_PATH(fname)
void XLALH5FileClose(LALH5File UNUSED *file)
LALH5File * XLALH5GroupOpen(LALH5File UNUSED *file, const char UNUSED *name)
LALH5File * XLALH5FileOpen(const char UNUSED *path, const char UNUSED *mode)
void * XLALMalloc(size_t n)
#define XLAL_ERROR_VOID(...)
#define XLAL_CHECK_ABORT(assertion)
NRSurRemnant GPR fit data for the mass, spin, and recoil kick for aligned-spin BBHs.
ScalarFitData * mf_data
Fit data for final mass.
UINT4 params_dim
Dimensions of the model.
gsl_matrix * x_train
Training set parameters, needed for GPR fits.
ScalarFitData * vfy_data
Fit data for final mass.
ScalarFitData * vfx_data
Fit data for final mass.
ScalarFitData * chifz_data
Fit data for final mass.
UINT4 setup
Indicates if NRSurRemnant has been initialized.
Data used in a single GPR fit.
REAL8 constant_value
in kernel.
gsl_vector * alpha
Precomputed .
gsl_vector * length_scale
in kernel.
REAL8 y_train_mean
Mean value before GPR fit, usually zero.
NRSurRemnant GPR fit data for the mass, spin, and recoil kick for generically precessing BBHs.
VectorFitData * vf_data
Fit data for recoil kick.
UINT4 setup
Indicates if NRSurRemnant has been initialized.
ScalarFitData * mf_data
Fit data for final mass.
UINT4 params_dim
Dimensions of the model.
VectorFitData * chif_data
Fit data for final spin.
gsl_matrix * x_train
Training set parameters, needed for GPR fits.
Data used in a single vector fit NOTE: basisFunctionOrders, coefs, componentIndices,...