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;
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);
123 timer.print(cout, 1.0/100,
micro_t);
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);
183 ASSERT(fabs(Q1.getMean() - Q5.getMean()) <= precision);
184 ASSERT(fabs(Q1.getSTDev() - Q5.getSTDev()) <= precision);
Utility class to parse command line options.
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
#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.
int numberOfBins
number of bins for average CDF integral of optical module
Double_t g1(const Double_t x)
Function.