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;
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);
Various implementations of functional maps.
General purpose messaging.
#define ASSERT(A,...)
Assert macro.
int main(int argc, char **argv)
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
double f5(const double x0, const double x1, const double x2, const double x3, const double x4)
5D function.
Double_t g1(const Double_t x)
Function.
int numberOfBins
number of bins for average CDF integral of optical module
Auxiliary class for CPU timing and usage.
void print(std::ostream &out, const JScale_t scale=milli_t) const
Print timer data.
Utility class to parse command line options.
void copy(const Head &from, JHead &to)
Copy header from from to to.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).