32 #ifndef ROOT_Math_GSLMCIntegrationWorkspace
33 #define ROOT_Math_GSLMCIntegrationWorkspace
35 #include "gsl/gsl_math.h"
36 #include "gsl/gsl_monte.h"
37 #include "gsl/gsl_monte_vegas.h"
38 #include "gsl/gsl_monte_miser.h"
39 #include "gsl/gsl_monte_plain.h"
59 virtual size_t NDim()
const {
return 0; }
62 virtual bool Init(
size_t dim) = 0;
89 if (dim > 0)
Init(dim);
93 fWs = gsl_monte_vegas_alloc( dim);
100 if (!
fWs)
return false;
101 int iret = gsl_monte_vegas_init(
fWs );
107 if (
fWs) gsl_monte_vegas_free(
fWs);
147 gsl_monte_vegas_state *
fWs;
164 if (dim > 0)
Init(dim);
169 fWs = gsl_monte_miser_alloc( dim);
178 if (!
fWs)
return false;
179 int iret = gsl_monte_miser_init(
fWs );
185 if (
fWs) gsl_monte_miser_free(
fWs);
222 gsl_monte_miser_state *
fWs;
239 fWs = gsl_monte_plain_alloc( dim);
245 if (!
fWs)
return false;
246 int iret = gsl_monte_plain_init(
fWs );
251 if (
fWs) gsl_monte_plain_free(
fWs);
270 gsl_monte_plain_state *
fWs;
bool ReInit()
re-initialize an existing the workspace
GSLPlainIntegrationWorkspace()
gsl_monte_vegas_state * fWs
bool Init(size_t dim)
initialize the workspace creating the GSL pointer if it is not there
virtual ROOT::Math::IOptions * Options() const
retrieve option pointer corresponding to parameters create a new object to be managed by the user ...
Namespace for new ROOT classes and functions.
Type
enumeration specifying the integration types.
void SetVegasParameters()
void SetMiserParameters()
gsl_monte_plain_state * GetWS()
structures collecting parameters for MISER multidimensional integration
void SetParameters(const MiserParameters &p)
const VegasParameters & Parameters() const
ClassImp(TIterator) Bool_t TIterator return false
Compare two iterator objects.
structures collecting parameters for VEGAS multidimensional integration FOr implementation of default...
MCIntegration::Type Type() const
virtual ROOT::Math::IOptions * Options() const
retrieve option pointer corresponding to parameters create a new object to be managed by the user ...
void Clear()
free the workspace deleting the GSL pointer
void Clear()
free the workspace deleting the GSL pointer
gsl_monte_miser_state * fWs
VegasParameters & Parameters()
bool Init(size_t dim)
initialize the workspace creating the GSL pointer if it is not there
virtual size_t NDim() const
void SetParameters(const struct VegasParameters &p)
void Clear()
free the workspace deleting the GSL pointer
GSLMiserIntegrationWorkspace(size_t dim=0)
size_t min_calls_per_bisection
virtual ~GSLMCIntegrationWorkspace()
gsl_monte_miser_state * GetWS()
bool Init(size_t dim)
initialize the workspace creating the GSL pointer if it is not there
MCIntegration::Type Type() const
gsl_monte_plain_state * fWs
MCIntegration::Type Type() const
virtual ROOT::Math::IOptions * Options() const =0
retrieve option pointer corresponding to parameters create a new object to be managed by the user ...
Namespace for new Math classes and functions.
MiserParameters & Parameters()
Generic interface for defining configuration options of a numerical algorithm.
virtual MCIntegration::Type Type() const =0
bool ReInit()
re-initialize an existing the workspace
virtual void Clear()
free the workspace deleting the GSL pointer
virtual bool ReInit()=0
re-initialize an existing the workspace
virtual bool Init(size_t dim)=0
initialize the workspace creating the GSL pointer if it is not there
GSLVegasIntegrationWorkspace(size_t dim=0)
gsl_monte_vegas_state * GetWS()
const MiserParameters & Parameters() const
virtual ROOT::Math::IOptions * Options() const
retrieve option pointer corresponding to parameters create a new object to be managed by the user ...
GSLMCIntegrationWorkspace()
bool ReInit()
re-initialize an existing the workspace