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.