56 JParser<> zap(
"Example program to test multi-dimensional interpolation with multi-dimensional function objects.");
64 catch(
const exception &error) {
65 FATAL(error.what() << endl);
72 const double xmin = -1.0;
73 const double xmax = +1.0;
74 const double dx = (xmax - xmin) / (numberOfBins - 1);
77 typedef JGridPolint3Function1D_t JFunction1D_t;
79 typedef JMAPLIST<JPolint3FunctionalGridMap>::maplist JMaplist1D_t;
81 typedef JMAPLIST<JPolint3FunctionalGridMap,
82 JPolint3FunctionalGridMap,
83 JPolint3FunctionalGridMap>::maplist JMaplist3D_t;
85 typedef JMultiFunction<JFunction1D_t, JMaplist1D_t> JFunction2D_t;
86 typedef JMultiFunction<JFunction2D_t, JMaplist3D_t> JFunction5D_t;
91 for (
double x0 = xmin; x0 <= xmax + 0.5*dx; x0 += dx) {
92 for (
double x1 = xmin; x1 <= xmax + 0.5*dx; x1 += dx) {
93 for (
double x2 = xmin; x2 <= xmax + 0.5*dx; x2 += dx) {
94 for (
double x3 = xmin; x3 <= xmax + 0.5*dx; x3 += dx) {
95 for (
double x4 = xmin; x4 <= xmax + 0.5*dx; x4 += dx) {
96 g5[x0][x1][x2][x3][x4] =
f5(x0, x1, x2, x3, x4);
104 g5.setExceptionHandler(
new JFunction1D_t::JDefaultResult(
JMATH::zero));
107 if (numberOfEvents > 0) {
113 for (
int i = 0; i != numberOfEvents; ++i) {
115 const double x0 = gRandom->Uniform(xmin, xmax);
116 const double x1 = gRandom->Uniform(xmin, xmax);
117 const double x2 = gRandom->Uniform(xmin, xmax);
118 const double x3 = gRandom->Uniform(xmin, xmax);
119 const double x4 = gRandom->Uniform(xmin, xmax);
121 const double v =
f5(x0,x1,x2,x3,x4);
125 const double w = g5(x0,x1,x2,x3,x4);
134 timer.print(cout, 1.0 / numberOfEvents);
Utility class to parse command line options.
static const JZero zero
Function object to assign zero value.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
double f5(const double x0, const double x1, const double x2, const double x3, const double x4)
5D function.