57     JParser<> zap(
"Example program to create 1D function interpolator from multi-dimensional interpolator.");
 
   66   catch(
const exception &error) {
 
   67     FATAL(error.what() << endl);
 
   70   ASSERT(numberOfEvents > 0);
 
   72   const double xmin = -1.0;
 
   73   const double xmax = +1.0;
 
   74   const double dx   = (xmax - xmin) / (numberOfBins - 1);
 
   77   typedef JFunction1D_t::abscissa_type                                     abscissa_type;
 
   78   typedef JFunction1D_t::value_type                                        value_type;
 
   97   for (
double x0 = xmin; x0 < xmax + 0.5*dx; x0 += dx) {
 
   98     for (
double x1 = xmin; x1 < xmax + 0.5*dx; x1 += dx) {
 
   99       for (
double x2 = xmin; x2 < xmax + 0.5*dx; x2 += dx) {
 
  100         for (
double x3 = xmin; x3 < xmax + 0.5*dx; x3 += dx) {
 
  101           for (
double x4 = xmin; x4 < xmax + 0.5*dx; x4 += dx) {
 
  102             g5[x0][x1][x2][x3][x4] = 
f5(x0,x1,x2,x3,x4);
 
  103             h5[x0][x1][x2][x3][x4] = 
f5(x0,x1,x2,x3,x4);
 
  113   const double x0 = +0.15;
 
  114   const double x1 = -0.25;
 
  115   const double x2 =  0.25;
 
  119   JTimer timer(
"3D interpolator");
 
  123   for (
int i = 0; i != 100; ++i) {
 
  124     copy(h5(x0,x1,x2), g2);      
 
  128   timer.print(cout, 1.0/100, 
micro_t);
 
  132   JTimer t2(
"2D interpolator");
 
  133   JTimer t5(
"5D interpolator");
 
  148   for (
int i = 0; i != numberOfEvents; ++i) {
 
  150     for (
int __i = 0; __i != N; ++__i) {
 
  152       const double x3 = gRandom->Uniform(xmin, xmax);
 
  153       const double x4 = gRandom->Uniform(xmin, xmax);
 
  157       z[__i] = 
f5(x0,x1,x2,x3,x4);
 
  162     for (
int __i = 0; __i != N; ++__i) {
 
  163       v[__i] = g2(x[__i], y[__i]);
 
  170     for (
int __i = 0; __i != N; ++__i) {
 
  171       w[__i] = g5(x0,x1,x2,x[__i],y[__i]);
 
  176     for (
int __i = 0; __i != N; ++__i) {
 
  177       Q2.put(v[__i] - z[__i]);
 
  178       Q5.put(w[__i] - z[__i]);
 
  185     Q5.print(cout, 
false);
 
  187     t2.print(cout, 1.0 / (N * numberOfEvents), 
nano_t);
 
  188     t5.print(cout, 1.0 / (N * numberOfEvents), 
nano_t);
 
  191   ASSERT(fabs(Q2.getMean()  - Q5.getMean())  <= precision);
 
  192   ASSERT(fabs(Q2.getSTDev() - Q5.getSTDev()) <= precision);
 
Utility class to parse command line options. 
 
#define ASSERT(A)
Assert macro. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
Auxiliary class for CPU timing and usage. 
 
double f5(const double x0, const double x1, const double x2, const double x3, const double x4)
5D function. 
 
void copy(const Head &from, JHead &to)
Copy header from from to to.