15#ifndef ROOT_Math_GSLRngROOTWrapper
16#define ROOT_Math_GSLRngROOTWrapper
18#include "gsl/gsl_rng.h"
38 template <
class Engine>
59 static void Seed(
void *p,
unsigned long seed)
64 if (seed == gsl_rng_default_seed) {
66 if (!wrng->fEngine) wrng->fEngine =
new Engine();
68 assert(wrng->fEngine !=
nullptr);
69 wrng->fEngine->SetSeed(seed);
76 wrng->fEngine =
nullptr;
79 static unsigned long Max() {
return Engine::MaxInt(); }
80 static unsigned long Min() {
return Engine::MinInt(); }
82 static std::string
Name() {
return std::string(
"GSL_") + Engine::Name(); }
static const std::string gsl_mixmax_name
const gsl_rng_type * gsl_rng_mixmax
ROOT::Math::GSLRngROOTWrapper< ROOT::Math::MixMaxEngine< 17, 0 > > GSLMixMaxWrapper
static const gsl_rng_type mixmax_type
Namespace for new Math classes and functions.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
class for wrapping ROOT Engines in gsl_rng types which can be used as extra GSL random number generat...
static unsigned long IntRndm(void *p)
static void FreeEngine(gsl_rng *r)
static void Seed(void *p, unsigned long seed)
static unsigned long Max()
static std::string Name()
static unsigned long Min()
static void CreateEngine(gsl_rng *r)
static double Rndm(void *p)