22 inline 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));
46 int 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;
76 const double dx = (xmax - xmin) / (numberOfBins - 1);
79 typedef JGridPolint3Function1D_t JFunction1D_t;
81 typedef JMAPLIST<JPolint3FunctionalGridMap,
82 JPolint3FunctionalGridMap,
83 JPolint3FunctionalGridMap,
84 JPolint3FunctionalGridMap>::maplist JMaplist_t;
86 typedef JMultiFunction<JFunction1D_t, JMaplist_t> JMultiFunction_t;
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));
108 ASSERT(numberOfEvents > 0);
114 for (
int i = 0; i != numberOfEvents; ++i) {
116 const double x0 = gRandom->Uniform(xmin, xmax);
117 const double x1 = gRandom->Uniform(xmin, xmax);
118 const double x2 = gRandom->Uniform(xmin, xmax);
119 const double x3 = gRandom->Uniform(xmin, xmax);
120 const double x4 = gRandom->Uniform(xmin, xmax);
122 const double v =
f5(x0,x1,x2,x3,x4);
126 const double w = g5(x0,x1,x2,x3,x4);
137 timer.print(cout, 1.0 / numberOfEvents);
140 ASSERT(Q.getMean() <= precision);
141 ASSERT(Q.getSTDev() <= precision);
Utility class to parse command line options.
static const JZero zero
Function object to assign zero value.
fi JEventTimesliceWriter a
Various implementations of functional maps.
#define ASSERT(A,...)
Assert macro.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
General purpose messaging.
Utility class to parse command line options.
double f5(const double x0, const double x1, const double x2, const double x3, const double x4)
5D function.
int main(int argc, char *argv[])