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);
92 bool Init(
size_t dim)
override {
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);
118 size_t NDim()
const override {
return (
fWs) ?
fWs->dim : 0; }
147 gsl_monte_vegas_state *
fWs;
164 if (dim > 0)
Init(dim);
168 bool Init(
size_t dim)
override {
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);
197 size_t NDim()
const override {
return (
fWs) ?
fWs->dim : 0; }
222 gsl_monte_miser_state *
fWs;
238 bool Init(
size_t dim)
override {
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);
261 size_t NDim()
const override {
return (
fWs) ?
fWs->dim : 0; }
270 gsl_monte_plain_state *
fWs;
winID h TVirtualViewer3D TVirtualGLPainter p
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
bool ReInit() override
re-initialize an existing the workspace
const MiserParameters & Parameters() const
void SetMiserParameters()
GSLMiserIntegrationWorkspace(size_t dim=0)
void Clear() override
free the workspace deleting the GSL pointer
ROOT::Math::IOptions * Options() const override
retrieve option pointer corresponding to parameters create a new object to be managed by the user
MiserParameters & Parameters()
size_t NDim() const override
bool Init(size_t dim) override
initialize the workspace creating the GSL pointer if it is not there
gsl_monte_miser_state * GetWS()
void SetParameters(const MiserParameters &p)
MCIntegration::Type Type() const override
ROOT::Math::IOptions * Options() const override
retrieve option pointer corresponding to parameters create a new object to be managed by the user
void Clear() override
free the workspace deleting the GSL pointer
MCIntegration::Type Type() const override
bool ReInit() override
re-initialize an existing the workspace
bool Init(size_t dim) override
initialize the workspace creating the GSL pointer if it is not there
gsl_monte_plain_state * GetWS()
gsl_monte_plain_state * fWs
GSLPlainIntegrationWorkspace()
size_t NDim() const override
gsl_monte_vegas_state * fWs
gsl_monte_vegas_state * GetWS()
void Clear() override
free the workspace deleting the GSL pointer
bool ReInit() override
re-initialize an existing the workspace
bool Init(size_t dim) override
initialize the workspace creating the GSL pointer if it is not there
const VegasParameters & Parameters() const
MCIntegration::Type Type() const override
VegasParameters & Parameters()
ROOT::Math::IOptions * Options() const override
retrieve option pointer corresponding to parameters create a new object to be managed by the user
void SetParameters(const struct VegasParameters &p)
GSLVegasIntegrationWorkspace(size_t dim=0)
void SetVegasParameters()
size_t NDim() const override
Generic interface for defining configuration options of a numerical algorithm.
Type
enumeration specifying the integration types.
Namespace for new Math classes and functions.
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
structures collecting parameters for MISER multidimensional integration
size_t min_calls_per_bisection
structures collecting parameters for VEGAS multidimensional integration FOr implementation of default...