33   inline double f3(
const double x, 
const double y, 
const double z)
 
   35     return fx(
x) * fy(
y) * fz(z);
 
   38   template<
class JKey_t, 
class JValue_t, 
class JDistance_t>
 
   40     public JPolintMap<N, JKey_t, JValue_t, JGridMap,
 
   41                       JResultHesse<typename JResultType<JValue_t>::result_type>,
 
   53 int main(
int argc, 
char **argv)
 
   65     JParser<> zap(
"Example program to test multi-dimensional interpolation.");
 
   77   catch(
const exception &error) {
 
   78     FATAL(error.what() << endl);
 
   82   const double xmin = -1.0;
 
   83   const double xmax = +1.0;
 
   91                    JMap_t>::maplist                         JMaplist_t;
 
   94   typedef JMultiFunction_t::result_type                     result_type;
 
  100     for (
double y = 
xmin; 
y < 
xmax + 0.5*dx; 
y += dx) {
 
  101       for (
double z = 
xmin; z < 
xmax + 0.5*dx; z += dx) {
 
  111   if (numberOfEvents > 0) {
 
  116     for (
int i = 0; i != numberOfEvents; ++i) {
 
  118       const double x  = gRandom->Uniform(
xmin, 
xmax);
 
  119       const double y  = gRandom->Uniform(
xmin, 
xmax);
 
  120       const double z  = gRandom->Uniform(
xmin, 
xmax);
 
  122       const result_type 
result = g3(
x,
y,z);
 
  124       const double v  = 
f3(
x,
y,z);
 
  129       H[0][0].put(fx.getDerivative().getDerivative(
x) * fy(
y) * fz(z)  -  
result.fpp.f.f);
 
  130       H[1][0].put(fx.getDerivative(
x) * fy.getDerivative(
y) * fz(z)    -  
result.fp.fp.f);
 
  131       H[2][0].put(fx.getDerivative(
x) * fy(
y) * fz.getDerivative(z)    -  
result.fp.f.fp);
 
  133       H[1][1].put(fx(
x) * fy.getDerivative().getDerivative(
y) * fz(z)  -  
result.f.fpp.f);
 
  134       H[2][1].put(fx(
x) * fy.getDerivative(
y) * fz.getDerivative(z)    -  
result.f.fp.fp);
 
  136       H[2][2].put(fx(
x) * fy(
y) * fz.getDerivative().getDerivative(z)  -  
result.f.f.fpp);
 
  143       cout << 
"Hessian matrix" << endl;
 
  145       for (
int i = 0; i != N; ++i) {
 
  146         for (
int j = 0; 
j <= i; ++
j) {
 
  152       for (
int i = 0; i != N; ++i) {
 
  153         for (
int j = 0; 
j <= i; ++
j) {
 
  163     for (
int i = 0; i != N; ++i) {
 
  164       for (
int j = 0; 
j <= i; ++
j) {
 
  166         ASSERT(
H[i][
j].getSTDev() <= precision);
 
  174       cout << 
"> " << flush;
 
  178       if (
getline(cin, buffer) && !buffer.empty()) {
 
  182         istringstream(buffer) >> 
x >> 
y >> z;
 
  188           cout << exception << endl;
 
double getMean(vector< double > &v)
get mean of vector content
 
The elements in a collection are sorted according to their abscissa values and a given distance opera...
 
General purpose messaging.
 
#define ASSERT(A,...)
Assert macro.
 
Utility class to parse command line options.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
double f3(const double x, const double y, const double z)
3D function.
 
I/O formatting auxiliaries.
 
int main(int argc, char **argv)
 
int numberOfBins
number of bins for average CDF integral of optical module
 
Utility class to parse command line options.
 
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line.
 
const parameter_list< JPolynome< ID_t, 0 > > JPolynome< ID_t, 0 >::parameters & JPolynome
Set parameters.
 
static const double H
Planck constant [eV s].
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Recursive template class for polynomial function.
 
Auxiliary data structure for floating point format specification.