From bc0bd5ece3bffcbc9b5058a3a9c1e9638a0bf45e Mon Sep 17 00:00:00 2001 From: TheOnePath Date: Wed, 11 Sep 2024 13:10:30 +0100 Subject: [PATCH] Added header files --- include/gp.h | 19 +++++++++++++++++++ include/kernels.h | 21 +++++++++++++++++++++ include/solve.h | 16 ++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 include/gp.h create mode 100644 include/kernels.h create mode 100644 include/solve.h diff --git a/include/gp.h b/include/gp.h new file mode 100644 index 0000000..2422b8e --- /dev/null +++ b/include/gp.h @@ -0,0 +1,19 @@ +#include + +#include "kernels.h" +#include "solve.h" + +#ifndef GP_H +#define GP_H + +typedef struct { + gsl_matrix *meanf; + gsl_matrix *covf; +} gp_model; + +gp_model +gpfit +( gsl_matrix *x, gsl_matrix *y, gsl_matrix *xs, kernel_info info, double noise, + invert_t inv_t ); + +#endif // !GP_H diff --git a/include/kernels.h b/include/kernels.h new file mode 100644 index 0000000..a63dc0a --- /dev/null +++ b/include/kernels.h @@ -0,0 +1,21 @@ +#include + +#ifndef KERNELS_H +#define KERNELS_H +typedef int(*kernel)(double, double, gsl_matrix* , gsl_matrix*, gsl_matrix*); + +typedef struct { + kernel kern; + double sigmaf; + double length_scale; +} kernel_info; + +int +squared_exp +( double sigmaf, double ell, gsl_matrix *A, gsl_matrix *B, gsl_matrix *result ); + +int +matern32 +( double sigmaf, double ell, gsl_matrix *A, gsl_matrix *B, gsl_matrix *result ); + +#endif // !KERNELS_H diff --git a/include/solve.h b/include/solve.h new file mode 100644 index 0000000..553b6e7 --- /dev/null +++ b/include/solve.h @@ -0,0 +1,16 @@ +#include + +#ifndef SOLVE_H +#define SOLVE_H + +typedef int (*invert_t)(gsl_matrix*, gsl_matrix*); + +int +inv_lu +( gsl_matrix *A, gsl_matrix *inverse ); + +int +inv_chol +( gsl_matrix *A, gsl_matrix *inverse ); + +#endif // !SOLVE_H