14 #ifndef ROOT_Math_VirtualIntegrator
15 #define ROOT_Math_VirtualIntegrator
17 #ifndef ROOT_Math_IFunctionfwd
21 #ifndef ROOT_Math_Error
25 #ifndef ROOT_Math_IntegratorOptions
75 virtual double Result()
const = 0;
80 virtual double Error()
const = 0;
85 virtual int Status()
const = 0;
91 virtual int NEval()
const {
return -1; }
119 virtual double Integral(
double a,
double b) = 0;
134 virtual double Integral(
const std::vector<double> & pts) = 0;
180 virtual double Integral(
const double*,
const double*) = 0;
virtual void SetRelTolerance(double)=0
set the desired relative Error
Interface (abstract) class for 1D numerical integration It must be implemented by the concrate Integr...
Interface (abstract class) for generic functions objects of one-dimension Provides a method to evalua...
Namespace for new ROOT classes and functions.
Type
enumeration specifying the integration types.
virtual double Result() const =0
return the Result of the last Integral calculation
virtual ~VirtualIntegratorOneDim()
destructor: no operation
virtual ROOT::Math::IntegrationMultiDim::Type Type() const
virtual ROOT::Math::IntegrationOneDim::Type Type() const
virtual void SetFunction(const IGenFunction &)=0
set integration function
virtual ~VirtualIntegratorMultiDim()
destructor: no operation
virtual ROOT::Math::IntegratorOneDimOptions Options() const =0
get the option used for the integration must be implemented by derived class
virtual double Error() const =0
return the estimate of the absolute Error of the last Integral calculation
Abstract class for all numerical integration methods (1D and multi-dim) Interface defining the common...
virtual double IntegralLow(double b)=0
evaluate integral over the (-inf, b)
virtual ROOT::Math::IntegratorMultiDimOptions Options() const =0
get the option used for the integration impelement by derived class otherwise return default ones ...
virtual void SetOptions(const ROOT::Math::IntegratorOneDimOptions &opt)
set the options (should be re-implemented by derived classes -if more options than tolerance exist ...
virtual double IntegralCauchy(double a, double b, double c)=0
evaluate Cauchy integral
virtual void SetFunction(const IMultiGenFunction &)=0
setting a multi-dim function
Numerical multi dimensional integration options.
Interface (abstract) class for multi numerical integration It must be implemented by the concrete Int...
virtual ~VirtualIntegrator()
Numerical one dimensional integration options.
virtual int Status() const =0
return the Error Status of the last Integral calculation
IntegrationMultiDim::Type IntegratorType() const
type of the integrator (return the enumeration type)
Type
enumeration specifying the integration types.
virtual double Integral()=0
evaluate un-defined integral (between -inf, + inf)
double RelTolerance() const
absolute tolerance
IntegrationOneDim::Type IntegratorType() const
type of the integrator (return the enumeration type)
virtual void SetOptions(const ROOT::Math::IntegratorMultiDimOptions &opt)
set the options (if needed must be re-implemented by derived classes)
Namespace for new Math classes and functions.
virtual double IntegralUp(double a)=0
evaluate integral over the (a, +inf)
virtual void SetAbsTolerance(double)=0
set the desired absolute Error
double AbsTolerance() const
non-static methods for retrivieng options
virtual double Integral(const double *, const double *)=0
evaluate multi-dim integral
virtual int NEval() const
return number of function evaluations in calculating the integral (if integrator do not implement thi...
Documentation for the abstract class IBaseFunctionMultiDim.