Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Math::RanluxppEngineImpl< w, p, u > Class Template Reference

template<int w, int p, int u>
class ROOT::Math::RanluxppEngineImpl< w, p, u >

Definition at line 149 of file RanluxppEngineImpl.cxx.

Public Member Functions

uint64_t NextRandomBits ()
 Return the next random bits, generate a new block if necessary.
 
double NextRandomFloat ()
 Return a floating point number, converted from the next random bits.
 
void SetSeedGsl (uint32_t s, bool ranlxd)
 Initialize and seed the state of the generator as in gsl_rng_ranlx*.
 
void SetSeedJames (uint64_t s)
 Initialize and seed the state of the generator as in James' implementation.
 
void SetSeedSibidanov (uint64_t s)
 Initialize and seed the state of the generator as proposed by Sibidanov.
 
void SetSeedStd24 (uint64_t s)
 Initialize and seed the state of the generator as described by the C++ standard.
 
void SetSeedStd48 (uint64_t s)
 Initialize and seed the state of the generator as described by the C++ standard.
 
void Skip (uint64_t n)
 Skip n random numbers without generating them.
 

Private Member Functions

void Advance ()
 Produce next block of random bits.
 
void Advance (const uint64_t *a)
 Advance with given multiplier.
 
void Skip24 ()
 Skip 24 RANLUX numbers.
 

Private Attributes

unsigned fCarry
 Carry bit of the RANLUX state.
 
int fPosition = 0
 Current position in bits.
 
uint64_t fState [9]
 RANLUX state of the generator.
 

Static Private Attributes

static constexpr const uint64_t * kA = RanluxppData<p>::kA
 
static constexpr int kMaxPos = (u == 0) ? 9 * 64 : u * w
 

Friends

class RanluxppCompatEngineLuescherImpl< w, p >
 

Member Function Documentation

◆ Advance() [1/2]

template<int w, int p, int u>
void ROOT::Math::RanluxppEngineImpl< w, p, u >::Advance ( )
inlineprivate

Produce next block of random bits.

Definition at line 173 of file RanluxppEngineImpl.cxx.

◆ Advance() [2/2]

template<int w, int p, int u>
void ROOT::Math::RanluxppEngineImpl< w, p, u >::Advance ( const uint64_t *  a)
inlineprivate

Advance with given multiplier.

Definition at line 163 of file RanluxppEngineImpl.cxx.

◆ NextRandomBits()

template<int w, int p, int u>
uint64_t ROOT::Math::RanluxppEngineImpl< w, p, u >::NextRandomBits ( )
inline

Return the next random bits, generate a new block if necessary.

Definition at line 186 of file RanluxppEngineImpl.cxx.

◆ NextRandomFloat()

template<int w, int p, int u>
double ROOT::Math::RanluxppEngineImpl< w, p, u >::NextRandomFloat ( )
inline

Return a floating point number, converted from the next random bits.

Definition at line 209 of file RanluxppEngineImpl.cxx.

◆ SetSeedGsl()

template<int w, int p, int u>
void ROOT::Math::RanluxppEngineImpl< w, p, u >::SetSeedGsl ( uint32_t  s,
bool  ranlxd 
)
inline

Initialize and seed the state of the generator as in gsl_rng_ranlx*.

Definition at line 249 of file RanluxppEngineImpl.cxx.

◆ SetSeedJames()

template<int w, int p, int u>
void ROOT::Math::RanluxppEngineImpl< w, p, u >::SetSeedJames ( uint64_t  s)
inline

Initialize and seed the state of the generator as in James' implementation.

Definition at line 217 of file RanluxppEngineImpl.cxx.

◆ SetSeedSibidanov()

template<int w, int p, int u>
void ROOT::Math::RanluxppEngineImpl< w, p, u >::SetSeedSibidanov ( uint64_t  s)
inline

Initialize and seed the state of the generator as proposed by Sibidanov.

Definition at line 293 of file RanluxppEngineImpl.cxx.

◆ SetSeedStd24()

template<int w, int p, int u>
void ROOT::Math::RanluxppEngineImpl< w, p, u >::SetSeedStd24 ( uint64_t  s)
inline

Initialize and seed the state of the generator as described by the C++ standard.

Definition at line 314 of file RanluxppEngineImpl.cxx.

◆ SetSeedStd48()

template<int w, int p, int u>
void ROOT::Math::RanluxppEngineImpl< w, p, u >::SetSeedStd48 ( uint64_t  s)
inline

Initialize and seed the state of the generator as described by the C++ standard.

Definition at line 340 of file RanluxppEngineImpl.cxx.

◆ Skip()

template<int w, int p, int u>
void ROOT::Math::RanluxppEngineImpl< w, p, u >::Skip ( uint64_t  n)
inline

Skip n random numbers without generating them.

Definition at line 369 of file RanluxppEngineImpl.cxx.

◆ Skip24()

template<int w, int p, int u>
void ROOT::Math::RanluxppEngineImpl< w, p, u >::Skip24 ( )
inlineprivate

Skip 24 RANLUX numbers.

Definition at line 179 of file RanluxppEngineImpl.cxx.

Friends And Related Symbol Documentation

◆ RanluxppCompatEngineLuescherImpl< w, p >

template<int w, int p, int u>
friend class RanluxppCompatEngineLuescherImpl< w, p >
friend

Definition at line 809 of file RanluxppEngineImpl.cxx.

Member Data Documentation

◆ fCarry

template<int w, int p, int u>
unsigned ROOT::Math::RanluxppEngineImpl< w, p, u >::fCarry
private

Carry bit of the RANLUX state.

Definition at line 155 of file RanluxppEngineImpl.cxx.

◆ fPosition

template<int w, int p, int u>
int ROOT::Math::RanluxppEngineImpl< w, p, u >::fPosition = 0
private

Current position in bits.

Definition at line 156 of file RanluxppEngineImpl.cxx.

◆ fState

template<int w, int p, int u>
uint64_t ROOT::Math::RanluxppEngineImpl< w, p, u >::fState[9]
private

RANLUX state of the generator.

Definition at line 154 of file RanluxppEngineImpl.cxx.

◆ kA

template<int w, int p, int u>
constexpr const uint64_t* ROOT::Math::RanluxppEngineImpl< w, p, u >::kA = RanluxppData<p>::kA
staticconstexprprivate

Definition at line 158 of file RanluxppEngineImpl.cxx.

◆ kMaxPos

template<int w, int p, int u>
constexpr int ROOT::Math::RanluxppEngineImpl< w, p, u >::kMaxPos = (u == 0) ? 9 * 64 : u * w
staticconstexprprivate

Definition at line 159 of file RanluxppEngineImpl.cxx.

  • math/mathcore/inc/Math/RanluxppEngine.h
  • math/mathcore/src/RanluxppEngineImpl.cxx