18 # pragma warning( disable : 1572 ) 20 # pragma warning( disable : 2259 ) 25 double Integral(
const Genfun::AbsFunction&
function,
const double a,
const double b,
27 const double epsabs,
const double epsrel,
const size_t size ) {
28 if ( 1 !=
function.dimensionality() ) {
34 const Genfun::AbsFunction& cross = Genfun::FunctionDirectProduct( &one, &
function );
36 const Genfun::AbsFunction& result =
39 return result( Genfun::Argument( 1 ) );
42 double Integral(
const Genfun::AbsFunction&
function,
const double a,
const double b,
45 if ( 1 !=
function.dimensionality() ) {
51 const Genfun::AbsFunction& cross = Genfun::FunctionDirectProduct( &one, &
function );
53 const Genfun::AbsFunction& result =
56 return result( Genfun::Argument( 1 ) );
60 const double epsabs,
const double epsrel,
const size_t size ) {
61 if ( 1 !=
function.dimensionality() ) {
67 const Genfun::AbsFunction& cross = Genfun::FunctionDirectProduct( &one, &
function );
69 const Genfun::AbsFunction& result =
72 return result( Genfun::Argument( 1 ) );
76 const double epsabs,
const double epsrel,
const size_t size ) {
77 if ( 1 !=
function.dimensionality() ) {
83 const Genfun::AbsFunction& cross = Genfun::FunctionDirectProduct( &one, &
function );
85 const Genfun::AbsFunction& result =
88 return result( Genfun::Argument( 1 ) );
94 if ( 1 !=
function.dimensionality() ) {
100 const Genfun::AbsFunction& cross = Genfun::FunctionDirectProduct( &one, &
function );
105 cross, 1, static_cast<float>( epsabs ), static_cast<float>( epsrel ), size );
107 return result( Genfun::Argument( 1 ) );
Define general base for Gaudi exception.
constexpr auto size(const C &c) noexcept(noexcept(c.size())) -> decltype(c.size())
Type
type of integration (for finite limits)
constexpr static const auto FAILURE
GaudiMath.h GaudiMath/GaudiMath.h.
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)
KronrodRule
integration rule
Genfun::GaudiMathImplementation::Constant Constant
This class allows the numerical evaluation of the following functions: