| # Gaudi Framework, version v21r10p1 |

Home |  | Generated: 29 Jul 2010

# GaudiMath Namespace Reference

GaudiMath.h GaudiMath/GaudiMath.h. More...

## Namespaces
namespace | Integration
namespace | Interpolation
## Typedefs
typedef Genfun::GaudiMathImplementation::AdapterIFunction | AIDAFunction
typedef Genfun::GaudiMathImplementation::Adapter2DoubleFunction | Function2D
typedef Genfun::GaudiMathImplementation::Adapter3DoubleFunction | Function3D
typedef Genfun::GaudiMathImplementation::SimpleFunction | SimpleFunction
typedef Genfun::GaudiMathImplementation::GSLFunctionWithMode | GSLFunctionWithMode
typedef Genfun::GaudiMathImplementation::GSLFunctionWithError | GSLFunctionWithError
typedef Genfun::GaudiMathImplementation::GSLFunctionWithModeAndError | GSLFunctionWithModeAndError
typedef Genfun::AbsFunction | Function
typedef Genfun::GaudiMathImplementation::Constant | Constant
typedef Genfun::GaudiMathImplementation::NumericalDerivative | Derivative
typedef Genfun::GaudiMathImplementation::SimpleFunction | SimpleFun
typedef Genfun::GaudiMathImplementation::NumericalIndefiniteIntegral | IndIntegral
typedef Genfun::GaudiMathImplementation::NumericalDefiniteIntegral | DefIntegral
typedef Genfun::GaudiMathImplementation::SplineBase | SimpleSpline
typedef Genfun::GaudiMathImplementation::GSLSpline | Spline
typedef Genfun::GaudiMathImplementation::GSLSplineDeriv | SplineDeriv
typedef Genfun::GaudiMathImplementation::GSLSplineDeriv2 | SplineDeriv2
typedef Genfun::GaudiMathImplementation::GSLSplineInteg | SplineInteg
## Functions
GAUDI_API AIDAFunction | adapter (const AIDA::IFunction &function)
GAUDI_API Function2D | adapter (Function2D::Function function)
GAUDI_API Function3D | adapter (Function3D::Function function)
GAUDI_API SimpleFunction | adapter (SimpleFunction::Function1 function)
GAUDI_API SimpleFunction | adapter (const size_t dim, SimpleFunction::Function2 function)
GAUDI_API SimpleFunction | adapter (const size_t dim, SimpleFunction::Function3 function)
GAUDI_API GSLFunctionWithMode | adapter (GSLFunctionWithMode::Function function, const gsl_mode_t &mode)
GAUDI_API GSLFunctionWithError | adapter (GSLFunctionWithError::Function function)
GAUDI_API GSLFunctionWithModeAndError | adapter (GSLFunctionWithModeAndError::Function function, const gsl_mode_t &mode)
GAUDI_API double | Integral (const Genfun::AbsFunction &function, const double a, const double b, const GaudiMath::Integration::Type type=GaudiMath::Integration::Adaptive, const GaudiMath::Integration::KronrodRule rule=GaudiMath::Integration::Default, const double epsabs=1.e-10, const double epsrel=1.e-7, const size_t size=1000)
GAUDI_API double | Integral (const Genfun::AbsFunction &function, const double a, const double b, const std::vector< double > &points, const double epsabs=1e-9, const double epsrel=1.e-6, const size_t size=1000)
GAUDI_API double | Integral (const Genfun::AbsFunction &function, const double a, const GaudiMath::Integration::Inf b=GaudiMath::Integration::Infinity, const double epsabs=1e-9, const double epsrel=1.e-6, const size_t size=1000)
GAUDI_API double | Integral (const Genfun::AbsFunction &function, const GaudiMath::Integration::Inf a, const double b, const double epsabs=1e-9, const double epsrel=1.e-6, const size_t size=1000)
GAUDI_API double | Integral (const Genfun::AbsFunction &function, const GaudiMath::Integration::Inf a=GaudiMath::Integration::Infinity, const GaudiMath::Integration::Inf b=GaudiMath::Integration::Infinity, const double epsabs=1e-9, const double epsrel=1.e-6, const size_t size=1000)

## Detailed Description

GaudiMath.h GaudiMath/GaudiMath.h.

Author:
  Vanya BELYAEV Ivan.Belyaev@itep.ru

Date:
  2003-08-31

## Typedef Documentation

typedef Genfun::GaudiMathImplementation::AdapterIFunction GaudiMath::AIDAFunction

Definition at line 18 of file Adapters.h.

typedef Genfun::GaudiMathImplementation::Constant GaudiMath::Constant

Definition at line 29 of file GaudiMath.h.

typedef Genfun::GaudiMathImplementation::NumericalDefiniteIntegral GaudiMath::DefIntegral

Definition at line 37 of file GaudiMath.h.

typedef Genfun::GaudiMathImplementation::NumericalDerivative GaudiMath::Derivative

Definition at line 31 of file GaudiMath.h.

typedef Genfun::AbsFunction GaudiMath::Function

Definition at line 26 of file GaudiMath.h.

typedef Genfun::GaudiMathImplementation::Adapter2DoubleFunction GaudiMath::Function2D

Definition at line 20 of file Adapters.h.

typedef Genfun::GaudiMathImplementation::Adapter3DoubleFunction GaudiMath::Function3D

Definition at line 22 of file Adapters.h.

typedef Genfun::GaudiMathImplementation::GSLFunctionWithError GaudiMath::GSLFunctionWithError

Definition at line 29 of file Adapters.h.

typedef Genfun::GaudiMathImplementation::GSLFunctionWithMode GaudiMath::GSLFunctionWithMode

Definition at line 27 of file Adapters.h.

typedef Genfun::GaudiMathImplementation::GSLFunctionWithModeAndError GaudiMath::GSLFunctionWithModeAndError

Definition at line 31 of file Adapters.h.

typedef Genfun::GaudiMathImplementation::NumericalIndefiniteIntegral GaudiMath::IndIntegral

Definition at line 35 of file GaudiMath.h.

typedef Genfun::GaudiMathImplementation::SimpleFunction GaudiMath::SimpleFun

Definition at line 33 of file GaudiMath.h.

typedef Genfun::GaudiMathImplementation::SimpleFunction GaudiMath::SimpleFunction

Definition at line 24 of file Adapters.h.

typedef Genfun::GaudiMathImplementation::SplineBase GaudiMath::SimpleSpline

Definition at line 40 of file GaudiMath.h.

typedef Genfun::GaudiMathImplementation::GSLSpline GaudiMath::Spline

Definition at line 42 of file GaudiMath.h.

typedef Genfun::GaudiMathImplementation::GSLSplineDeriv GaudiMath::SplineDeriv

Definition at line 44 of file GaudiMath.h.

typedef Genfun::GaudiMathImplementation::GSLSplineDeriv2 GaudiMath::SplineDeriv2

Definition at line 46 of file GaudiMath.h.

typedef Genfun::GaudiMathImplementation::GSLSplineInteg GaudiMath::SplineInteg

Definition at line 48 of file GaudiMath.h.

## Function Documentation

GSLFunctionWithModeAndError GaudiMath::adapter | ( | GSLFunctionWithModeAndError::Function | function,
|  | const gsl_mode_t & | mode |
| ) |  |  |

Definition at line 63 of file Adapters.cpp.

    00065   { return GSLFunctionWithModeAndError ( function , mode ) ; }

GSLFunctionWithError GaudiMath::adapter | ( | GSLFunctionWithError::Function | function | ) |

Definition at line 59 of file Adapters.cpp.

    00060   { return GSLFunctionWithError ( function ) ; }

GSLFunctionWithMode GaudiMath::adapter | ( | GSLFunctionWithMode::Function | function,
|  | const gsl_mode_t & | mode |
| ) |  |  |

Definition at line 54 of file Adapters.cpp.

    00056   { return GSLFunctionWithMode  ( function , mode ) ; }

SimpleFunction GaudiMath::adapter | ( | const size_t | dim,
|  | SimpleFunction::Function3 | function |
| ) |  |  |

Definition at line 49 of file Adapters.cpp.

    00051   { return SimpleFunction ( function , dim ) ; }

SimpleFunction GaudiMath::adapter | ( | const size_t | dim,
|  | SimpleFunction::Function2 | function |
| ) |  |  |

Definition at line 44 of file Adapters.cpp.

    00046   { return SimpleFunction ( function , dim ) ; }

SimpleFunction GaudiMath::adapter | ( | SimpleFunction::Function1 | function | ) |

Definition at line 40 of file Adapters.cpp.

    00041   { return SimpleFunction ( function ) ; }

Function3D GaudiMath::adapter | ( | Function3D::Function | function | ) |

Definition at line 36 of file Adapters.cpp.

    00037   { return Function3D ( function ) ; }

Function2D GaudiMath::adapter | ( | Function2D::Function | function | ) |

Definition at line 32 of file Adapters.cpp.

    00033   { return Function2D ( function ) ; }

AIDAFunction GaudiMath::adapter | ( | const AIDA::IFunction & | function | ) |

Definition at line 28 of file Adapters.cpp.

    00029   { return AIDAFunction( function ) ; }

double GaudiMath::Integral | ( | const Genfun::AbsFunction & | function,
|  | const GaudiMath::Integration::Inf | a = `GaudiMath::Integration::Infinity`,
|  | const GaudiMath::Integration::Inf | b = `GaudiMath::Integration::Infinity`,
|  | const double | epsabs = `1e-9`,
|  | const double | epsrel = `1.e-6`,
|  | const size_t | size = `1000` |
| ) |  |  |

Definition at line 136 of file Integral.cpp.

    00142   {
    00143     if ( 1 != function.dimensionality() )
    00144       { throw GaudiException
    00145           ("GaudiMath::Integral: illegal function dimension" ,
    00146            "*GaudiMath*" , StatusCode::FAILURE ); }
    00147
    00148     const Genfun::AbsFunction& one   =
    00149       Genfun::GaudiMathImplementation::Constant ( 1.0 , 1 ) ;
    00150
    00151     const Genfun::AbsFunction& cross =
    00152       Genfun::FunctionDirectProduct (&one , &function ) ;
    00153
    00154     // FIXME: (MCl) the static_cast below are needed to avoid warnings and to
    00155     // match the signature in NumericalDefiniteIntegral.h (around line 288).
    00156     const Genfun::AbsFunction& result =
    00157       Genfun::GaudiMathImplementation::NumericalDefiniteIntegral
    00158       ( cross , 1 , static_cast<float>(epsabs) , static_cast<float>(epsrel) , size ) ;
    00159
    00160     return result( Genfun::Argument(1) ) ;
    00161   }

double GaudiMath::Integral | ( | const Genfun::AbsFunction & | function,
|  | const GaudiMath::Integration::Inf | a,
|  | const double | b,
|  | const double | epsabs = `1e-9`,
|  | const double | epsrel = `1.e-6`,
|  | const size_t | size = `1000` |
| ) |  |  |

Definition at line 108 of file Integral.cpp.

    00114   {
    00115     if ( 1 != function.dimensionality() )
    00116       { throw GaudiException
    00117           ("GaudiMath::Integral: illegal function dimension" ,
    00118            "*GaudiMath*" , StatusCode::FAILURE ); }
    00119
    00120     const Genfun::AbsFunction& one   =
    00121       Genfun::GaudiMathImplementation::Constant ( 1.0 , 1 ) ;
    00122
    00123     const Genfun::AbsFunction& cross =
    00124       Genfun::FunctionDirectProduct (&one , &function ) ;
    00125
    00126     const Genfun::AbsFunction& result =
    00127       Genfun::GaudiMathImplementation::NumericalDefiniteIntegral
    00128       ( cross , 1 , a , b , epsabs , epsrel , size ) ;
    00129
    00130     return result( Genfun::Argument(1) ) ;
    00131   }

double GaudiMath::Integral | ( | const Genfun::AbsFunction & | function,
|  | const double | a,
|  | const GaudiMath::Integration::Inf | b = `GaudiMath::Integration::Infinity`,
|  | const double | epsabs = `1e-9`,
|  | const double | epsrel = `1.e-6`,
|  | const size_t | size = `1000` |
| ) |  |  |

Definition at line 82 of file Integral.cpp.

    00088   {
    00089     if ( 1 != function.dimensionality() )
    00090       { throw GaudiException
    00091           ("GaudiMath::Integral: illegal function dimension" ,
    00092            "*GaudiMath*" , StatusCode::FAILURE ); }
    00093
    00094     const Genfun::AbsFunction& one   =
    00095       Genfun::GaudiMathImplementation::Constant ( 1.0 , 1 ) ;
    00096
    00097     const Genfun::AbsFunction& cross =
    00098       Genfun::FunctionDirectProduct (&one , &function ) ;
    00099
    00100     const Genfun::AbsFunction& result =
    00101       Genfun::GaudiMathImplementation::NumericalDefiniteIntegral
    00102       ( cross , 1 , a , b , epsabs , epsrel , size ) ;
    00103
    00104     return result( Genfun::Argument(1) ) ;
    00105   }

double GaudiMath::Integral | ( | const Genfun::AbsFunction & | function,
|  | const double | a,
|  | const double | b,
|  | const std::vector< double > & | points,
|  | const double | epsabs = `1e-9`,
|  | const double | epsrel = `1.e-6`,
|  | const size_t | size = `1000` |
| ) |  |  |

Definition at line 54 of file Integral.cpp.

    00061   {
    00062
    00063   if ( 1 != function.dimensionality() )
    00064       { throw GaudiException
    00065           ("GaudiMath::Integral: illegal function dimension" ,
    00066            "*GaudiMath*" , StatusCode::FAILURE ); }
    00067
    00068     const Genfun::AbsFunction& one   =
    00069       Genfun::GaudiMathImplementation::Constant ( 1.0 , 1 ) ;
    00070
    00071     const Genfun::AbsFunction& cross =
    00072       Genfun::FunctionDirectProduct (&one , &function ) ;
    00073
    00074     const Genfun::AbsFunction& result =
    00075       Genfun::GaudiMathImplementation::NumericalDefiniteIntegral
    00076       ( cross , 1 , a , b, points , epsabs , epsrel , size ) ;
    00077
    00078     return result( Genfun::Argument(1) ) ;
    00079   }

double GaudiMath::Integral | ( | const Genfun::AbsFunction & | function,
|  | const double | a,
|  | const double | b,
|  | const GaudiMath::Integration::Type | type = `GaudiMath::Integration::Adaptive`,
|  | const GaudiMath::Integration::KronrodRule | rule = `GaudiMath::Integration::Default`,
|  | const double | epsabs = `1.e-10`,
|  | const double | epsrel = `1.e-7`,
|  | const size_t | size = `1000` |
| ) |  |  |

Definition at line 26 of file Integral.cpp.

    00034   {
    00035     if ( 1 != function.dimensionality() )
    00036       { throw GaudiException
    00037           ("GaudiMath::Integral: illegal function dimension" ,
    00038            "*GaudiMath*" , StatusCode::FAILURE ); }
    00039
    00040     const Genfun::AbsFunction& one   =
    00041       Genfun::GaudiMathImplementation::Constant ( 1.0 , 1 ) ;
    00042
    00043     const Genfun::AbsFunction& cross =
    00044       Genfun::FunctionDirectProduct (&one , &function ) ;
    00045
    00046     const Genfun::AbsFunction& result =
    00047       Genfun::GaudiMathImplementation::NumericalDefiniteIntegral
    00048       ( cross , 1 , a , b, type , rule , epsabs , epsrel , size ) ;
    00049
    00050     return result( Genfun::Argument(1) ) ;
    00051   }