65 EXPECT_NEAR(spline.
eval(0.0, accel), 0.0, 1e-10);
66 EXPECT_NEAR(spline.
eval(1.0, accel), 1.0, 1e-10);
67 EXPECT_NEAR(spline.
eval(2.0, accel), 4.0, 1e-10);
68 EXPECT_NEAR(spline.
eval(3.0, accel), 9.0, 1e-10);
69 EXPECT_NEAR(spline.
eval(4.0, accel), 16.0, 1e-10);
72 const double val = spline.
eval(1.5, accel);
135 std::vector x = {0.0};
136 std::vector y = {0.0};
137 EXPECT_THROW(
CubicSpline spline(x, y), std::invalid_argument);
140 x = {0.0, 1.0, 0.5, 2.0};
141 y = {0.0, 1.0, 2.0, 3.0};
142 EXPECT_THROW(
CubicSpline spline(x, y), std::invalid_argument);
150 EXPECT_NEAR(spline.
evalIntegral(0, 1, accel), 0.39285714285714285, 1e-10);
151 EXPECT_NEAR(spline.
evalIntegral(1, 2, accel), 2.3214285714285712, 1e-10);
152 EXPECT_NEAR(spline.
evalIntegral(2, 3, accel), 6.3214285714285712, 1e-10);
153 EXPECT_NEAR(spline.
evalIntegral(3, 4, accel), 12.392857142857142, 1e-10);
154 EXPECT_NEAR(spline.
evalIntegral(0, 4, accel), 21.428571428571427, 1e-10);
157 EXPECT_NEAR(spline.
evalIntegral(0.6, 3.2, accel), 10.845085714285716, 1e-10);
160 EXPECT_NEAR(spline.
evalIntegral(0.6, 3.2, accel), 10.845085714285716, 1e-10);
163 EXPECT_NEAR(spline.
evalIntegral(-1, 1.5, accel), 0.890625, 1e-10);
166 EXPECT_NEAR(spline.
evalIntegral(3, 4.5, accel), 21.160714285714285, 1e-10);
169 EXPECT_NEAR(spline.
evalIntegral(2, 1, accel), 2.3214285714285712, 1e-10);
173 EXPECT_THROW(spline_uninit.
evalIntegral(2, 1, accel), std::runtime_error);
176 std::vector x_data = {0.0, 1.0, 2.0, 3.0, 4.0};
177 std::vector y_data = {0.0, 2.0, 4.0, 6.0, 8.0};
178 spline.
init(x_data, y_data);
179 EXPECT_NEAR(spline.
evalIntegral(0, 4, accel), 16.0, 1e-10);
194 EXPECT_NEAR(val, 0.0, 1e-10);
199 EXPECT_NEAR(val, 4.0, 1e-10);
double gsl_spline_eval_integ(const gsl_spline *spline, const double xa, const double xb, gsl_interp_accel *accel)
Evaluate the integral of a spline at x using an accelerator.
double gsl_spline_eval(const gsl_spline *spline, const double x, gsl_interp_accel *accel)
Evaluate a spline at x using an accelerator.
void gsl_spline_init(gsl_spline *spline, const double *x, const double *y, const size_t n)
Initialize a spline with tabulated data.