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