40 Interpolator::Interpolator(
unsigned int ndata, Interpolation::Type type ) {
42 fInterp =
new GSLInterpolator(ndata, type);
45 Interpolator::Interpolator(
const std::vector<double> & x,
const std::vector<double> & y, Interpolation::Type type)
49 size_t size = std::min( x.size(), y.size() );
51 fInterp =
new GSLInterpolator(size, type);
53 fInterp->Init(size, &x.front(), &y.front() );
58 Interpolator::~Interpolator()
61 if (fInterp)
delete fInterp;
64 Interpolator::Interpolator(
const Interpolator &)
68 Interpolator & Interpolator::operator = (
const Interpolator &rhs)
71 if (
this == &rhs)
return *
this;
76 bool Interpolator::SetData(
unsigned int ndata,
const double * x,
const double *y) {
78 return fInterp->Init(ndata, x, y);
80 bool Interpolator::SetData(
const std::vector<double> & x,
const std::vector<double> &y) {
82 size_t size = std::min( x.size(), y.size() );
83 return fInterp->Init(size, &x.front(), &y.front());
87 double Interpolator::Eval(
double x )
const
90 return fInterp->Eval(x);
93 double Interpolator::Deriv(
double x )
const
96 return fInterp->Deriv(x);
99 double Interpolator::Deriv2(
double x )
const {
101 return fInterp->Deriv2(x);
104 double Interpolator::Integ(
double a,
double b)
const {
106 return fInterp->Integ(a,b);
109 std::string Interpolator::TypeGet()
const {
111 return fInterp->Name();
113 std::string Interpolator::Type()
const {
115 return fInterp->Name();