31#ifndef ROOT_Math_GSLInterpolator
32#define ROOT_Math_GSLInterpolator
41#include "gsl/gsl_interp.h"
42#include "gsl/gsl_spline.h"
44#include "gsl/gsl_errno.h"
71 bool Init(
unsigned int ndata,
const double *
x,
const double *
y);
77 static thread_local unsigned int nErrors = 0;
88 MATH_WARN_MSG(
"GSLInterpolator::Eval",
"Suppressing additional warnings");
99 static thread_local unsigned int nErrors = 0;
110 MATH_WARN_MSG(
"GSLInterpolator::Deriv",
"Suppressing additional warnings");
120 static thread_local unsigned int nErrors = 0;
129 MATH_WARN_MSG(
"GSLInterpolator::Deriv2", gsl_strerror(ierr));
131 MATH_WARN_MSG(
"GSLInterpolator::Deriv2",
"Suppressing additional warnings");
144 static thread_local unsigned int nErrors = 0;
155 MATH_WARN_MSG(
"GSLInterpolator::Integ",
"Suppressing additional warnings");
#define MATH_WARN_MSG(loc, str)
GSLInterpolator & operator=(const GSLInterpolator &)=delete
GSLInterpolator(GSLInterpolator &&)=delete
virtual ~GSLInterpolator()
gsl_interp_accel * fAccel
GSLInterpolator(unsigned int ndata, Interpolation::Type type)
double Deriv2(double x) const
std::atomic< bool > fResetNErrors
double Eval(double x) const
bool Init(unsigned int ndata, const double *x, const double *y)
const gsl_interp_type * fInterpType
double Integ(double a, double b) const
GSLInterpolator(const Interpolation::Type type, const std::vector< double > &x, const std::vector< double > &y)
double Deriv(double x) const
GSLInterpolator(const GSLInterpolator &)=delete
Type
Enumeration defining the types of interpolation methods availables.