SST 12.1.0
Structural Simulation Toolkit

Implements a Mersennebased RNG for use in the SST core or components. More...
#include "sst/core/rng/mersenne.h"
Public Member Functions  
MersenneRNG (unsigned int seed)  
Create a new Mersenne RNG with a specified seed. More...  
MersenneRNG ()  
Creates a new Mersenne using a random seed which is obtained from the system clock. More...  
double  nextUniform () override 
Generates the next random number as a double value between 0 and 1. More...  
uint32_t  generateNextUInt32 () override 
Generates the next random number as an unsigned 32bit integer. More...  
uint64_t  generateNextUInt64 () override 
Generates the next random number as an unsigned 64bit integer. More...  
int64_t  generateNextInt64 () override 
Generates the next random number as a signed 64bit integer. More...  
int32_t  generateNextInt32 () override 
Generates the next random number as a signed 32bit integer. More...  
void  seed (uint64_t newSeed) 
Seed the XOR RNG.  
~MersenneRNG ()  
Destructor for Mersenne.  
Public Member Functions inherited from SST::RNG::Random  
virtual double  nextUniform ()=0 
Generates the next random number in the range [0,1). More...  
virtual uint32_t  generateNextUInt32 ()=0 
Generates the next random number as an unsigned 32bit integer. More...  
virtual uint64_t  generateNextUInt64 ()=0 
Generates the next random number as an unsigned 64bit integer. More...  
virtual int64_t  generateNextInt64 ()=0 
Generates the next random number as a signed 64bit integer. More...  
virtual int32_t  generateNextInt32 ()=0 
Generates the next random number as a signed 32bit integer. More...  
virtual  ~Random () 
Destroys the random number generator.  
Implements a Mersennebased RNG for use in the SST core or components.
The Mersenne RNG provides a better "randomness" to the distribution of outputs but is computationally more expensive than the Marsaglia RNG.
MersenneRNG::MersenneRNG  (  unsigned int  seed  ) 
Create a new Mersenne RNG with a specified seed.
[in]  seed  The seed for this RNG 
References seed().
MersenneRNG::MersenneRNG  (  ) 
Creates a new Mersenne using a random seed which is obtained from the system clock.
Note this will give different results on different platforms and between runs.

overridevirtual 
Generates the next random number as a signed 32bit integer.
Implements SST::RNG::Random.
References generateNextUInt32().

overridevirtual 
Generates the next random number as a signed 64bit integer.
Implements SST::RNG::Random.
References generateNextUInt32().
Referenced by generateNextUInt64().

overridevirtual 
Generates the next random number as an unsigned 32bit integer.
Implements SST::RNG::Random.
Referenced by generateNextInt32(), generateNextInt64(), and nextUniform().

overridevirtual 
Generates the next random number as an unsigned 64bit integer.
Implements SST::RNG::Random.
References generateNextInt64().

overridevirtual 
Generates the next random number as a double value between 0 and 1.
Implements SST::RNG::Random.
References generateNextUInt32().