class ROOT::Math::AdaptiveIntegratorMultiDim: public ROOT::Math::VirtualIntegratorMultiDim


   class for adaptive quadrature integration in multi-dimensions
   Algorithm from  A.C. Genz, A.A. Malik, An adaptive algorithm for numerical integration over
   an N-dimensional rectangular region, J. Comput. Appl. Math. 6 (1980) 295-302.

   Converted/adapted by R.Brun to C++ from Fortran CERNLIB routine RADMUL (D120)
   The new code features many changes compared to the Fortran version.

   @ingroup Integration



Function Members (Methods)

public:
virtual~AdaptiveIntegratorMultiDim()
ROOT::Math::AdaptiveIntegratorMultiDimAdaptiveIntegratorMultiDim(const ROOT::Math::AdaptiveIntegratorMultiDim&)
ROOT::Math::AdaptiveIntegratorMultiDimAdaptiveIntegratorMultiDim(double absTol = 1.E-6, double relTol = 1E-6, unsigned int size = 100000)
ROOT::Math::AdaptiveIntegratorMultiDimAdaptiveIntegratorMultiDim(const ROOT::Math::IMultiGenFunction& f, double absTol = 1.E-9, double relTol = 1E-6, unsigned int size = 100000)
virtual doubleError() const
virtual doubleIntegral(const double* xmin, const double* xmax)
doubleIntegral(const ROOT::Math::IMultiGenFunction& f, const double* xmin, const double* xmax)
unsigned intNEval() const
ROOT::Math::VirtualIntegratorMultiDim&ROOT::Math::VirtualIntegratorMultiDim::operator=(const ROOT::Math::VirtualIntegratorMultiDim&)
doubleRelError() const
virtual doubleResult() const
virtual voidSetAbsTolerance(double absTol)
virtual voidSetFunction(const ROOT::Math::IMultiGenFunction& f)
virtual voidSetRelTolerance(double relTol)
virtual intStatus() const

Data Members

private:
doublefAbsTolabsolute tolerance
unsigned intfDimdimentionality of integrand
doublefErrorintegration error
const ROOT::Math::IMultiGenFunction*fFunpointer to integrand function
unsigned intfNEvalnumber of function evaluation
doublefRelErrorRelative error
doublefRelTolrelative tolerance
doublefResultlast integration result
unsigned intfSizemax size of working array (explode with dimension)
intfStatusstatus of algorithm (error if not zero)

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

AdaptiveIntegratorMultiDim(double absTol = 1.E-6, double relTol = 1E-6, unsigned int size = 100000)
      construct given optionally tolerance (absolute and relative) and maximum size of working array
      The size of working array represents the number of sub-division used for calculating the integral.
      Higher the dimension, larger sizes are required for getting the same accuracy.

AdaptiveIntegratorMultiDim(const ROOT::Math::IMultiGenFunction& f, double absTol = 1.E-9, double relTol = 1E-6, unsigned int size = 100000)
      construct with a reference to the integrand function and given optionally
      tolerance (absolute and relative) and maximum size of working array.

virtual ~AdaptiveIntegratorMultiDim()
      destructor (no operations)

{}
double Integral(const double* xmin, const double* xmax)
      evaluate the integral with the previously given function between xmin[] and xmax[]

double Integral(const ROOT::Math::IMultiGenFunction& f, const double* xmin, const double* xmax)
 evaluate the integral passing a new function
void SetFunction(const ROOT::Math::IMultiGenFunction& f)
 set the integration function (must implement multi-dim funciton interface: IBaseFunctionMultiDim)
double Result()
 return result of integration
{ return fResult; }
double Error()
 return integration error
{ return fError; }
double RelError()
 return relative error
{ return fRelError; }
int Status()
 return status of integration
{ return fStatus; }
unsigned int NEval()
 return number of function evaluations in calculating the integral
{ return fNEval; }
void SetRelTolerance(double relTol)
 set relative tolerance
void SetAbsTolerance(double absTol)
 set absolute tolerance

Author: M. Slawinska 08/2007
Last change: root/mathcore:$Id: AdaptiveIntegratorMultiDim.h 22518 2008-03-07 15:40:22Z moneta $
Last generated: 2008-06-25 08:29
Copyright (c) 2007 , LCG ROOT MathLib Team *

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.