28   inline double f5(
const double x0,
 
   34     return TMath::Gaus(x4, x0+x1+x2+x3, 1.0, kTRUE);
 
   45 int main(
int argc, 
char **argv)
 
   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;
 
   90   for (
double x0 = xmin; x0 < xmax + 0.5*dx; x0 += dx) {
 
   91     for (
double x1 = xmin; x1 < xmax + 0.5*dx; x1 += dx) {
 
   92       for (
double x2 = xmin; x2 < xmax + 0.5*dx; x2 += dx) {
 
   93         for (
double x3 = xmin; x3 < xmax + 0.5*dx; x3 += dx) {
 
   94           for (
double x4 = xmin; x4 < xmax + 0.5*dx; x4 += dx) {
 
   95             g5[x0][x1][x2][x3][x4] = 
f5(x0,x1,x2,x3,x4);
 
   96             h5[x0][x1][x2][x3][x4] = 
f5(x0,x1,x2,x3,x4);
 
  107   const double x0 = +0.15;
 
  108   const double x1 = -0.25;
 
  109   const double x2 =  0.25;
 
  110   const double x3 = -0.15;
 
  114   JTimer timer(
"4D interpolator");
 
  118   for (
int i = 0; i != 100; ++i) {
 
  119     copy(h5(x0,x1,x2,x3), 
g1);      
 
  127   JTimer t1(
"1D interpolator");
 
  128   JTimer t5(
"5D interpolator");
 
  142   for (
int i = 0; i != numberOfEvents; ++i) {
 
  144     for (
int __i = 0; __i != N; ++__i) {
 
  146       const double x4 = gRandom->Uniform(xmin, xmax);
 
  149       y[__i] = 
f5(x0,x1,x2,x3,x4);
 
  154     for (
int __i = 0; __i != N; ++__i) {
 
  162     for (
int __i = 0; __i != N; ++__i) {
 
  163       w[__i] = g5(x0,x1,x2,x3,x[__i]);
 
  168     for (
int __i = 0; __i != N; ++__i) {
 
  169       Q1.
put(
v[__i] - y[__i]);
 
  170       Q5.
put(
w[__i] - y[__i]);
 
  177     Q5.
print(cout, 
false);
 
  179     t1.
print(cout, 1.0 / (N * numberOfEvents), 
nano_t);
 
  180     t5.
print(cout, 1.0 / (N * numberOfEvents), 
nano_t);