|
Gaudi Framework, version v23r9 |
| Home | Generated: Thu Jul 18 2013 |
This class allows the numerical evaluation of the following functions: More...
#include <NumericalDefiniteIntegral.h>


Classes | |
| struct | _Function |
| struct | _Workspace |
Public Types | |
| typedef std::vector< double > | Points |
| typedef for vector of singular points | |
Public Member Functions | |
| NumericalDefiniteIntegral (const AbsFunction &function, const size_t index, 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) | |
| From CLHEP/GenericFunctions. | |
| NumericalDefiniteIntegral (const AbsFunction &function, const size_t index, const double a, const double b, const Points &points, const double epsabs=1e-9, const double epsrel=1.e-6, const size_t size=1000) | |
| Standard constructor The function created with this constructor compute the following integral: | |
| NumericalDefiniteIntegral (const AbsFunction &function, const size_t index, 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) | |
| Standard constructor The function created with this constructor compute the following integral: | |
| NumericalDefiniteIntegral (const AbsFunction &function, const size_t index, const GaudiMath::Integration::Inf a, const double b, const double epsabs=1e-9, const double epsrel=1.e-6, const size_t size=1000) | |
| Standard constructor The function created with this constructor compute the following integral: | |
| NumericalDefiniteIntegral (const AbsFunction &function, const size_t index, const float epsabs=1e-9, const float epsrel=1.e-6, const size_t size=1000) | |
| Standard constructor The function created with this constructor compute the following integral: | |
| NumericalDefiniteIntegral (const NumericalDefiniteIntegral &) | |
| copy constructor | |
| virtual | ~NumericalDefiniteIntegral () |
| destructor | |
| virtual unsigned int | dimensionality () const |
| dimensionality of the problem | |
| virtual double | operator() (double argument) const |
| Function value. | |
| virtual double | operator() (const Argument &argument) const |
| Function value. | |
| virtual bool | hasAnalyticDerivative () const |
| Does this function have an analytic derivative? | |
| virtual Genfun::Derivative | partial (unsigned int index) const |
| Derivatives. | |
| const AbsFunction & | function () const |
| accessor to the function itself | |
| double | a () const |
| integration limit | |
| double | b () const |
| const Points & | points () const |
| known singularities | |
| double | epsabs () const |
| absolute precision | |
| double | epsrel () const |
| relatiove precision | |
| double | result () const |
| previous result | |
| double | error () const |
| evaluate of previous error | |
| size_t | size () const |
| GaudiMath::Integration::Type | type () const |
| integration type | |
| GaudiMath::Integration::Category | category () const |
| integration category | |
| GaudiMath::Integration::KronrodRule | rule () const |
| integration rule | |
Protected Member Functions | |
| double | QAGI (_Function *fun) const |
| double | QAGP (_Function *fun) const |
| double | QNG (_Function *fun) const |
| double | QAG (_Function *fun) const |
| double | QAGS (_Function *fun) const |
| _Workspace * | allocate () const |
| allocate the integration workspace | |
| _Workspace * | ws () const |
| StatusCode | Exception (const std::string &message, const StatusCode &sc=StatusCode::FAILURE) const |
Private Member Functions | |
| NumericalDefiniteIntegral () | |
| NumericalDefiniteIntegral & | operator= (const NumericalDefiniteIntegral &) |
Private Attributes | |
| const AbsFunction * | m_function |
| size_t | m_DIM |
| size_t | m_index |
| double | m_a |
| double | m_b |
| bool | m_ia |
| bool | m_ib |
| GaudiMath::Integration::Type | m_type |
| GaudiMath::Integration::Category | m_category |
| GaudiMath::Integration::KronrodRule | m_rule |
| Points | m_points |
| double * | m_pdata |
| double | m_epsabs |
| double | m_epsrel |
| double | m_result |
| double | m_error |
| size_t | m_size |
| _Workspace * | m_ws |
| Argument | m_argument |
| Argument | m_argF |
This class allows the numerical evaluation of the following functions:
Definition at line 72 of file NumericalDefiniteIntegral.h.
typedef for vector of singular points
Definition at line 76 of file NumericalDefiniteIntegral.h.
| Genfun::GaudiMathImplementation::NumericalDefiniteIntegral::NumericalDefiniteIntegral | ( | const AbsFunction & | function, |
| const size_t | index, | ||
| 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 |
||
| ) |
From CLHEP/GenericFunctions.
from CLHEP/GenericFunctions
Standard constructor The function created with this constructor compute the following integral:
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 type = Type>>Adaptive 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.
gsl_integration_qng is used for type = Type:NonAdaptive :The GSL routine gsl_integration_qag is used for type = Type:Adaptive :
gsl_integration_qags is used for type = Type:AdaptiveSingular :| function | funtion to be integrated |
| index | variable index |
| a | lower intgeration limit |
| b | high integration limit |
| type | integration type |
| rule | integration rule (for adaptive integration) |
| epsabs | required absolute precision |
| epsrel | required relative precision |
| size | maximal number of bisections for adaptive integration |
Definition at line 110 of file NumericalDefiniteIntegral.cpp.
| Genfun::GaudiMathImplementation::NumericalDefiniteIntegral::NumericalDefiniteIntegral | ( | const AbsFunction & | function, |
| const size_t | index, | ||
| const double | a, | ||
| const double | b, | ||
| const Points & | points, | ||
| const double | epsabs = 1e-9, |
||
| const double | epsrel = 1.e-6, |
||
| const size_t | size = 1000 |
||
| ) |
Standard constructor The function created with this constructor compute the following integral:
standard constructor
where function have known singulatities
gsl_integration_qagp is used for integration| function | funtion to be integrated |
| index | variable index |
| a | lower intgeration limit |
| b | high integration limit |
| pointns | vector of know singular points |
| epsabs | required absolute precision |
| epsrel | required relative precision |
| size | maximal number of bisections for adaptive integration |
| function | the base function |
| index | the variable index |
| a | integration limit |
| b | integration limit |
| points | list of known function singularities |
| epsabs | absolute precision for integration |
| epsrel | relative precision for integration |
Definition at line 165 of file NumericalDefiniteIntegral.cpp.
| Genfun::GaudiMathImplementation::NumericalDefiniteIntegral::NumericalDefiniteIntegral | ( | const AbsFunction & | function, |
| const size_t | index, | ||
| 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 |
||
| ) |
Standard constructor The function created with this constructor compute the following integral:
gsl_integration_qagiu is used for integration| function | funtion to be integrated |
| index | variable index |
| a | lower intgeration limit |
| b | indication for infinity |
| epsabs | required absolute precision |
| epsrel | required relative precision |
| size | maximal number of bisections for adaptive integration |
Definition at line 252 of file NumericalDefiniteIntegral.cpp.
| Genfun::GaudiMathImplementation::NumericalDefiniteIntegral::NumericalDefiniteIntegral | ( | const AbsFunction & | function, |
| const size_t | index, | ||
| const GaudiMath::Integration::Inf | a, | ||
| const double | b, | ||
| const double | epsabs = 1e-9, |
||
| const double | epsrel = 1.e-6, |
||
| const size_t | size = 1000 |
||
| ) |
Standard constructor The function created with this constructor compute the following integral:
gsl_integration_qagiu is used for integration| function | funtion to be integrated |
| index | variable index |
| a | lower intgeration limit |
| b | indication for infinity |
| epsabs | required absolute precision |
| epsrel | required relative precision |
| size | maximal number of bisections for adaptive integration |
Definition at line 321 of file NumericalDefiniteIntegral.cpp.
| Genfun::GaudiMathImplementation::NumericalDefiniteIntegral::NumericalDefiniteIntegral | ( | const AbsFunction & | function, |
| const size_t | index, | ||
| const float | epsabs = 1e-9, |
||
| const float | epsrel = 1.e-6, |
||
| const size_t | size = 1000 |
||
| ) |
Standard constructor The function created with this constructor compute the following integral:
gsl_integration_qagi is used for integration| function | funtion to be integrated |
| index | variable index |
| epsabs | required absolute precision |
| epsrel | required relative precision |
| size | maximal number of bisections for adaptive integration |
Definition at line 386 of file NumericalDefiniteIntegral.cpp.
| Genfun::GaudiMathImplementation::NumericalDefiniteIntegral::NumericalDefiniteIntegral | ( | const NumericalDefiniteIntegral & | right | ) |
copy constructor
Definition at line 428 of file NumericalDefiniteIntegral.cpp.
|
virtual |
|
private |
|
inline |
|
protected |
allocate the integration workspace
Definition at line 574 of file NumericalDefiniteIntegral.cpp.
|
inline |
Definition at line 323 of file NumericalDefiniteIntegral.h.
|
inline |
integration category
Definition at line 344 of file NumericalDefiniteIntegral.h.
|
inlinevirtual |
dimensionality of the problem
Definition at line 304 of file NumericalDefiniteIntegral.h.
|
inline |
absolute precision
Definition at line 327 of file NumericalDefiniteIntegral.h.
|
inline |
relatiove precision
Definition at line 329 of file NumericalDefiniteIntegral.h.
|
inline |
evaluate of previous error
Definition at line 334 of file NumericalDefiniteIntegral.h.
|
protected |
Definition at line 468 of file NumericalDefiniteIntegral.cpp.
|
inline |
accessor to the function itself
Definition at line 320 of file NumericalDefiniteIntegral.h.
|
inlinevirtual |
Does this function have an analytic derivative?
Definition at line 312 of file NumericalDefiniteIntegral.h.
|
virtual |
Function value.
evaluate the function
Definition at line 481 of file NumericalDefiniteIntegral.cpp.
|
virtual |
Function value.
evaluate the function
Definition at line 514 of file NumericalDefiniteIntegral.cpp.
|
private |
|
virtual |
Derivatives.
Definition at line 499 of file NumericalDefiniteIntegral.cpp.
|
inline |
known singularities
Definition at line 325 of file NumericalDefiniteIntegral.h.
|
protected |
Definition at line 692 of file NumericalDefiniteIntegral.cpp.
|
protected |
Definition at line 589 of file NumericalDefiniteIntegral.cpp.
|
protected |
Definition at line 633 of file NumericalDefiniteIntegral.cpp.
|
protected |
Definition at line 723 of file NumericalDefiniteIntegral.cpp.
|
protected |
Definition at line 663 of file NumericalDefiniteIntegral.cpp.
|
inline |
|
inline |
|
inline |
Definition at line 337 of file NumericalDefiniteIntegral.h.
|
inline |
|
inlineprotected |
Definition at line 365 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 386 of file NumericalDefiniteIntegral.h.
|
mutableprivate |
Definition at line 408 of file NumericalDefiniteIntegral.h.
|
mutableprivate |
Definition at line 407 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 387 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 392 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 383 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 398 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 399 of file NumericalDefiniteIntegral.h.
|
mutableprivate |
Definition at line 402 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 382 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 388 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 389 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 384 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 396 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 395 of file NumericalDefiniteIntegral.h.
|
mutableprivate |
Definition at line 401 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 393 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 404 of file NumericalDefiniteIntegral.h.
|
private |
Definition at line 391 of file NumericalDefiniteIntegral.h.
|
mutableprivate |
Definition at line 405 of file NumericalDefiniteIntegral.h.