84   unsigned int  numberOfEvents;
 
   90   precision[
"spline"]  = JPrecision_t(1.0e-3,  1.0e-1,  1.0e-4);
 
   91   precision[
"hermite"] = JPrecision_t(1.0e-3,  1.0e-1,  1.0e-4);
 
   92   precision[
"grid"]    = JPrecision_t(1.0e-3,  1.0e-1,  1.0e-4);
 
   93   precision[
"polint"]  = JPrecision_t(1.0e-14, 1.0e-12, 1.0e-14);
 
   97     JParser<> zap(
"Example program to test 1D interpolation of a polynome.");
 
  107   catch(
const exception &error) {
 
  108     FATAL(error.what() << endl);
 
  114   JSplineFunction1S_t         spline;
 
  115   JHermiteSplineFunction1S_t  hermite;
 
  116   JGridSplineFunction1S_t     grid;
 
  117   JPolintFunction1H_t< N >    polint;
 
  118   JPolintFunction1D_t<N+1>    Polint;     
 
  120   const double xmin = -1.0;
 
  121   const double xmax = +1.0;  
 
  137   if (numberOfEvents != 0) {
 
  139     JABC Qspline (
"spline");
 
  140     JABC Qhermite(
"hermite");
 
  142     JABC Qpolint (
"polint");
 
  144     for (
unsigned int i = 0; i != numberOfEvents; ++i) {
 
  146       const double x  = gRandom->Uniform(
xmin, 
xmax);
 
  152       Qspline .f .put(y1 - spline (x).
f);
 
  153       Qhermite.f .put(y1 - hermite(x).f);
 
  154       Qgrid   .f .put(y1 - grid   (x).f);
 
  155       Qpolint .f .put(y1 - polint (x).f);
 
  157       Qspline .fp.put(fp - spline (x).fp);
 
  158       Qhermite.fp.put(fp - hermite(x).fp);
 
  159       Qgrid   .fp.put(fp - grid   (x).fp);
 
  160       Qpolint .fp.put(fp - polint (x).fp);
 
  162       Qspline .v .put(F1 - spline (x).
v);
 
  163       Qhermite.v .put(F1 - hermite(x).v);
 
  164       Qgrid   .v .put(F1 - grid   (x).v);
 
  165       Qpolint .v .put(F1 - Polint (x));
 
  170       cout << 
"RMS:         f          f'         F     " << endl;
 
  171       cout << 
"_________________________________________" << endl;
 
  174            << 
SCIENTIFIC(10,3) << Qspline .f .getSTDev() << 
' ' 
  175            << 
SCIENTIFIC(10,3) << Qspline .fp.getSTDev() << 
' ' 
  176            << 
SCIENTIFIC(10,3) << Qspline .v .getSTDev() << endl;
 
  179            << 
SCIENTIFIC(10,3) << Qhermite.f .getSTDev() << 
' ' 
  180            << 
SCIENTIFIC(10,3) << Qhermite.fp.getSTDev() << 
' ' 
  181            << 
SCIENTIFIC(10,3) << Qhermite.v .getSTDev() << endl;
 
  184            << 
SCIENTIFIC(10,3) << Qgrid   .f .getSTDev() << 
' ' 
  185            << 
SCIENTIFIC(10,3) << Qgrid   .fp.getSTDev() << 
' ' 
  186            << 
SCIENTIFIC(10,3) << Qgrid   .v .getSTDev() << endl;
 
  189            << 
SCIENTIFIC(10,3) << Qpolint .f .getSTDev() << 
' ' 
  190            << 
SCIENTIFIC(10,3) << Qpolint .fp.getSTDev() << 
' ' 
  191            << 
SCIENTIFIC(10,3) << Qpolint .v .getSTDev() << endl;
 
  194     ASSERT(Qspline .f .getSTDev() <= precision[
"spline"].f);
 
  195     ASSERT(Qspline .fp.getSTDev() <= precision[
"spline"].fp);
 
  196     ASSERT(Qspline .v .getSTDev() <= precision[
"spline"].v);
 
  198     ASSERT(Qhermite.f .getSTDev() <= precision[
"hermite"].f);
 
  199     ASSERT(Qhermite.fp.getSTDev() <= precision[
"hermite"].fp);
 
  200     ASSERT(Qhermite.v .getSTDev() <= precision[
"hermite"].v);
 
  202     ASSERT(Qgrid   .f .getSTDev() <= precision[
"grid"].f);
 
  203     ASSERT(Qgrid   .fp.getSTDev() <= precision[
"grid"].fp);
 
  204     ASSERT(Qgrid   .v .getSTDev() <= precision[
"grid"].v);
 
  206     ASSERT(Qpolint .f .getSTDev() <= precision[
"polint"].f);
 
  207     ASSERT(Qpolint .fp.getSTDev() <= precision[
"polint"].fp);
 
  208     ASSERT(Qpolint .v .getSTDev() <= precision[
"polint"].v);
 
  216       cout << 
"> " << flush;
 
  226           istringstream(buffer) >> 
x;
 
  228           cout << 
"f1          " << 
f1     (x)   << endl;
 
  229           cout << 
"spline      " << spline (x).f << endl;
 
  230           cout << 
"hermite     " << hermite(x).f << endl;
 
  231           cout << 
"grid spline " << grid   (x).f << endl;
 
  232           cout << 
"polynomial  " << polint (x).f << endl;
 
  234         catch(
const JException& exception) {
 
  235           cout << exception.what() << endl;
 
const JPolynome F1
Integral. 
 
Utility class to parse command line options. 
 
o $QUALITY_ROOT d $DEBUG!CHECK_EXIT_CODE JPlot1D f
 
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
const JPolynome f1(1.0, 2.0, 3.0)
Function. 
 
#define ASSERT(A,...)
Assert macro. 
 
double getDerivative(const double x) const 
Derivative value. 
 
#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 getIntegral(const double x) const 
Integral value. 
 
Auxiliary data structure for floating point format specification. 
 
int numberOfBins
number of bins for average CDF integral of optical module 
 
double getValue(const double x) const 
Function value.