User class for performing multidimensional integration.
By default uses adaptive multi-dimensional integration using the algorithm from Genz Mallik implemented in the class ROOT::Math::AdaptiveIntegratorMultiDim otherwise it can uses via the plug-in manager the MC integration class (ROOT::Math::GSLMCIntegration) from MathMore.
Definition at line 47 of file IntegratorMultiDim.h.
Public Types | |
typedef IntegrationMultiDim::Type | Type |
Public Member Functions | |
IntegratorMultiDim (const IMultiGenFunction &f, IntegrationMultiDim::Type type=IntegrationMultiDim::kDEFAULT, double absTol=-1, double relTol=-1, unsigned int ncall=0) | |
Generic Constructor of multi dimensional Integrator passing a function. | |
IntegratorMultiDim (IntegrationMultiDim::Type type=IntegrationMultiDim::kDEFAULT, double absTol=-1, double relTol=-1, unsigned int ncall=0) | |
Generic constructor of multi dimensional Integrator. | |
virtual | ~IntegratorMultiDim () |
Template Constructor of multi dimensional Integrator passing a generic function. | |
double | Error () const |
return integration error | |
VirtualIntegratorMultiDim * | GetIntegrator () |
return a pointer to integrator object | |
double | Integral (const double *xmin, const double *xmax) |
evaluate the integral with the previously given function between xmin[] and xmax[] | |
double | Integral (const IMultiGenFunction &f, const double *xmin, const double *xmax) |
evaluate the integral passing a new function | |
template<class Function > | |
double | Integral (Function &f, unsigned int dim, const double *xmin, const double *xmax) |
evaluate the integral passing a new generic function | |
std::string | Name () const |
return name of integrator | |
ROOT::Math::IntegratorMultiDimOptions | Options () const |
retrieve the options | |
double | Result () const |
return result of last integration | |
void | SetAbsTolerance (double absTol) |
set absolute tolerance | |
void | SetFunction (const IMultiGenFunction &f) |
template<class Function > | |
void | SetFunction (Function &f, unsigned int dim) |
set integration function using a generic function implementing the operator()(double *x) The dimension of the function is in this case required | |
void | SetOptions (const ROOT::Math::IntegratorMultiDimOptions &opt) |
set the options | |
void | SetRelTolerance (double relTol) |
set the relative tolerance | |
int | Status () const |
return the Error Status of the last Integral calculation | |
Static Public Member Functions | |
static std::string | GetName (IntegrationMultiDim::Type) |
static function to get a string from the enumeration | |
static IntegrationMultiDim::Type | GetType (const char *name) |
static function to get the enumeration from a string | |
Protected Member Functions | |
VirtualIntegratorMultiDim * | CreateIntegrator (IntegrationMultiDim::Type type, double absTol, double relTol, unsigned int ncall) |
Private Member Functions | |
IntegratorMultiDim (const IntegratorMultiDim &) | |
IntegratorMultiDim & | operator= (const IntegratorMultiDim &) |
Private Attributes | |
std::unique_ptr< IMultiGenFunction > | fFunc |
pointer to owned function | |
VirtualIntegratorMultiDim * | fIntegrator |
pointer to multi-dimensional integrator base class | |
#include <Math/IntegratorMultiDim.h>
Definition at line 51 of file IntegratorMultiDim.h.
|
inlineexplicit |
Generic constructor of multi dimensional Integrator.
By default uses the Adaptive integration method
type | integration type (adaptive, MC methods, etc..) |
absTol | desired absolute Error |
relTol | desired relative Error |
ncall | number of function calls (apply only to MC integration methods) |
In case no parameter values are passed the default ones used in IntegratorMultiDimOptions are used
Definition at line 64 of file IntegratorMultiDim.h.
|
inlineexplicit |
Generic Constructor of multi dimensional Integrator passing a function.
By default uses the adaptive integration method
f | integration function (multi-dim interface) |
type | integration type (adaptive, MC methods, etc..) |
absTol | desired absolute Error |
relTol | desired relative Error |
ncall | number of function calls (apply only to MC integration methods) |
Definition at line 79 of file IntegratorMultiDim.h.
|
inlinevirtual |
Template Constructor of multi dimensional Integrator passing a generic function.
By default uses the adaptive integration method
f | integration function (generic function implementing operator()(const double *) |
dim | function dimension |
type | integration type (adaptive, MC methods, etc..) |
absTol | desired absolute Error |
relTol | desired relative Error |
ncall | number of function calls (apply only to MC integration methods) destructor |
Definition at line 105 of file IntegratorMultiDim.h.
|
inlineprivate |
Definition at line 113 of file IntegratorMultiDim.h.
|
protected |
Definition at line 178 of file Integrator.cxx.
|
inline |
return integration error
Definition at line 159 of file IntegratorMultiDim.h.
|
inline |
return a pointer to integrator object
Definition at line 180 of file IntegratorMultiDim.h.
|
static |
static function to get a string from the enumeration
Definition at line 90 of file Integrator.cxx.
|
static |
static function to get the enumeration from a string
Definition at line 78 of file Integrator.cxx.
evaluate the integral with the previously given function between xmin[] and xmax[]
Definition at line 122 of file IntegratorMultiDim.h.
|
inline |
evaluate the integral passing a new function
Definition at line 127 of file IntegratorMultiDim.h.
|
inline |
evaluate the integral passing a new generic function
Definition at line 134 of file IntegratorMultiDim.h.
|
inline |
return name of integrator
Definition at line 183 of file IntegratorMultiDim.h.
|
inlineprivate |
Definition at line 114 of file IntegratorMultiDim.h.
|
inline |
retrieve the options
Definition at line 177 of file IntegratorMultiDim.h.
|
inline |
return result of last integration
Definition at line 156 of file IntegratorMultiDim.h.
|
inline |
set absolute tolerance
Definition at line 171 of file IntegratorMultiDim.h.
|
inline |
Definition at line 151 of file IntegratorMultiDim.h.
|
inline |
set integration function using a generic function implementing the operator()(double *x) The dimension of the function is in this case required
Definition at line 145 of file IntegratorMultiDim.h.
|
inline |
set the options
Definition at line 174 of file IntegratorMultiDim.h.
|
inline |
set the relative tolerance
Definition at line 168 of file IntegratorMultiDim.h.
|
inline |
return the Error Status of the last Integral calculation
Definition at line 162 of file IntegratorMultiDim.h.
|
private |
pointer to owned function
Definition at line 198 of file IntegratorMultiDim.h.
|
private |
pointer to multi-dimensional integrator base class
Definition at line 197 of file IntegratorMultiDim.h.