71 y.push_back(-5.89868e-005);
72 y.push_back(0.233061);
73 y.push_back(0.216427);
74 y.push_back(0.0486148);
75 y.push_back(-0.133157);
76 y.push_back(-0.172031);
77 y.push_back(-0.0456079);
78 y.push_back(0.0906686);
79 y.push_back(0.116462);
80 y.push_back(0.0557287);
81 y.push_back(-0.03875);
82 y.push_back(-0.10346);
83 y.push_back(-0.0734111);
84 y.push_back(0.0298435);
85 y.push_back(0.094886);
86 y.push_back(0.0588743);
87 y.push_back(-0.0171021);
88 y.push_back(-0.0630512);
89 y.push_back(-0.0601684);
90 y.push_back(-0.00994154);
94 const double PI = 3.1415;
97 double step = 4 * PI / (
N - 1);
98 for (
int i = 0; i <
N; ++i, xx += step)
101 yIn.push_back(sin(2 * xx) / xx);
105 const int N_out = 20;
107 step = (3 * PI) / (N_out - 1);
108 for (
int i = 0; i < N_out; ++i, xx += step)
110 double interpolatedX = interpolator.
Interpolate(xx);
111 double diff = abs(interpolatedX -
y[i]);
134 for (
size_t i = 0; i <
x.size(); ++i)
146 for (
size_t i = 0; i <
x.size(); ++i)
158 for (
size_t i = 0; i <
x.size(); ++i)
204 unit_assert_throws_what(interpolator.
Differentiate(2.0), runtime_error,
"[CubicHermiteSpline] attempted to differentiate a non-differentiable implementation of IInterpolation.")
217 unit_assert_throws_what(interpolator.
Integrate(1.0, 2.0), runtime_error,
"[CubicHermiteSpline] attempted to integrate a non-integrable implementation of IInterpolation.")
222int main(
int argc,
char* argv[])
int main(int argc, char *argv[])
void diff(const string &filename1, const string &filename2)
KernelTraitsBase< Kernel >::space_type::abscissa_type x
KernelTraitsBase< Kernel >::space_type::ordinate_type y
void CubicSplineDummyInitialize(const vector< double > &x, const vector< double > &y)
void DiffAndIntegrateTest()
An implementation of the IInterpolation interface that acts as a wrapper for a cSpline.
double Differentiate(double x) override
Derivative at the point x.
double Interpolate(double x) override
Interpolate at point x.
bool IsDifferentiable() override
Indicates whether the algorithm can provide an interpolated derivative.
double Integrate(double a, double b) override
Definite integral between points a and b over function f.
bool IsIntegrable() override
Indicates whether the algorithm can provide an interpolated integral.
#define unit_assert_equal(x, y, epsilon)
#define unit_assert_throws_what(x, exception, whatStr)
#define TEST_PROLOG(argc, argv)