15#ifndef ROOT_Math_GSLRngROOTWrapper
16#define ROOT_Math_GSLRngROOTWrapper
18#include "gsl/gsl_rng.h"
37 template <
class Engine>
58 static void Seed(
void *p,
unsigned long seed)
63 if (seed == gsl_rng_default_seed) {
65 if (!wrng->fEngine) wrng->fEngine =
new Engine();
67 assert(wrng->fEngine !=
nullptr);
68 wrng->fEngine->SetSeed(seed);
75 wrng->fEngine =
nullptr;
78 static unsigned long Max() {
return Engine::MaxInt(); }
79 static unsigned long Min() {
return Engine::MinInt(); }
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.
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)