|
| | NumericalIndefiniteIntegral (const AbsFunction &function, const size_t index, const double a, const GaudiMath::Integration::Limit limit=GaudiMath::Integration::VariableHighLimit, const GaudiMath::Integration::Type type=GaudiMath::Integration::Adaptive, const GaudiMath::Integration::KronrodRule rule=GaudiMath::Integration::Default, const double epsabs=1e-10, const double epsrel=1.e-7, const size_t size=1000) |
| | From CLHEP/GenericFunctions. More...
|
| |
| | NumericalIndefiniteIntegral (const AbsFunction &function, const size_t index, const double a, const Points &points, const GaudiMath::Integration::Limit limit=GaudiMath::Integration::VariableHighLimit, const double epsabs=1e-9, const double epsrel=1.e-6, const size_t size=1000) |
| | standard constructor More...
|
| |
| | NumericalIndefiniteIntegral (const AbsFunction &function, const size_t index, const GaudiMath::Integration::Limit limit=GaudiMath::Integration::VariableHighLimit, const double epsabs=1e-9, const double epsrel=1.e-6, const size_t size=1000) |
| | standard constructor The function, created with this constructor evaluates following indefinite integral: More...
|
| |
| | NumericalIndefiniteIntegral (const NumericalIndefiniteIntegral &) |
| | copy constructor More...
|
| |
| virtual | ~NumericalIndefiniteIntegral () |
| | destructor More...
|
| |
| virtual unsigned int | dimensionality () const |
| | dimensionality of the problem More...
|
| |
| virtual double | operator() (double argument) const |
| | Function value. More...
|
| |
| virtual double | operator() (const Argument &argument) const |
| | Function value. More...
|
| |
| virtual bool | hasAnalyticDerivative () const |
| | Does this function have an analytic derivative? More...
|
| |
| virtual Genfun::Derivative | partial (unsigned int index) const |
| | Derivatives. More...
|
| |
| const AbsFunction & | function () const |
| | accessor to the function itself More...
|
| |
| double | a () const |
| | integration limit More...
|
| |
| const Points & | points () const |
| | known singularities More...
|
| |
| double | epsabs () const |
| | absolute precision More...
|
| |
| double | epsrel () const |
| | relatiove precision More...
|
| |
| double | result () const |
| | previous result More...
|
| |
| double | error () const |
| | evaluate of previous error More...
|
| |
| size_t | size () const |
| |
| GaudiMath::Integration::Limit | limit () const |
| | integration limit More...
|
| |
| GaudiMath::Integration::Type | type () const |
| | integration type More...
|
| |
| GaudiMath::Integration::Category | category () const |
| | integration category More...
|
| |
| GaudiMath::Integration::KronrodRule | rule () const |
| | integration rule More...
|
| |
| | NumericalIndefiniteIntegral (const AbsFunction &function, const size_t index, const double a, const GaudiMath::Integration::Limit limit=GaudiMath::Integration::VariableHighLimit, const GaudiMath::Integration::Type type=GaudiMath::Integration::Adaptive, const GaudiMath::Integration::KronrodRule rule=GaudiMath::Integration::Default, const double epsabs=1e-10, const double epsrel=1.e-7, const size_t size=1000) |
| | From CLHEP/GenericFunctions. More...
|
| |
| | NumericalIndefiniteIntegral (const AbsFunction &function, const size_t index, const double a, const Points &points, const GaudiMath::Integration::Limit limit=GaudiMath::Integration::VariableHighLimit, const double epsabs=1e-9, const double epsrel=1.e-6, const size_t size=1000) |
| | standard constructor More...
|
| |
| | NumericalIndefiniteIntegral (const AbsFunction &function, const size_t index, const GaudiMath::Integration::Limit limit=GaudiMath::Integration::VariableHighLimit, const double epsabs=1e-9, const double epsrel=1.e-6, const size_t size=1000) |
| | standard constructor The function, created with this constructor evaluates following indefinite integral: More...
|
| |
| | NumericalIndefiniteIntegral (const NumericalIndefiniteIntegral &) |
| | copy constructor More...
|
| |
| virtual | ~NumericalIndefiniteIntegral () |
| | destructor More...
|
| |
| virtual unsigned int | dimensionality () const |
| | dimensionality of the problem More...
|
| |
| virtual double | operator() (double argument) const |
| | Function value. More...
|
| |
| virtual double | operator() (const Argument &argument) const |
| | Function value. More...
|
| |
| virtual bool | hasAnalyticDerivative () const |
| | Does this function have an analytic derivative? More...
|
| |
| virtual Genfun::Derivative | partial (unsigned int index) const |
| | Derivatives. More...
|
| |
| const AbsFunction & | function () const |
| | accessor to the function itself More...
|
| |
| double | a () const |
| | integration limit More...
|
| |
| const Points & | points () const |
| | known singularities More...
|
| |
| double | epsabs () const |
| | absolute precision More...
|
| |
| double | epsrel () const |
| | relatiove precision More...
|
| |
| double | result () const |
| | previous result More...
|
| |
| double | error () const |
| | evaluate of previous error More...
|
| |
| size_t | size () const |
| |
| GaudiMath::Integration::Limit | limit () const |
| | integration limit More...
|
| |
| GaudiMath::Integration::Type | type () const |
| | integration type More...
|
| |
| GaudiMath::Integration::Category | category () const |
| | integration category More...
|
| |
| GaudiMath::Integration::KronrodRule | rule () const |
| | integration rule More...
|
| |
The simple class for numerical integrations.
It allows to evaluate following indefinite integrals:
\[ {\mathcal{F}}_i \left(x_1, \dots , x_{i-1}, x_i , x_{i+1}, \dots , x_n \right) = \int\limits_{a}^{x_i} f \left(x_1, \dots , x_{i-1}, \hat{x}_i , x_{i+1}, \dots , x_n \right) \, {\mathrm{d}} \hat{x}_i \]
\[ {\mathcal{F}}_i \left(x_1, \dots , x_{i-1}, x_i , x_{i+1}, \dots , x_n \right) = \int\limits_{x_i}^{a} f \left(x_1, \dots , x_{i-1}, \hat{x}_i , x_{i+1}, \dots , x_n \right) \, {\mathrm{d}} \hat{x}_i \]
\[ {\mathcal{F}}_i \left(x_1, \dots , x_{i-1}, x_i , x_{i+1}, \dots , x_n \right) = \int\limits_{-\infty}^{x_i} f \left(x_1, \dots , x_{i-1}, \hat{x}_i , x_{i+1}, \dots , x_n \right) \, {\mathrm{d}} \hat{x}_i \]
\[ {\mathcal{F}}_i \left(x_1, \dots , x_{i-1}, x_i , x_{i+1}, \dots , x_n \right) = \int\limits_{x_i}^{+\infty} f \left(x_1, \dots , x_{i-1}, \hat{x}_i , x_{i+1}, \dots , x_n \right) \, {\mathrm{d}} \hat{x}_i \]
- Author
- Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@i.nosp@m.tep..nosp@m.ru
- Date
- 2003-08-31
Definition at line 76 of file NumericalIndefiniteIntegral.h.
From CLHEP/GenericFunctions.
from CLHEP/GenericFunctions
Standard constructor The function, created with this constructor evaluates following indefinite integral:
\[ {\mathcal{F}}_i \left(x_1, \dots , x_{i-1}, x_i , x_{i+1}, \dots , x_n \right) = \int\limits_{a}^{x_i} f \left(x_1, \dots , x_{i-1}, \hat{x}_i , x_{i+1}, \dots , x_n \right) \, {\mathrm{d}} \hat{x}_i \]
for value of limit = VariableHighLimit and the integral
\[ {\mathcal{F}}_i \left(x_1, \dots , x_{i-1}, x_i , x_{i+1}, \dots , x_n \right) = \int\limits_{x_i}^{a} f \left(x_1, \dots , x_{i-1}, \hat{x}_i , x_{i+1}, \dots , x_n \right) \, {\mathrm{d}} \hat{x}_i \]
for value of limit = VariableLowLimit
If function contains singularities, the type = Type::AdaptiveSingular need to be used
For faster integration of smooth function non-adaptive integration can be used: type = Type::NonAdaptive need to be used
For adaptive integration one can specify the order of Gauss-Kronrad integration rule rule = KronrodRule::Gauss15 The higher-order rules give better accuracy for smooth functions, while lower-order rules save the time when the function contains local difficulties, such as discontinuites.
- The GSL routine
gsl_integration_qng is used for type = Type:NonAdaptive :
- The GSL routine
gsl_integration_qag is used for type = Type:Adaptive :
- The GSL routine
gsl_integration_qags is used for type = Type:AdaptiveSingular :
- Parameters
-
| function | the base function |
| index | the variable index |
| a | integration limit |
| limit | flag to distinguisch low variable limit from high variable limit |
| type | the integration type (adaptive, non-adaptive or adaptive for singular functions |
| key | Gauss-Kronrad integration rule |
| epsabs | absolute precision for integration |
| epsrel | relative precision for integration |
| lim | bisection limit |
Standard constructor
- Parameters
-
| function | the base function |
| index | the variable index |
| a | integration limit |
| limit | flag to distinguisch low variable limit from high variable limit |
| type | the integration type (adaptive, non-adaptive or adaptive for singular functions |
| key | Gauss-Kronrad integration rule |
| epsabs | absolute precision for integration |
| epsrel | relative precision for integration |
| lim | bisection limit |
Definition at line 83 of file NumericalIndefiniteIntegral.cpp.
118 {
Exception(
"::constructor: invalid variable index") ; }
double epsrel() const
relatiove precision
StatusCode Exception(const std::string &message, const StatusCode &sc=StatusCode::FAILURE) const
GaudiMath::Integration::Limit limit() const
integration limit
virtual unsigned int dimensionality() const
dimensionality of the problem
GaudiMath::Integration::KronrodRule rule() const
integration rule
double epsabs() const
absolute precision
GaudiMath::Integration::Limit m_limit
GaudiMath::Integration::Category m_category
GaudiMath::Integration::Type type() const
integration type
double a() const
integration limit
GaudiMath::Integration::Type m_type
const AbsFunction * m_function
GaudiMath::Integration::KronrodRule m_rule
From CLHEP/GenericFunctions.
Standard constructor The function, created with this constructor evaluates following indefinite integral:
\[ {\mathcal{F}}_i \left(x_1, \dots , x_{i-1}, x_i , x_{i+1}, \dots , x_n \right) = \int\limits_{a}^{x_i} f \left(x_1, \dots , x_{i-1}, \hat{x}_i , x_{i+1}, \dots , x_n \right) \, {\mathrm{d}} \hat{x}_i \]
for value of limit = VariableHighLimit and the integral
\[ {\mathcal{F}}_i \left(x_1, \dots , x_{i-1}, x_i , x_{i+1}, \dots , x_n \right) = \int\limits_{x_i}^{a} f \left(x_1, \dots , x_{i-1}, \hat{x}_i , x_{i+1}, \dots , x_n \right) \, {\mathrm{d}} \hat{x}_i \]
for value of limit = VariableLowLimit
If function contains singularities, the type = Type::AdaptiveSingular need to be used
For faster integration of smooth function non-adaptive integration can be used: type = Type::NonAdaptive need to be used
For adaptive integration one can specify the order of Gauss-Kronrad integration rule rule = KronrodRule::Gauss15 The higher-order rules give better accuracy for smooth functions, while lower-order rules save the time when the function contains local difficulties, such as discontinuites.
- The GSL routine
gsl_integration_qng is used for type = Type:NonAdaptive :
- The GSL routine
gsl_integration_qag is used for type = Type:Adaptive :
- The GSL routine
gsl_integration_qags is used for type = Type:AdaptiveSingular :
- Parameters
-
| function | the base function |
| index | the variable index |
| a | integration limit |
| limit | flag to distinguisch low variable limit from high variable limit |
| type | the integration type (adaptive, non-adaptive or adaptive for singular functions |
| key | Gauss-Kronrad integration rule |
| epsabs | absolute precision for integration |
| epsrel | relative precision for integration |
| lim | bisection limit |
standard constructor
The function, created with this constructor evaluates following indefinite integral:
\[ {\mathcal{F}}_i \left(x_1, \dots , x_{i-1}, x_i , x_{i+1}, \dots , x_n \right) = \int\limits_{a}^{x_i} f \left(x_1, \dots , x_{i-1}, \hat{x}_i , x_{i+1}, \dots , x_n \right) \, {\mathrm{d}} \hat{x}_i \]
for value of limit = VariableHighLimit and the integral
\[ {\mathcal{F}}_i \left(x_1, \dots , x_{i-1}, x_i , x_{i+1}, \dots , x_n \right) = \int\limits_{x_i}^{a} f \left(x_1, \dots , x_{i-1}, \hat{x}_i , x_{i+1}, \dots , x_n \right) \, {\mathrm{d}} \hat{x}_i \]
for value of limit = VariableLowLimit
The integrand is assumed to have a known discontinuities
- The GSL routine
gsl_integration_qagp is used for integration
- Parameters
-
| function | the base function |
| index | the variable index |
| a | integration limit |
| limit | flag to distinguisch low variable limit from high variable limit |
| points | list of known function singularities |
| epsabs | absolute precision for integration |
| epsrel | relative precision for integration |
standard constructor The function, created with this constructor evaluates following indefinite integral:
\[ {\mathcal{F}}_i \left(x_1, \dots , x_{i-1}, x_i , x_{i+1}, \dots , x_n \right) = \int\limits_{-\infty}^{x_i} f \left(x_1, \dots , x_{i-1}, \hat{x}_i , x_{i+1}, \dots , x_n \right) \, {\mathrm{d}} \hat{x}_i \]
for value of limit = VariableHighLimit and the integral
\[ {\mathcal{F}}_i \left(x_1, \dots , x_{i-1}, x_i , x_{i+1}, \dots , x_n \right) = \int\limits_{x_i}^{+\infty} f \left(x_1, \dots , x_{i-1}, \hat{x}_i , x_{i+1}, \dots , x_n \right) \, {\mathrm{d}} \hat{x}_i \]
for value of limit = VariableLowLimit
- The GSL routines
gsl_integration_qagil and gsl_integration_qagiu are used for adapive integration
- Parameters
-
| function | the base function |
| index | the variable index |
| limit | flag to distinguisch low variable limit from high variable limit |
| singularities | list of known function singularities |