54 JParser<> zap(
"Example program to test multi-dimensional interpolation.");
63 catch(
const exception &error) {
64 FATAL(error.what() << endl);
68 const double xmin = -1.0;
69 const double xmax = +1.0;
70 const double dx = (xmax - xmin) / (numberOfBins - 1);
73 typedef JGridPolint3Function1D_t JFunction1D_t;
75 typedef JMAPLIST<JPolint3FunctionalGridMap,
76 JPolint3FunctionalGridMap>::maplist JMaplist_t;
78 typedef JMultiFunction<JFunction1D_t, JMaplist_t> JMultiFunction_t;
84 for (
double x = xmin; x < xmax + 0.5*dx; x += dx) {
85 for (
double y = xmin; y < xmax + 0.5*dx; y += dx) {
86 for (
double z = xmin; z < xmax + 0.5*dx; z += dx) {
87 g3[x][y][z] =
f3(x,y,z);
94 g3.setExceptionHandler(
new JFunction1D_t::JDefaultResult(
JMATH::zero));
97 if (numberOfEvents > 0) {
103 for (
int i = 0; i != numberOfEvents; ++i) {
105 const double x = gRandom->Uniform(xmin, xmax);
106 const double y = gRandom->Uniform(xmin, xmax);
107 const double z = gRandom->Uniform(xmin, xmax);
109 const double v =
f3(x,y,z);
113 const double w = g3(x,y,z);
124 timer.print(cout, 1.0 / numberOfEvents,
micro_t);
127 ASSERT(Q.getMean() <= precision);
128 ASSERT(Q.getSTDev() <= precision);
134 cout <<
"> " << flush;
138 if (
getline(cin, buffer) && !buffer.empty()) {
142 istringstream(buffer) >> x >> y >> z;
145 cout <<
f3(x,y,z) <<
' ' << g3(x,y,z) << endl;
147 catch(
const JException& exception) {
148 cout << exception << endl;
Utility class to parse command line options.
static const JZero zero
Function object to assign zero value.
#define ASSERT(A,...)
Assert macro.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line.
double f3(const double x, const double y, const double z)
3D function.