The Gaudi Framework  v30r3 (a5ef0a68)
DerivativeTest.cpp
Go to the documentation of this file.
1 // ============================================================================
2 // Include files
3 // ============================================================================
4 // STD & STL
5 // ============================================================================
6 #include <cmath>
7 #include <cstdio>
8 #include <iostream>
9 // ============================================================================
10 // Gaudi
11 // ============================================================================
13 #include "GaudiMath/GaudiMath.h"
14 // ============================================================================
15 // CLHEP
16 // ============================================================================
17 #include "CLHEP/GenericFunctions/Sin.hh"
18 // ============================================================================
19 // Handle CLHEP 2.0.x move to CLHEP namespace
20 namespace CLHEP
21 {
22 }
23 using namespace CLHEP;
24 
25 // ============================================================================
33 // ============================================================================
34 
35 int main()
36 {
37 
38  std::cout << " Test for numerical differentiation of Genfun::Sin(x) " << std::endl;
39 
40  const GaudiMath::Function& mysin = Genfun::Sin();
41  const GaudiMath::Derivative& prim1 = GaudiMath::Derivative( mysin, 0 );
42  const GaudiMath::Function& prim = prim1;
43 
44  for ( double x = -90 * Gaudi::Units::degree; x <= 180 * Gaudi::Units::degree; x += 10 * Gaudi::Units::degree ) {
45  double value = prim( x );
46  double error = prim1.error();
47  printf( " x=%8.3f deg; Sin'=%+.19f; ActualErr=%+.19f; EstimatedErr=%+.19f\n", x / Gaudi::Units::degree, value,
48  value - cos( x ), error );
49  }
50 }
51 
52 // ============================================================================
53 // The END
54 // ============================================================================
constexpr double degree
double error() const
the absolute error estimate for the last call
T endl(T...args)
Genfun::AbsFunction Function
Definition: GaudiMath.h:24
Genfun::GaudiMathImplementation::NumericalDerivative Derivative
Definition: GaudiMath.h:27
int main()
Numerical derivative (using GSL adaptive numerical differentiation)