Definition at line 74 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. | |
GSLMCIntegrator (MCIntegration::Type type=MCIntegration::kVEGAS, double absTol=-1, double relTol=-1, unsigned int calls=0) | |
constructor of GSL MCIntegrator. | |
~GSLMCIntegrator () override | |
destructor | |
double | ChiSqr () |
returns chi-squared per degree of freedom for the estimate of the integral in the Vegas algorithm | |
double | Error () const override |
return the estimate of the absolute Error of the last Integral calculation | |
std::unique_ptr< ROOT::Math::IOptions > | ExtraOptions () const |
get the specific options (for Vegas or Miser) in term of string- name. | |
MCIntegration::Type | GetType () const |
return the type (need to be called GetType to avoid a conflict with typedef) | |
const char * | GetTypeName () const |
return the name | |
double | Integral (const double *a, const double *b) override |
evaluate the integral using the previously defined function | |
double | Integral (const GSLMonteFuncPointer &f, unsigned int dim, double *a, double *b, void *p=nullptr) |
evaluate the Integral of a function f over the defined hypercube (a,b) | |
int | NEval () const override |
return number of function evaluations in calculating the integral (This is an fixed by the user) | |
ROOT::Math::IntegratorMultiDimOptions | Options () const override |
get the option used for the integration | |
double | Result () const override |
return the type of the integration used | |
void | SetAbsTolerance (double absTolerance) override |
set the desired absolute Error | |
void | SetExtraOptions (const ROOT::Math::IOptions &opt) |
Set the extra options for Vegas and Miser. | |
void | SetFunction (const IMultiGenFunction &f) override |
method to set the a generic integration function | |
void | SetFunction (GSLMonteFuncPointer f, unsigned int dim, void *p=nullptr) |
void | SetGenerator (GSLRandomEngine &r) |
set random number generator | |
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 sampling | |
void | SetOptions (const ROOT::Math::IntegratorMultiDimOptions &opt) override |
set the integration options | |
void | SetParameters (const MiserParameters &p) |
set default parameters for MISER method | |
void | SetParameters (const VegasParameters &p) |
set default parameters for VEGAS method | |
void | SetRelTolerance (double relTolerance) override |
set the desired relative Error | |
void | SetType (MCIntegration::Type type) |
set integration method | |
void | SetTypeName (const char *typeName) |
set integration method using a name instead of an enumeration | |
double | Sigma () |
set parameters for PLAIN method | |
int | Status () const override |
return the Error Status of the last Integral calculation | |
Public Member Functions inherited from ROOT::Math::VirtualIntegratorMultiDim | |
~VirtualIntegratorMultiDim () override | |
destructor: no operation | |
virtual ROOT::Math::IntegrationMultiDim::Type | Type () const |
return type of integrator | |
Public Member Functions inherited from ROOT::Math::VirtualIntegrator | |
virtual | ~VirtualIntegrator () |
destructor: no operation | |
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>
Definition at line 141 of file GSLMCIntegrator.h.
Definition at line 78 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 the 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.
|
override |
destructor
Definition at line 133 of file GSLMCIntegrator.cxx.
|
private |
Definition at line 147 of file GSLMCIntegrator.cxx.
|
protected |
Definition at line 457 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 439 of file GSLMCIntegrator.cxx.
|
protected |
Definition at line 401 of file GSLMCIntegrator.cxx.
|
overridevirtual |
return the estimate of the absolute Error of the last Integral calculation
Implements ROOT::Math::VirtualIntegrator.
Definition at line 253 of file GSLMCIntegrator.cxx.
std::unique_ptr< ROOT::Math::IOptions > ROOT::Math::GSLMCIntegrator::ExtraOptions | ( | ) | const |
get the specific options (for Vegas or Miser) in term of string- name.
return a new option object which is managed by user
This is for querying existing options and return object is managed by the user
Definition at line 484 of file GSLMCIntegrator.cxx.
|
inline |
return the type (need to be called GetType to avoid a conflict with typedef)
Definition at line 273 of file GSLMCIntegrator.h.
const char * ROOT::Math::GSLMCIntegrator::GetTypeName | ( | ) | const |
return the name
Definition at line 466 of file GSLMCIntegrator.cxx.
evaluate the integral using the previously defined function
Implements ROOT::Math::VirtualIntegratorMultiDim.
Definition at line 182 of file GSLMCIntegrator.cxx.
double ROOT::Math::GSLMCIntegrator::Integral | ( | const GSLMonteFuncPointer & | f, |
unsigned int | dim, | ||
double * | a, | ||
double * | b, | ||
void * | p = nullptr |
||
) |
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 |
dim | the dimension |
a | lower value of the integration interval |
b | upper value of the integration interval |
p | pointer to parameter array |
Definition at line 228 of file GSLMCIntegrator.cxx.
|
inlineoverridevirtual |
return number of function evaluations in calculating the integral (This is an fixed by the user)
Reimplemented from ROOT::Math::VirtualIntegrator.
Definition at line 195 of file GSLMCIntegrator.h.
|
private |
Definition at line 151 of file GSLMCIntegrator.cxx.
|
overridevirtual |
get the option used for the integration
Implements ROOT::Math::VirtualIntegratorMultiDim.
Definition at line 473 of file GSLMCIntegrator.cxx.
|
overridevirtual |
return the type of the integration used
return the Result of the last Integral calculation
Implements ROOT::Math::VirtualIntegrator.
Definition at line 248 of file GSLMCIntegrator.cxx.
|
overridevirtual |
set the desired absolute Error
Implements ROOT::Math::VirtualIntegrator.
Definition at line 271 of file GSLMCIntegrator.cxx.
void ROOT::Math::GSLMCIntegrator::SetExtraOptions | ( | const ROOT::Math::IOptions & | opt | ) |
Set the extra options for Vegas and Miser.
Definition at line 489 of file GSLMCIntegrator.cxx.
|
overridevirtual |
method to set the a generic integration function
f | integration function. The function type must implement the assignment 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 = nullptr |
||
) |
Definition at line 168 of file GSLMCIntegrator.cxx.
void ROOT::Math::GSLMCIntegrator::SetGenerator | ( | GSLRandomEngine & | r | ) |
set random number generator
Definition at line 273 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 sampling
Definition at line 331 of file GSLMCIntegrator.cxx.
|
overridevirtual |
set the integration options
Reimplemented from ROOT::Math::VirtualIntegratorMultiDim.
Definition at line 347 of file GSLMCIntegrator.cxx.
void ROOT::Math::GSLMCIntegrator::SetParameters | ( | const MiserParameters & | p | ) |
set default parameters for MISER method
Definition at line 387 of file GSLMCIntegrator.cxx.
void ROOT::Math::GSLMCIntegrator::SetParameters | ( | const VegasParameters & | p | ) |
set default parameters for VEGAS method
Definition at line 374 of file GSLMCIntegrator.cxx.
|
overridevirtual |
set the desired relative Error
Implements ROOT::Math::VirtualIntegrator.
Definition at line 266 of file GSLMCIntegrator.cxx.
void ROOT::Math::GSLMCIntegrator::SetType | ( | MCIntegration::Type | type | ) |
set integration method
Definition at line 280 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 306 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 419 of file GSLMCIntegrator.cxx.
|
overridevirtual |
return the Error Status of the last Integral calculation
Implements ROOT::Math::VirtualIntegrator.
Definition at line 258 of file GSLMCIntegrator.cxx.
|
private |
Definition at line 315 of file GSLMCIntegrator.h.
|
private |
Definition at line 314 of file GSLMCIntegrator.h.
|
private |
Definition at line 313 of file GSLMCIntegrator.h.
|
private |
Definition at line 321 of file GSLMCIntegrator.h.
|
private |
Definition at line 323 of file GSLMCIntegrator.h.
|
private |
Definition at line 327 of file GSLMCIntegrator.h.
|
private |
Definition at line 316 of file GSLMCIntegrator.h.
|
private |
Definition at line 320 of file GSLMCIntegrator.h.
|
private |
Definition at line 311 of file GSLMCIntegrator.h.
|
private |
Definition at line 322 of file GSLMCIntegrator.h.
|
private |
Definition at line 309 of file GSLMCIntegrator.h.
|
private |
Definition at line 326 of file GSLMCIntegrator.h.