12#ifndef ROOT_Math_RanluxppEngine 
   13#define ROOT_Math_RanluxppEngine 
   23template <
int w, 
int p, 
int u = 0>
 
   24class RanluxppEngineImpl;
 
   31   std::unique_ptr<ImplType> 
fImpl;
 
   38   double Rndm() 
override;
 
   47   void Skip(uint64_t 
n);
 
   50   static const char *
Name() { 
return "RANLUX++"; }
 
 
   65   std::unique_ptr<ImplType> 
fImpl;
 
   72   double Rndm() 
override;
 
   79   void SetSeed(uint64_t seed);
 
   81   void Skip(uint64_t 
n);
 
   84   static const char *
Name() { 
return "RanluxppCompatJames"; }
 
 
  111   double Rndm() 
override;
 
  118   void SetSeed(uint64_t seed);
 
  120   void Skip(uint64_t 
n);
 
  123   static const char *
Name() { 
return "RanluxppCompatGslRanlxs"; }
 
 
  148   double Rndm() 
override;
 
  155   void SetSeed(uint64_t seed);
 
  157   void Skip(uint64_t 
n);
 
  160   static const char *
Name() { 
return "RanluxppCompatGslRanlxd"; }
 
 
  170template <
int w, 
int p>
 
  186   double Rndm() 
override;
 
  193   void SetSeed(uint64_t seed);
 
  195   void Skip(uint64_t 
n);
 
  198   static const char *
Name() { 
return "RanluxppCompatLuescherRanlxs"; }
 
 
  223   double Rndm() 
override;
 
  230   void SetSeed(uint64_t seed);
 
  232   void Skip(uint64_t 
n);
 
  235   static const char *
Name() { 
return "RanluxppCompatLuescherRanlxd"; }
 
 
  256   double Rndm() 
override;
 
  263   void SetSeed(uint64_t seed);
 
  265   void Skip(uint64_t 
n);
 
  268   static const char *
Name() { 
return "RanluxppCompatStdRanlux24"; }
 
 
  284   double Rndm() 
override;
 
  291   void SetSeed(uint64_t seed);
 
  293   void Skip(uint64_t 
n);
 
  296   static const char *
Name() { 
return "RanluxppCompatStdRanlux48"; }
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
TRObject operator()(const T1 &t1) const
 
Compatibility engine for gsl_rng_ranlxd* from the GNU Scientific Library.
 
~RanluxppCompatEngineGslRanlxd() override
 
std::unique_ptr< ImplType > fImpl
 
static const char * Name()
Get name of the generator.
 
Compatibility engine for gsl_rng_ranlxs* from the GNU Scientific Library.
 
static const char * Name()
Get name of the generator.
 
~RanluxppCompatEngineGslRanlxs() override
 
std::unique_ptr< ImplType > fImpl
 
std::unique_ptr< ImplType > fImpl
 
~RanluxppCompatEngineJames() override
 
static const char * Name()
Get name of the generator.
 
Compatibility engine for Lüscher's ranlxd implementation written in C.
 
~RanluxppCompatEngineLuescherRanlxd() override
 
std::unique_ptr< ImplType > fImpl
 
static const char * Name()
Get name of the generator.
 
Compatibility engine for Lüscher's ranlxs implementation written in C.
 
std::unique_ptr< ImplType > fImpl
 
static const char * Name()
Get name of the generator.
 
~RanluxppCompatEngineLuescherRanlxs() override
 
Compatibility engine for std::ranlux24 from the C++ standard.
 
std::unique_ptr< ImplType > fImpl
 
static const char * Name()
Get name of the generator.
 
~RanluxppCompatEngineStdRanlux24() override
 
Compatibility engine for std::ranlux48 from the C++ standard.
 
static const char * Name()
Get name of the generator.
 
std::unique_ptr< ImplType > fImpl
 
~RanluxppCompatEngineStdRanlux48() override
 
Implementation of the RANLUX++ generator.
 
uint64_t IntRndm()
Generate a random integer value with 48 bits.
 
double Rndm() override
Generate a double-precision random number with 48 bits of randomness.
 
void Skip(uint64_t n)
Skip n random numbers without generating them.
 
void SetSeed(uint64_t seed)
Initialize and seed the state of the generator.
 
~RanluxppEngine() override
 
double operator()()
Generate a double-precision random number (non-virtual method)
 
RanluxppEngine(uint64_t seed=314159265)
 
static const char * Name()
Get name of the generator.
 
std::unique_ptr< ImplType > fImpl
 
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...