22inline double f5(
const double x0,
28 static const double a = 1.0;
29 static const double b = 1.0;
30 static const double c = 1.0;
33 x0 * (a + x0 * (b + c*x0)) *
34 x1 * (a + x1 * (b + c*x1)) *
35 x2 * (a + x2 * (b + c*x2)) *
36 x3 * (a + x3 * (b + c*x3)) *
37 x4 * (a + x4 * (b + c*x4));
46int main(
int argc,
char **argv)
57 JParser<> zap(
"Example program to test multi-dimensional interpolation.");
66 catch(
const exception &error) {
67 FATAL(error.what() << endl);
74 const double xmin = -1.0;
75 const double xmax = +1.0;
92 for (
double x0 = xmin; x0 <= xmax + 0.5*dx; x0 += dx) {
93 for (
double x1 = xmin; x1 <= xmax + 0.5*dx; x1 += dx) {
94 for (
double x2 = xmin; x2 <= xmax + 0.5*dx; x2 += dx) {
95 for (
double x3 = xmin; x3 <= xmax + 0.5*dx; x3 += dx) {
96 for (
double x4 = xmin; x4 <= xmax + 0.5*dx; x4 += dx) {
97 g5[x0][x1][x2][x3][x4] =
f5(x0, x1, x2, x3, x4);
105 g5.setExceptionHandler(
new JFunction1D_t::JDefaultResult(
JMATH::zero));
107 ASSERT(numberOfEvents > 0);
110 const double x = xmin - dx;
112 ASSERT(fabs(g5(x, 0.0, 0.0, 0.0, 0.0)) <= precision);
113 ASSERT(fabs(g5(0.0, x, 0.0, 0.0, 0.0)) <= precision);
114 ASSERT(fabs(g5(0.0, 0.0, x, 0.0, 0.0)) <= precision);
115 ASSERT(fabs(g5(0.0, 0.0, 0.0, x, 0.0)) <= precision);
116 ASSERT(fabs(g5(0.0, 0.0, 0.0, 0.0, x)) <= precision);
123 for (
int i = 0; i != numberOfEvents; ++i) {
125 const double x0 = gRandom->Uniform(xmin, xmax);
126 const double x1 = gRandom->Uniform(xmin, xmax);
127 const double x2 = gRandom->Uniform(xmin, xmax);
128 const double x3 = gRandom->Uniform(xmin, xmax);
129 const double x4 = gRandom->Uniform(xmin, xmax);
131 const double v =
f5(x0,x1,x2,x3,x4);
135 const double w = g5(x0,x1,x2,x3,x4);
142 if (
debug >- debug_t) {
146 timer.
print(cout, 1.0 / numberOfEvents);
double f5(const double x0, const double x1, const double x2, const double x3, const double x4)
5D function.