SST 12.1.0
Structural Simulation Toolkit
|
Implements a Mersenne-based 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 32-bit integer. More... | |
uint64_t | generateNextUInt64 () override |
Generates the next random number as an unsigned 64-bit integer. More... | |
int64_t | generateNextInt64 () override |
Generates the next random number as a signed 64-bit integer. More... | |
int32_t | generateNextInt32 () override |
Generates the next random number as a signed 32-bit 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 32-bit integer. More... | |
virtual uint64_t | generateNextUInt64 ()=0 |
Generates the next random number as an unsigned 64-bit integer. More... | |
virtual int64_t | generateNextInt64 ()=0 |
Generates the next random number as a signed 64-bit integer. More... | |
virtual int32_t | generateNextInt32 ()=0 |
Generates the next random number as a signed 32-bit integer. More... | |
virtual | ~Random () |
Destroys the random number generator. | |
Implements a Mersenne-based 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 32-bit integer.
Implements SST::RNG::Random.
References generateNextUInt32().
|
overridevirtual |
Generates the next random number as a signed 64-bit integer.
Implements SST::RNG::Random.
References generateNextUInt32().
Referenced by generateNextUInt64().
|
overridevirtual |
Generates the next random number as an unsigned 32-bit integer.
Implements SST::RNG::Random.
Referenced by generateNextInt32(), generateNextInt64(), and nextUniform().
|
overridevirtual |
Generates the next random number as an unsigned 64-bit 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().