All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
InterpTest.cpp
Go to the documentation of this file.
1 // ============================================================================
2 // Include files
3 // ============================================================================
4 // STD& STL
5 // ============================================================================
6 #include <cmath>
7 #include <iostream>
8 #include <cstdio>
10 #include "GaudiMath/GaudiMath.h"
11 
12 // ============================================================================
20 // ============================================================================
21 
22 int main()
23 {
24 
25  const GaudiMath::Function& mysin = GaudiMath::SimpleFun( sin );
26  const GaudiMath::Function& mycos = GaudiMath::SimpleFun( cos );
27 
28  std::vector<double> vctx ;
29  std::vector<double> vcty ;
30 
31  for ( int i = 0 ; i <= 20 ; ++i )
32  {
33  double x = i * 3.141592/20.0 ;
34  double y = mysin ( x ) ;
35  vctx.push_back ( x ) ;
36  vcty.push_back ( y ) ;
37  }
38 
40 
41  const GaudiMath::Constant minusOne (-1.0, 1);
42  const GaudiMath::Constant plusOne (1.0, 1);
43 
45  const GaudiMath::Spline i1(vctx, vcty, Cspline_Periodic);
46 
48  const GaudiMath::SplineDeriv i2(vctx, vcty, Cspline_Periodic);
49 
51  const GaudiMath::Function& i3 =
52  GaudiMath::SplineDeriv2(vctx, vcty, Cspline_Periodic) * minusOne;
53 
55  const GaudiMath::Function& i4 = plusOne +
56  GaudiMath::SplineInteg(vctx, vcty, Cspline_Periodic, 0.0) * minusOne;
57 
58  for ( int i = 0 ; i < 30 ; ++i ) {
59  double x = i * 3.141592/30.0 ;
60  printf( "x=%+7.1f; Sin-i1=%+14.9f; Cos-i2=%+14.9f; Sin-i3=%+14.9f; Cos-i4=%+14.9f;\n",
62  mysin ( x ) - i1( x ),
63  mycos ( x ) - i2( x ),
64  mysin ( x ) - i3( x ),
65  mycos ( x ) - i4( x ));
66  }
67 
68  exit(0);
69 
70 }
71 
Genfun::GaudiMathImplementation::GSLSplineDeriv2 SplineDeriv2
Definition: GaudiMath.h:44
constexpr double degree
Genfun::GaudiMathImplementation::SimpleFunction SimpleFun
Definition: GaudiMath.h:31
Fixed constant function.
Definition: Constant.h:31
int main()
Definition: InterpTest.cpp:22
Genfun::AbsFunction Function
Definition: GaudiMath.h:24
T push_back(T...args)
Genfun::GaudiMathImplementation::GSLSplineInteg SplineInteg
Definition: GaudiMath.h:46