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::IOptions * | ExtraOptions () 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 &) | |
GSLMCIntegrator & | operator= (const GSLMCIntegrator &) |
Private Attributes | |
double | fAbsTol |
unsigned int | fCalls |
unsigned int | fDim |
double | fError |
bool | fExtGen |
GSLMonteFunctionWrapper * | fFunction |
double | fRelTol |
double | fResult |
GSLRngWrapper * | fRng |
int | fStatus |
MCIntegration::Type | fType |
GSLMCIntegrationWorkspace * | fWorkspace |
#include <Math/GSLMCIntegrator.h>
typedef double(* ROOT::Math::GSLMCIntegrator::GSLMonteFuncPointer) (double *, size_t, void *) |
Definition at line 145 of file GSLMCIntegrator.h.
Definition at line 82 of file GSLMCIntegrator.h.
|
explicit |
constructor of GSL MCIntegrator.
VEGAS MC is set as default integration type
type | type of integration. The possible types are defined in the MCIntegration::Type enumeration Default is VEGAS |
absTol | desired absolute Error (this parameter is actually not used and it can be ignored. The tolerance is fixed by the number of given calls) |
relTol | desired relative Error (this parameter is actually not used and it can be ignored. The tolerance is fixed by the number of given calls) |
calls | maximum 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.
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
type | type of integration using a char * (required by plug-in manager) |
absTol | desired absolute Error |
relTol | desired relative Error |
calls | maximum number of function calls |
Definition at line 102 of file GSLMCIntegrator.cxx.
|
virtual |
destructor
Definition at line 133 of file GSLMCIntegrator.cxx.
|
private |
Definition at line 147 of file GSLMCIntegrator.cxx.
|
protected |
Definition at line 452 of file GSLMCIntegrator.cxx.
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.
|
protected |
Definition at line 396 of file GSLMCIntegrator.cxx.
|
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.
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.
|
inline |
return the type (need to be called GetType to avois a conflict with typedef)
Definition at line 275 of file GSLMCIntegrator.h.
const char * ROOT::Math::GSLMCIntegrator::GetTypeName | ( | ) | const |
return the name
Definition at line 461 of file GSLMCIntegrator.cxx.
|
virtual |
evaluate the integral using the previously defined function
Implements ROOT::Math::VirtualIntegratorMultiDim.
Definition at line 176 of file GSLMCIntegrator.cxx.
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)
f | integration function. The function type must implement the mathlib::IGenFunction interface |
a | lower value of the integration interval |
b | upper value of the integration interval |
Definition at line 222 of file GSLMCIntegrator.cxx.
|
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.
|
private |
Definition at line 151 of file GSLMCIntegrator.cxx.
|
virtual |
get the option used for the integration
Implements ROOT::Math::VirtualIntegratorMultiDim.
Definition at line 468 of file GSLMCIntegrator.cxx.
|
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.
|
virtual |
set the desired absolute Error
Implements ROOT::Math::VirtualIntegrator.
Definition at line 265 of file GSLMCIntegrator.cxx.
|
virtual |
method to set the a generic integration function
f | integration 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.
void ROOT::Math::GSLMCIntegrator::SetFunction | ( | GSLMonteFuncPointer | f, |
unsigned int | dim, | ||
void * | p = 0 |
||
) |
Definition at line 165 of file GSLMCIntegrator.cxx.
void ROOT::Math::GSLMCIntegrator::SetGenerator | ( | GSLRandomEngine & | r | ) |
set random number generator
Definition at line 267 of file GSLMCIntegrator.cxx.
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.
|
virtual |
set the integration options
Reimplemented from ROOT::Math::VirtualIntegratorMultiDim.
Definition at line 340 of file GSLMCIntegrator.cxx.
void ROOT::Math::GSLMCIntegrator::SetParameters | ( | const MiserParameters & | p | ) |
set default parameters for MISER method
Definition at line 382 of file GSLMCIntegrator.cxx.
void ROOT::Math::GSLMCIntegrator::SetParameters | ( | const VegasParameters & | p | ) |
set default parameters for VEGAS method
Definition at line 369 of file GSLMCIntegrator.cxx.
|
virtual |
set the desired relative Error
Implements ROOT::Math::VirtualIntegrator.
Definition at line 260 of file GSLMCIntegrator.cxx.
void ROOT::Math::GSLMCIntegrator::SetType | ( | MCIntegration::Type | type | ) |
set integration method
Definition at line 274 of file GSLMCIntegrator.cxx.
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.
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.
|
virtual |
return the Error Status of the last Integral calculation
Implements ROOT::Math::VirtualIntegrator.
Definition at line 252 of file GSLMCIntegrator.cxx.
|
private |
Definition at line 311 of file GSLMCIntegrator.h.
|
private |
Definition at line 310 of file GSLMCIntegrator.h.
|
private |
Definition at line 309 of file GSLMCIntegrator.h.
|
private |
Definition at line 317 of file GSLMCIntegrator.h.
|
private |
Definition at line 319 of file GSLMCIntegrator.h.
|
private |
Definition at line 323 of file GSLMCIntegrator.h.
|
private |
Definition at line 312 of file GSLMCIntegrator.h.
|
private |
Definition at line 316 of file GSLMCIntegrator.h.
|
private |
Definition at line 307 of file GSLMCIntegrator.h.
|
private |
Definition at line 318 of file GSLMCIntegrator.h.
|
private |
Definition at line 305 of file GSLMCIntegrator.h.
|
private |
Definition at line 322 of file GSLMCIntegrator.h.