33 const std::vector<double> &y_)
36 ,
acc(gsl_interp_accel_alloc(),
37 [](gsl_interp_accel *p) { gsl_interp_accel_free(p); })
38 , cspline(gsl_spline_alloc(gsl_interp_cspline, interpolation_points.size()),
39 [](gsl_spline *p) { gsl_spline_free(p); })
41 Assert(interpolation_points.size() > 0,
44 Assert(interpolation_points.size() == interpolation_values.size(),
46 interpolation_values.size()));
49 for (
unsigned int i = 0; i < interpolation_points.size() - 1; ++i)
50 AssertThrow(interpolation_points[i] < interpolation_points[i + 1],
52 interpolation_points[i],
53 interpolation_points[i + 1]));
55 const unsigned int n = interpolation_points.size();
57 gsl_spline_init(cspline.get(),
58 interpolation_points.data(),
59 interpolation_values.data(),