3 #ifndef GAUDIMATH_NUMERICALDEFINITEINTEGRAL_H
4 #define GAUDIMATH_NUMERICALDEFINITEINTEGRAL_H 1
22 #include "CLHEP/GenericFunctions/AbsFunction.hh"
27 namespace GaudiMathImplementation
80 typedef std::vector<double>
Points ;
141 ( const AbsFunction& function ,
149 const
double epsabs = 1.e-10 ,
150 const
double epsrel = 1.e-7 ,
151 const
size_t size = 1000 );
183 ( const AbsFunction& function ,
188 const
double epsabs = 1e-9 ,
189 const
double epsrel = 1.e-6 ,
190 const
size_t size = 1000 ) ;
219 ( const AbsFunction& function ,
224 const
double epsabs = 1e-9 ,
225 const
double epsrel = 1.e-6 ,
226 const
size_t size = 1000 ) ;
254 ( const AbsFunction& function ,
258 const
double epsabs = 1e-9 ,
259 const
double epsrel = 1.e-6 ,
260 const
size_t size = 1000 ) ;
286 ( const AbsFunction& function ,
291 const
float epsabs = 1e-9 ,
292 const
float epsrel = 1.e-6 ,
293 const
size_t size = 1000 ) ;
299 virtual ~NumericalDefiniteIntegral() ;
304 virtual
unsigned int dimensionality()
const {
return m_DIM ; }
307 virtual double operator() (
double argument )
const ;
309 virtual double operator() (
const Argument& argument )
const ;
320 const AbsFunction&
function ()
const {
return *m_function ; }
322 double a ()
const {
return m_a ; }
323 double b ()
const {
return m_b ; }
327 double epsabs ()
const {
return m_epsabs ; }
329 double epsrel ()
const {
return m_epsrel ; }
332 double result ()
const {
return m_result ; }
334 double error ()
const {
return m_error ; }
337 size_t size ()
const {
return m_size ; }
341 type ()
const {
return m_type ; }
347 rule ()
const {
return m_rule ; }
352 double QAGI ( _Function*
fun )
const ;
354 double QAGP ( _Function*
fun )
const ;
356 double QNG ( _Function*
fun )
const ;
358 double QAG ( _Function*
fun )
const ;
360 double QAGS ( _Function*
fun )
const ;
363 _Workspace* allocate ()
const ;
370 (
const std::string& message ,
418 #endif // GAUDIMATH_NUMERICALDEFINITEINTEGRAL_H
virtual bool hasAnalyticDerivative() const
Does this function have an analytic derivative?
GaudiMath::Integration::Category category() const
integration category
GaudiMath::Integration::Category m_category
Category
integration category
double result() const
previous result
Genfun::GaudiMathImplementation::NumericalDerivative Derivative
double epsabs() const
absolute precision
GaudiMath::Integration::KronrodRule m_rule
This class is used for returning status codes from appropriate routines.
Type
type of integration (for finite limits)
double error() const
evaluate of previous error
double epsrel() const
relatiove precision
GaudiMath::Integration::Type m_type
const AbsFunction * m_function
GaudiMath::Integration::Type type() const
integration type
std::vector< double > Points
typedef for vector of singular points
const Points & points() const
known singularities
double fun(const std::vector< double > &x)
KronrodRule
integration rule
Type
the list of available types for ntuples
GaudiMath::Integration::KronrodRule rule() const
integration rule
double a() const
integration limit
collection of common types for classes NumericalIndefiniteIntegral and NumericalDefiniteIntegral ...
This class allows the numerical evaluation of the following functions: