3 #ifndef GAUDIMATH_NUMERICALINDEFINITEINTEGRAL_H
4 #define GAUDIMATH_NUMERICALINDEFINITEINTEGRAL_H 1
22 #include "CLHEP/GenericFunctions/AbsFunction.hh"
30 namespace GaudiMathImplementation
84 typedef std::vector<double>
Points ;
157 ( const AbsFunction& function ,
166 const
double epsabs = 1e-10 ,
167 const
double epsrel = 1.e-7 ,
168 const
size_t size = 1000 );
212 ( const AbsFunction& function ,
218 const
double epsabs = 1e-9 ,
219 const
double epsrel = 1.e-6 ,
220 const
size_t size = 1000 ) ;
260 ( const AbsFunction& function ,
264 const
double epsabs = 1e-9 ,
265 const
double epsrel = 1.e-6 ,
266 const
size_t size = 1000 ) ;
273 virtual ~NumericalIndefiniteIntegral() ;
278 virtual
unsigned int dimensionality()
const {
return m_DIM ; }
281 virtual double operator() (
double argument )
const ;
283 virtual double operator() (
const Argument& argument )
const ;
294 const AbsFunction&
function ()
const {
return *m_function ; }
296 double a ()
const {
return m_a ; }
300 double epsabs ()
const {
return m_epsabs ; }
302 double epsrel ()
const {
return m_epsrel ; }
305 double result ()
const {
return m_result ; }
307 double error ()
const {
return m_error ; }
310 size_t size ()
const {
return m_size ; }
317 type ()
const {
return m_type ; }
323 rule ()
const {
return m_rule ; }
328 double QAGI ( _Function*
fun )
const ;
330 double QAGP ( _Function*
fun )
const ;
332 double QNG ( _Function*
fun )
const ;
334 double QAG ( _Function*
fun )
const ;
336 double QAGS ( _Function*
fun )
const ;
339 _Workspace* allocate ()
const ;
346 (
const std::string& message ,
392 #endif // GAUDIMATH_NUMERICALINDEFINITEINTEGRAL_H
double epsrel() const
relatiove precision
Category
integration category
double result() const
previous result
double error() const
evaluate of previous error
GaudiMath::Integration::Limit limit() const
integration limit
Genfun::GaudiMathImplementation::NumericalDerivative Derivative
virtual bool hasAnalyticDerivative() const
Does this function have an analytic derivative?
GaudiMath::Integration::Category category() const
integration category
const AbsFunction * m_function
GaudiMath::Integration::KronrodRule rule() const
integration rule
This class is used for returning status codes from appropriate routines.
Type
type of integration (for finite limits)
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
Limit
how to distinguish variable low and variable high limits
double fun(const std::vector< double > &x)
KronrodRule
integration rule
std::vector< double > Points
typedef for vector of singular points
GaudiMath::Integration::KronrodRule m_rule
The simple class for numerical integrations.
Type
the list of available types for ntuples
const Points & points() const
known singularities
collection of common types for classes NumericalIndefiniteIntegral and NumericalDefiniteIntegral ...