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;
virtual ~GSLMCIntegrationWorkspace()
virtual void Clear()
free the workspace deleting the GSL pointer
virtual size_t NDim() const
GSLMCIntegrationWorkspace()
virtual ROOT::Math::IOptions * Options() const =0
retrieve option pointer corresponding to parameters create a new object to be managed by the user
virtual MCIntegration::Type Type() const =0
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
gsl_monte_miser_state * fWs
const MiserParameters & Parameters() const
void Clear()
free the workspace deleting the GSL pointer
void SetMiserParameters()
GSLMiserIntegrationWorkspace(size_t dim=0)
MiserParameters & Parameters()
MCIntegration::Type Type() const
bool ReInit()
re-initialize an existing the workspace
bool Init(size_t dim)
initialize the workspace creating the GSL pointer if it is not there
gsl_monte_miser_state * GetWS()
virtual ROOT::Math::IOptions * Options() const
retrieve option pointer corresponding to parameters create a new object to be managed by the user
void SetParameters(const MiserParameters &p)
bool Init(size_t dim)
initialize the workspace creating the GSL pointer if it is not there
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
gsl_monte_plain_state * GetWS()
bool ReInit()
re-initialize an existing the workspace
gsl_monte_plain_state * fWs
GSLPlainIntegrationWorkspace()
void Clear()
free the workspace deleting the GSL pointer
gsl_monte_vegas_state * fWs
gsl_monte_vegas_state * GetWS()
MCIntegration::Type Type() const
void Clear()
free the workspace deleting the GSL pointer
const VegasParameters & Parameters() const
VegasParameters & Parameters()
void SetParameters(const struct VegasParameters &p)
GSLVegasIntegrationWorkspace(size_t dim=0)
void SetVegasParameters()
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
bool ReInit()
re-initialize an existing the workspace
Generic interface for defining configuration options of a numerical algorithm.
Type
enumeration specifying the integration types.
Namespace for new Math classes and functions.
Namespace for new ROOT classes and functions.
structures collecting parameters for MISER multidimensional integration
size_t min_calls_per_bisection
structures collecting parameters for VEGAS multidimensional integration FOr implementation of default...