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.