Logo ROOT   6.16/01
Reference Guide
List of all members | Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
ROOT::Math::GSLMCIntegrator Class Reference

Definition at line 78 of file GSLMCIntegrator.h.

Public Types

typedef double(* GSLMonteFuncPointer) (double *, size_t, void *)
 
typedef MCIntegration::Type Type
 

Public Member Functions

 GSLMCIntegrator (const char *type, double absTol, double relTol, unsigned int calls)
 constructor of GSL MCIntegrator. More...
 
 GSLMCIntegrator (MCIntegration::Type type=MCIntegration::kVEGAS, double absTol=-1, double relTol=-1, unsigned int calls=0)
 constructor of GSL MCIntegrator. More...
 
virtual ~GSLMCIntegrator ()
 destructor More...
 
double ChiSqr ()
 returns chi-squared per degree of freedom for the estimate of the integral in the Vegas algorithm More...
 
double Error () const
 return the estimate of the absolute Error of the last Integral calculation More...
 
ROOT::Math::IOptionsExtraOptions () const
 get the specific options (for Vegas or Miser) in term of string- name More...
 
MCIntegration::Type GetType () const
 return the type (need to be called GetType to avois a conflict with typedef) More...
 
const char * GetTypeName () const
 return the name More...
 
double Integral (const double *a, const double *b)
 evaluate the integral using the previously defined function More...
 
double Integral (const GSLMonteFuncPointer &f, unsigned int dim, double *a, double *b, void *p=0)
 evaluate the Integral of a function f over the defined hypercube (a,b) More...
 
int NEval () const
 return number of function evaluations in calculating the integral (This is an fixed by the user) More...
 
ROOT::Math::IntegratorMultiDimOptions Options () const
 get the option used for the integration More...
 
double Result () const
 return the type of the integration used More...
 
void SetAbsTolerance (double absTolerance)
 set the desired absolute Error More...
 
void SetFunction (const IMultiGenFunction &f)
 method to set the a generic integration function More...
 
void SetFunction (GSLMonteFuncPointer f, unsigned int dim, void *p=0)
 
void SetGenerator (GSLRandomEngine &r)
 set random number generator More...
 
void SetMode (MCIntegration::Mode mode)
 set integration mode for VEGAS method The possible MODE are : MCIntegration::kIMPORTANCE (default) : VEGAS will use importance sampling MCIntegration::kSTRATIFIED : VEGAS will use stratified sampling if certain condition are satisfied MCIntegration::kIMPORTANCE_ONLY : VEGAS will always use importance smapling More...
 
void SetOptions (const ROOT::Math::IntegratorMultiDimOptions &opt)
 set the integration options More...
 
void SetParameters (const MiserParameters &p)
 set default parameters for MISER method More...
 
void SetParameters (const VegasParameters &p)
 set default parameters for VEGAS method More...
 
void SetRelTolerance (double relTolerance)
 set the desired relative Error More...
 
void SetType (MCIntegration::Type type)
 set integration method More...
 
void SetTypeName (const char *typeName)
 set integration method using a name instead of an enumeration More...
 
double Sigma ()
 set parameters for PLAIN method More...
 
int Status () const
 return the Error Status of the last Integral calculation More...
 
- Public Member Functions inherited from ROOT::Math::VirtualIntegratorMultiDim
virtual ~VirtualIntegratorMultiDim ()
 destructor: no operation More...
 
virtual double Integral (const double *, const double *)=0
 evaluate multi-dim integral More...
 
virtual ROOT::Math::IntegratorMultiDimOptions Options () const =0
 get the option used for the integration impelement by derived class otherwise return default ones More...
 
virtual void SetFunction (const IMultiGenFunction &)=0
 setting a multi-dim function More...
 
virtual void SetOptions (const ROOT::Math::IntegratorMultiDimOptions &opt)
 set the options (if needed must be re-implemented by derived classes) More...
 
virtual ROOT::Math::IntegrationMultiDim::Type Type () const
 
- Public Member Functions inherited from ROOT::Math::VirtualIntegrator
virtual ~VirtualIntegrator ()
 
virtual double Error () const =0
 return the estimate of the absolute Error of the last Integral calculation More...
 
virtual int NEval () const
 return number of function evaluations in calculating the integral (if integrator do not implement this function returns -1) More...
 
virtual double Result () const =0
 return the Result of the last Integral calculation More...
 
virtual void SetAbsTolerance (double)=0
 set the desired absolute Error More...
 
virtual void SetRelTolerance (double)=0
 set the desired relative Error More...
 
virtual int Status () const =0
 return the Error Status of the last Integral calculation More...
 

Protected Member Functions

bool CheckFunction ()
 
void DoInitialize ()
 

Private Member Functions

 GSLMCIntegrator (const GSLMCIntegrator &)
 
GSLMCIntegratoroperator= (const GSLMCIntegrator &)
 

Private Attributes

double fAbsTol
 
unsigned int fCalls
 
unsigned int fDim
 
double fError
 
bool fExtGen
 
GSLMonteFunctionWrapperfFunction
 
double fRelTol
 
double fResult
 
GSLRngWrapperfRng
 
int fStatus
 
MCIntegration::Type fType
 
GSLMCIntegrationWorkspacefWorkspace
 

#include <Math/GSLMCIntegrator.h>

Inheritance diagram for ROOT::Math::GSLMCIntegrator:
[legend]

Member Typedef Documentation

◆ GSLMonteFuncPointer

typedef double(* ROOT::Math::GSLMCIntegrator::GSLMonteFuncPointer) (double *, size_t, void *)

Definition at line 145 of file GSLMCIntegrator.h.

◆ Type

Definition at line 82 of file GSLMCIntegrator.h.

Constructor & Destructor Documentation

◆ GSLMCIntegrator() [1/3]

ROOT::Math::GSLMCIntegrator::GSLMCIntegrator ( MCIntegration::Type  type = MCIntegration::kVEGAS,
double  absTol = -1,
double  relTol = -1,
unsigned int  calls = 0 
)
explicit

constructor of GSL MCIntegrator.

VEGAS MC is set as default integration type

Parameters
typetype of integration. The possible types are defined in the MCIntegration::Type enumeration Default is VEGAS
absToldesired absolute Error (this parameter is actually not used and it can be ignored. The tolerance is fixed by the number of given calls)
relToldesired relative Error (this parameter is actually not used and it can be ignored. The tolerance is fixed by the number of given calls)
callsmaximum number of function calls

NOTE: When the default values are used , the options are taken from teh static method of ROOT::Math::IntegratorMultiDimOptions

Definition at line 73 of file GSLMCIntegrator.cxx.

◆ GSLMCIntegrator() [2/3]

ROOT::Math::GSLMCIntegrator::GSLMCIntegrator ( const char *  type,
double  absTol,
double  relTol,
unsigned int  calls 
)

constructor of GSL MCIntegrator.

VEGAS MC is set as default integration type

Parameters
typetype of integration using a char * (required by plug-in manager)
absToldesired absolute Error
relToldesired relative Error
callsmaximum number of function calls

Definition at line 102 of file GSLMCIntegrator.cxx.

◆ ~GSLMCIntegrator()

ROOT::Math::GSLMCIntegrator::~GSLMCIntegrator ( )
virtual

destructor

Definition at line 133 of file GSLMCIntegrator.cxx.

◆ GSLMCIntegrator() [3/3]

ROOT::Math::GSLMCIntegrator::GSLMCIntegrator ( const GSLMCIntegrator )
private

Definition at line 147 of file GSLMCIntegrator.cxx.

Member Function Documentation

◆ CheckFunction()

bool ROOT::Math::GSLMCIntegrator::CheckFunction ( )
protected

Definition at line 452 of file GSLMCIntegrator.cxx.

◆ ChiSqr()

double ROOT::Math::GSLMCIntegrator::ChiSqr ( )

returns chi-squared per degree of freedom for the estimate of the integral in the Vegas algorithm

Definition at line 434 of file GSLMCIntegrator.cxx.

◆ DoInitialize()

void ROOT::Math::GSLMCIntegrator::DoInitialize ( )
protected

Definition at line 396 of file GSLMCIntegrator.cxx.

◆ Error()

double ROOT::Math::GSLMCIntegrator::Error ( ) const
virtual

return the estimate of the absolute Error of the last Integral calculation

Implements ROOT::Math::VirtualIntegrator.

Definition at line 247 of file GSLMCIntegrator.cxx.

◆ ExtraOptions()

ROOT::Math::IOptions * ROOT::Math::GSLMCIntegrator::ExtraOptions ( ) const

get the specific options (for Vegas or Miser) in term of string- name

Definition at line 479 of file GSLMCIntegrator.cxx.

◆ GetType()

MCIntegration::Type ROOT::Math::GSLMCIntegrator::GetType ( ) const
inline

return the type (need to be called GetType to avois a conflict with typedef)

Definition at line 275 of file GSLMCIntegrator.h.

◆ GetTypeName()

const char * ROOT::Math::GSLMCIntegrator::GetTypeName ( ) const

return the name

Definition at line 461 of file GSLMCIntegrator.cxx.

◆ Integral() [1/2]

double ROOT::Math::GSLMCIntegrator::Integral ( const double *  a,
const double *  b 
)
virtual

evaluate the integral using the previously defined function

Implements ROOT::Math::VirtualIntegratorMultiDim.

Definition at line 176 of file GSLMCIntegrator.cxx.

◆ Integral() [2/2]

double ROOT::Math::GSLMCIntegrator::Integral ( const GSLMonteFuncPointer f,
unsigned int  dim,
double *  a,
double *  b,
void p = 0 
)

evaluate the Integral of a function f over the defined hypercube (a,b)

Parameters
fintegration function. The function type must implement the mathlib::IGenFunction interface
alower value of the integration interval
bupper value of the integration interval

Definition at line 222 of file GSLMCIntegrator.cxx.

◆ NEval()

int ROOT::Math::GSLMCIntegrator::NEval ( ) const
inlinevirtual

return number of function evaluations in calculating the integral (This is an fixed by the user)

Reimplemented from ROOT::Math::VirtualIntegrator.

Definition at line 197 of file GSLMCIntegrator.h.

◆ operator=()

GSLMCIntegrator & ROOT::Math::GSLMCIntegrator::operator= ( const GSLMCIntegrator )
private

Definition at line 151 of file GSLMCIntegrator.cxx.

◆ Options()

ROOT::Math::IntegratorMultiDimOptions ROOT::Math::GSLMCIntegrator::Options ( ) const
virtual

get the option used for the integration

Implements ROOT::Math::VirtualIntegratorMultiDim.

Definition at line 468 of file GSLMCIntegrator.cxx.

◆ Result()

double ROOT::Math::GSLMCIntegrator::Result ( ) const
virtual

return the type of the integration used

return the Result of the last Integral calculation

Implements ROOT::Math::VirtualIntegrator.

Definition at line 242 of file GSLMCIntegrator.cxx.

◆ SetAbsTolerance()

void ROOT::Math::GSLMCIntegrator::SetAbsTolerance ( double  absTolerance)
virtual

set the desired absolute Error

Implements ROOT::Math::VirtualIntegrator.

Definition at line 265 of file GSLMCIntegrator.cxx.

◆ SetFunction() [1/2]

void ROOT::Math::GSLMCIntegrator::SetFunction ( const IMultiGenFunction f)
virtual

method to set the a generic integration function

Parameters
fintegration function. The function type must implement the assigment operator, double operator() ( double x )

Implements ROOT::Math::VirtualIntegratorMultiDim.

Definition at line 157 of file GSLMCIntegrator.cxx.

◆ SetFunction() [2/2]

void ROOT::Math::GSLMCIntegrator::SetFunction ( GSLMonteFuncPointer  f,
unsigned int  dim,
void p = 0 
)

Definition at line 165 of file GSLMCIntegrator.cxx.

◆ SetGenerator()

void ROOT::Math::GSLMCIntegrator::SetGenerator ( GSLRandomEngine r)

set random number generator

Definition at line 267 of file GSLMCIntegrator.cxx.

◆ SetMode()

void ROOT::Math::GSLMCIntegrator::SetMode ( MCIntegration::Mode  mode)

set integration mode for VEGAS method The possible MODE are : MCIntegration::kIMPORTANCE (default) : VEGAS will use importance sampling MCIntegration::kSTRATIFIED : VEGAS will use stratified sampling if certain condition are satisfied MCIntegration::kIMPORTANCE_ONLY : VEGAS will always use importance smapling

Definition at line 325 of file GSLMCIntegrator.cxx.

◆ SetOptions()

void ROOT::Math::GSLMCIntegrator::SetOptions ( const ROOT::Math::IntegratorMultiDimOptions opt)
virtual

set the integration options

Reimplemented from ROOT::Math::VirtualIntegratorMultiDim.

Definition at line 340 of file GSLMCIntegrator.cxx.

◆ SetParameters() [1/2]

void ROOT::Math::GSLMCIntegrator::SetParameters ( const MiserParameters p)

set default parameters for MISER method

Definition at line 382 of file GSLMCIntegrator.cxx.

◆ SetParameters() [2/2]

void ROOT::Math::GSLMCIntegrator::SetParameters ( const VegasParameters p)

set default parameters for VEGAS method

Definition at line 369 of file GSLMCIntegrator.cxx.

◆ SetRelTolerance()

void ROOT::Math::GSLMCIntegrator::SetRelTolerance ( double  relTolerance)
virtual

set the desired relative Error

Implements ROOT::Math::VirtualIntegrator.

Definition at line 260 of file GSLMCIntegrator.cxx.

◆ SetType()

void ROOT::Math::GSLMCIntegrator::SetType ( MCIntegration::Type  type)

set integration method

Definition at line 274 of file GSLMCIntegrator.cxx.

◆ SetTypeName()

void ROOT::Math::GSLMCIntegrator::SetTypeName ( const char *  typeName)

set integration method using a name instead of an enumeration

Definition at line 300 of file GSLMCIntegrator.cxx.

◆ Sigma()

double ROOT::Math::GSLMCIntegrator::Sigma ( )

set parameters for PLAIN method

returns the error sigma from the last iteration of the Vegas algorithm

Definition at line 414 of file GSLMCIntegrator.cxx.

◆ Status()

int ROOT::Math::GSLMCIntegrator::Status ( ) const
virtual

return the Error Status of the last Integral calculation

Implements ROOT::Math::VirtualIntegrator.

Definition at line 252 of file GSLMCIntegrator.cxx.

Member Data Documentation

◆ fAbsTol

double ROOT::Math::GSLMCIntegrator::fAbsTol
private

Definition at line 311 of file GSLMCIntegrator.h.

◆ fCalls

unsigned int ROOT::Math::GSLMCIntegrator::fCalls
private

Definition at line 310 of file GSLMCIntegrator.h.

◆ fDim

unsigned int ROOT::Math::GSLMCIntegrator::fDim
private

Definition at line 309 of file GSLMCIntegrator.h.

◆ fError

double ROOT::Math::GSLMCIntegrator::fError
private

Definition at line 317 of file GSLMCIntegrator.h.

◆ fExtGen

bool ROOT::Math::GSLMCIntegrator::fExtGen
private

Definition at line 319 of file GSLMCIntegrator.h.

◆ fFunction

GSLMonteFunctionWrapper* ROOT::Math::GSLMCIntegrator::fFunction
private

Definition at line 323 of file GSLMCIntegrator.h.

◆ fRelTol

double ROOT::Math::GSLMCIntegrator::fRelTol
private

Definition at line 312 of file GSLMCIntegrator.h.

◆ fResult

double ROOT::Math::GSLMCIntegrator::fResult
private

Definition at line 316 of file GSLMCIntegrator.h.

◆ fRng

GSLRngWrapper* ROOT::Math::GSLMCIntegrator::fRng
private

Definition at line 307 of file GSLMCIntegrator.h.

◆ fStatus

int ROOT::Math::GSLMCIntegrator::fStatus
private

Definition at line 318 of file GSLMCIntegrator.h.

◆ fType

MCIntegration::Type ROOT::Math::GSLMCIntegrator::fType
private

Definition at line 305 of file GSLMCIntegrator.h.

◆ fWorkspace

GSLMCIntegrationWorkspace* ROOT::Math::GSLMCIntegrator::fWorkspace
private

Definition at line 322 of file GSLMCIntegrator.h.

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

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