Logo ROOT  
Reference Guide
ROOT::Math::IntegratorMultiDim Class Reference

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 50 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. More...
 
 IntegratorMultiDim (IntegrationMultiDim::Type type=IntegrationMultiDim::kDEFAULT, double absTol=-1, double relTol=-1, unsigned int ncall=0)
 Generic constructor of multi dimensional Integrator. More...
 
virtual ~IntegratorMultiDim ()
 Template Constructor of multi dimensional Integrator passing a generic function. More...
 
double Error () const
 return integration error More...
 
VirtualIntegratorMultiDimGetIntegrator ()
 return a pointer to integrator object More...
 
double Integral (const double *xmin, const double *xmax)
 evaluate the integral with the previously given function between xmin[] and xmax[] More...
 
double Integral (const IMultiGenFunction &f, const double *xmin, const double *xmax)
 evaluate the integral passing a new function More...
 
template<class Function >
double Integral (Function &f, unsigned int dim, const double *xmin, const double *xmax)
 evaluate the integral passing a new generic function More...
 
std::string Name () const
 return name of integrator More...
 
ROOT::Math::IntegratorMultiDimOptions Options () const
 retrieve the options More...
 
double Result () const
 return result of last integration More...
 
void SetAbsTolerance (double absTol)
 set absolute tolerance More...
 
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 More...
 
void SetOptions (const ROOT::Math::IntegratorMultiDimOptions &opt)
 set the options More...
 
void SetRelTolerance (double relTol)
 set the relative tolerance More...
 
int Status () const
 return the Error Status of the last Integral calculation More...
 

Static Public Member Functions

static std::string GetName (IntegrationMultiDim::Type)
 static function to get a string from the enumeration More...
 
static IntegrationMultiDim::Type GetType (const char *name)
 static function to get the enumeration from a string More...
 

Protected Member Functions

VirtualIntegratorMultiDimCreateIntegrator (IntegrationMultiDim::Type type, double absTol, double relTol, unsigned int ncall)
 

Private Member Functions

 IntegratorMultiDim (const IntegratorMultiDim &)
 
IntegratorMultiDimoperator= (const IntegratorMultiDim &)
 

Private Attributes

std::unique_ptr< IMultiGenFunctionfFunc
 
VirtualIntegratorMultiDimfIntegrator
 

#include <Math/IntegratorMultiDim.h>

Member Typedef Documentation

◆ Type

Constructor & Destructor Documentation

◆ IntegratorMultiDim() [1/3]

ROOT::Math::IntegratorMultiDim::IntegratorMultiDim ( IntegrationMultiDim::Type  type = IntegrationMultiDim::kDEFAULT,
double  absTol = -1,
double  relTol = -1,
unsigned int  ncall = 0 
)
inlineexplicit

Generic constructor of multi dimensional Integrator.

By default uses the Adaptive integration method

Parameters
typeintegration type (adaptive, MC methods, etc..)
absToldesired absolute Error
relToldesired relative Error
sizemaximum number of sub-intervals

In case no parameter values are passed the default ones used in IntegratorMultiDimOptions are used

Definition at line 67 of file IntegratorMultiDim.h.

◆ IntegratorMultiDim() [2/3]

ROOT::Math::IntegratorMultiDim::IntegratorMultiDim ( const IMultiGenFunction f,
IntegrationMultiDim::Type  type = IntegrationMultiDim::kDEFAULT,
double  absTol = -1,
double  relTol = -1,
unsigned int  ncall = 0 
)
inlineexplicit

Generic Constructor of multi dimensional Integrator passing a function.

By default uses the adaptive integration method

Parameters
fintegration function (multi-dim interface)
typeintegration type (adaptive, MC methods, etc..)
absToldesired absolute Error
relToldesired relative Error
ncallnumber of function calls (apply only to MC integratioon methods)

Definition at line 82 of file IntegratorMultiDim.h.

◆ ~IntegratorMultiDim()

virtual ROOT::Math::IntegratorMultiDim::~IntegratorMultiDim ( )
inlinevirtual

Template Constructor of multi dimensional Integrator passing a generic function.

By default uses the adaptive integration method

Parameters
fintegration function (generic function implementin operator()(const double *)
dimfunction dimension
typeintegration type (adaptive, MC methods, etc..)
absToldesired absolute Error
relToldesired relative Error
ncallnumber of function calls (apply only to MC integratioon methods) destructor

Definition at line 108 of file IntegratorMultiDim.h.

◆ IntegratorMultiDim() [3/3]

ROOT::Math::IntegratorMultiDim::IntegratorMultiDim ( const IntegratorMultiDim )
inlineprivate

Definition at line 116 of file IntegratorMultiDim.h.

Member Function Documentation

◆ CreateIntegrator()

VirtualIntegratorMultiDim * ROOT::Math::IntegratorMultiDim::CreateIntegrator ( IntegrationMultiDim::Type  type,
double  absTol,
double  relTol,
unsigned int  ncall 
)
protected

Definition at line 178 of file Integrator.cxx.

◆ Error()

double ROOT::Math::IntegratorMultiDim::Error ( ) const
inline

return integration error

Definition at line 162 of file IntegratorMultiDim.h.

◆ GetIntegrator()

VirtualIntegratorMultiDim * ROOT::Math::IntegratorMultiDim::GetIntegrator ( )
inline

return a pointer to integrator object

Definition at line 183 of file IntegratorMultiDim.h.

◆ GetName()

std::string ROOT::Math::IntegratorMultiDim::GetName ( IntegrationMultiDim::Type  type)
static

static function to get a string from the enumeration

Definition at line 90 of file Integrator.cxx.

◆ GetType()

IntegrationMultiDim::Type ROOT::Math::IntegratorMultiDim::GetType ( const char *  name)
static

static function to get the enumeration from a string

Definition at line 78 of file Integrator.cxx.

◆ Integral() [1/3]

double ROOT::Math::IntegratorMultiDim::Integral ( const double *  xmin,
const double *  xmax 
)
inline

evaluate the integral with the previously given function between xmin[] and xmax[]

Definition at line 125 of file IntegratorMultiDim.h.

◆ Integral() [2/3]

double ROOT::Math::IntegratorMultiDim::Integral ( const IMultiGenFunction f,
const double *  xmin,
const double *  xmax 
)
inline

evaluate the integral passing a new function

Definition at line 130 of file IntegratorMultiDim.h.

◆ Integral() [3/3]

template<class Function >
double ROOT::Math::IntegratorMultiDim::Integral ( Function f,
unsigned int  dim,
const double *  xmin,
const double *  xmax 
)
inline

evaluate the integral passing a new generic function

Definition at line 137 of file IntegratorMultiDim.h.

◆ Name()

std::string ROOT::Math::IntegratorMultiDim::Name ( ) const
inline

return name of integrator

Definition at line 186 of file IntegratorMultiDim.h.

◆ operator=()

IntegratorMultiDim & ROOT::Math::IntegratorMultiDim::operator= ( const IntegratorMultiDim )
inlineprivate

Definition at line 117 of file IntegratorMultiDim.h.

◆ Options()

ROOT::Math::IntegratorMultiDimOptions ROOT::Math::IntegratorMultiDim::Options ( ) const
inline

retrieve the options

Definition at line 180 of file IntegratorMultiDim.h.

◆ Result()

double ROOT::Math::IntegratorMultiDim::Result ( ) const
inline

return result of last integration

Definition at line 159 of file IntegratorMultiDim.h.

◆ SetAbsTolerance()

void ROOT::Math::IntegratorMultiDim::SetAbsTolerance ( double  absTol)
inline

set absolute tolerance

Definition at line 174 of file IntegratorMultiDim.h.

◆ SetFunction() [1/2]

void ROOT::Math::IntegratorMultiDim::SetFunction ( const IMultiGenFunction f)
inline

Definition at line 154 of file IntegratorMultiDim.h.

◆ SetFunction() [2/2]

template<class Function >
void ROOT::Math::IntegratorMultiDim::SetFunction ( Function f,
unsigned int  dim 
)
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 148 of file IntegratorMultiDim.h.

◆ SetOptions()

void ROOT::Math::IntegratorMultiDim::SetOptions ( const ROOT::Math::IntegratorMultiDimOptions opt)
inline

set the options

Definition at line 177 of file IntegratorMultiDim.h.

◆ SetRelTolerance()

void ROOT::Math::IntegratorMultiDim::SetRelTolerance ( double  relTol)
inline

set the relative tolerance

Definition at line 171 of file IntegratorMultiDim.h.

◆ Status()

int ROOT::Math::IntegratorMultiDim::Status ( ) const
inline

return the Error Status of the last Integral calculation

Definition at line 165 of file IntegratorMultiDim.h.

Member Data Documentation

◆ fFunc

std::unique_ptr<IMultiGenFunction> ROOT::Math::IntegratorMultiDim::fFunc
private

Definition at line 201 of file IntegratorMultiDim.h.

◆ fIntegrator

VirtualIntegratorMultiDim* ROOT::Math::IntegratorMultiDim::fIntegrator
private

Definition at line 200 of file IntegratorMultiDim.h.

Libraries for ROOT::Math::IntegratorMultiDim:
[legend]

The documentation for this class was generated from the following files: