All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
InterpTest.cpp File Reference

Test file for the interpolations. More...

#include <cmath>
#include <iostream>
#include <cstdio>
#include "GaudiKernel/SystemOfUnits.h"
#include "GaudiMath/GaudiMath.h"
Include dependency graph for InterpTest.cpp:

Go to the source code of this file.

Functions

int main ()
 

Detailed Description

Test file for the interpolations.

Date
2003-08-31
Author
Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@i.nosp@m.tep..nosp@m.ru

Definition in file InterpTest.cpp.

Function Documentation

int main ( )

make interpolation of "sin", 10 points from 0 to pi

the first derivative

the second derivative. multiplied by -1

-1*integral(0.0)

Definition at line 23 of file InterpTest.cpp.

{
std::vector<double> vctx ;
std::vector<double> vcty ;
for ( int i = 0 ; i < 20 ; ++i )
{
double x = i * 3.141592/20.0 ;
double y = mysin ( x ) ;
vctx.push_back ( x ) ;
vcty.push_back ( y ) ;
}
const GaudiMath::Constant minusOne (-1.0, 1);
const GaudiMath::Constant plusOne (1.0, 1);
const GaudiMath::Spline i1(vctx, vcty, Cspline_Periodic);
const GaudiMath::Function& i3 =
GaudiMath::SplineDeriv2(vctx, vcty, Cspline_Periodic) * minusOne;
const GaudiMath::Function& i4 = plusOne +
GaudiMath::SplineInteg(vctx, vcty, Cspline_Periodic, 0.0) * minusOne;
for ( int i = -10 ; i < 30 ; ++i ) {
double x = i * 3.141592/30.0 ;
printf( "x=%+7.1f; Sin-i1=%+14.9f; Cos-i2=%+14.9f; Sin-i3=%+14.9f; Cos-i4=%+14.9f;\n",
x / Gaudi::Units::degree,
mysin ( x ) - i1( x ),
mycos ( x ) - i2( x ),
mysin ( x ) - i3( x ),
mycos ( x ) - i4( x ));
}
exit(0);
}