19 #pragma warning(disable:1572)
21 #pragma warning(disable:2259)
28 (
const Genfun::AbsFunction&
function ,
37 if ( 1 !=
function.dimensionality() )
39 (
"GaudiMath::Integral: illegal function dimension" ,
42 const Genfun::AbsFunction& one =
45 const Genfun::AbsFunction& cross =
46 Genfun::FunctionDirectProduct (&one , &
function ) ;
48 const Genfun::AbsFunction& result =
50 ( cross , 1 , a , b, type , rule , epsabs , epsrel , size ) ;
52 return result( Genfun::Argument(1) ) ;
56 (
const Genfun::AbsFunction&
function ,
59 const std::vector<double>& points ,
65 if ( 1 !=
function.dimensionality() )
67 (
"GaudiMath::Integral: illegal function dimension" ,
70 const Genfun::AbsFunction& one =
73 const Genfun::AbsFunction& cross =
74 Genfun::FunctionDirectProduct (&one , &
function ) ;
76 const Genfun::AbsFunction& result =
78 ( cross , 1 , a , b, points , epsabs , epsrel , size ) ;
80 return result( Genfun::Argument(1) ) ;
84 (
const Genfun::AbsFunction&
function ,
91 if ( 1 !=
function.dimensionality() )
93 (
"GaudiMath::Integral: illegal function dimension" ,
96 const Genfun::AbsFunction& one =
99 const Genfun::AbsFunction& cross =
100 Genfun::FunctionDirectProduct (&one , &
function ) ;
102 const Genfun::AbsFunction& result =
104 ( cross , 1 , a , b , epsabs , epsrel , size ) ;
106 return result( Genfun::Argument(1) ) ;
110 (
const Genfun::AbsFunction&
function ,
113 const double epsabs ,
114 const double epsrel ,
117 if ( 1 !=
function.dimensionality() )
119 (
"GaudiMath::Integral: illegal function dimension" ,
122 const Genfun::AbsFunction& one =
125 const Genfun::AbsFunction& cross =
126 Genfun::FunctionDirectProduct (&one , &
function ) ;
128 const Genfun::AbsFunction& result =
130 ( cross , 1 , a , b , epsabs , epsrel , size ) ;
132 return result( Genfun::Argument(1) ) ;
138 (
const Genfun::AbsFunction&
function ,
141 const double epsabs ,
142 const double epsrel ,
145 if ( 1 !=
function.dimensionality() )
147 (
"GaudiMath::Integral: illegal function dimension" ,
150 const Genfun::AbsFunction& one =
153 const Genfun::AbsFunction& cross =
154 Genfun::FunctionDirectProduct (&one , &
function ) ;
158 const Genfun::AbsFunction& result =
160 ( cross , 1 , static_cast<float>(epsabs) , static_cast<float>(epsrel) , size ) ;
162 return result( Genfun::Argument(1) ) ;
Define general base for Gaudi exception.
Type
type of integration (for finite limits)
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: