19 TEST_CASE(
"test oneDimCubicSplineLinearGrid",
"[numerics]")
22 std::vector<double> yvals = {1.0, 2.0, 1.5};
24 auto grid = std::make_unique<LinearGrid<double>>();
25 grid->set(0.5, 2.0,
n);
35 cubic_spline.
spline(imin, yp0, imax, ypn);
39 std::vector<double> check_xvals = {0.0, 0.39999999998, 0.79999999996, 1.19999999994, 1.59999999992, 1.9999999999, 2.5};
40 std::vector<double> check_yvals;
42 for (
int i = 0; i < check_xvals.size(); i++)
44 double r = check_xvals[i];
45 double val = cubic_spline.
splint(r);
46 check_yvals.push_back(val);
51 CHECK(check_yvals[0] == Approx(0.5));
52 CHECK(check_yvals[1] == Approx(0.9));
53 CHECK(check_yvals[2] == Approx(1.4779999999));
54 CHECK(check_yvals[3] == Approx(2.0012592592));
55 CHECK(check_yvals[4] == Approx(1.575851852));
56 CHECK(check_yvals[5] == Approx(1.5));
57 CHECK(check_yvals[6] == Approx(1.5));
helper functions for EinsplineSetBuilder
TEST_CASE("complex_helper", "[type_traits]")
value_type splint(point_type r) const override
void spline(int imin, value_type yp1, int imax, value_type ypn) override
Evaluate the 2nd derivative on the grid points.
combined OneDimCubicSpline and LinearGrid OneDimCubicSpline contains OneDimGridBase pointer and calls...
CHECK(log_values[0]==ComplexApprox(std::complex< double >{ 5.603777579195571, -6.1586603331188225 }))