| SST
    11.1.0
    StructuralSimulationToolkit | 
Implements a random number generator using the Marsaglia method. More...
#include "sst/core/rng/marsaglia.h"
 
  
 | Public Member Functions | |
| MarsagliaRNG (unsigned int initial_z, unsigned int initial_w) | |
| Creates a new Marsaglia RNG using the initial seeds.  More... | |
| MarsagliaRNG () | |
| Creates a new Marsaglia RNG using random initial seeds (which are read from the system clock).  More... | |
| void | restart (unsigned int new_z, unsigned int new_w) | 
| Restart the random number generator with new seeds.  More... | |
| double | nextUniform () override | 
| Generates the next random number as a double in the range 0 to 1. | |
| uint32_t | generateNextUInt32 () override | 
| Generates the next random number as an unsigned 32-bit integer. | |
| uint64_t | generateNextUInt64 () override | 
| Generates the next random number as an unsigned 64-bit integer. | |
| int64_t | generateNextInt64 () override | 
| Generates the next number as a signed 64-bit integer. | |
| int32_t | generateNextInt32 () override | 
| Generates the next number as a signed 32-bit integer. | |
| void | seed (uint64_t newSeed) | 
| Seed the XOR RNG. | |
|  Public Member Functions inherited from SST::RNG::Random | |
| virtual | ~Random () | 
| Destroys the random number generator. | |
Implements a random number generator using the Marsaglia method.
This method is computationally cheap and provides a reasonable distribution of random numbers. If you need additional strength in the random numbers you may want to consider the Mersenne RNG.
For more information see the Multiply-with-carry Random Number Generator article
at Wikipedia (http://en.wikipedia.org/wiki/Multiply-with-carry).
| MarsagliaRNG::MarsagliaRNG | ( | unsigned int | initial_z, | 
| unsigned int | initial_w | ||
| ) | 
Creates a new Marsaglia RNG using the initial seeds.
| [in] | initial_z | One of the random seed pairs | 
| [in] | initial_w | One of the random seed pairs. | 
| MarsagliaRNG::MarsagliaRNG | ( | ) | 
Creates a new Marsaglia RNG using random initial seeds (which are read from the system clock).
Note that these will create variation between runs and between platforms.
| void MarsagliaRNG::restart | ( | unsigned int | new_z, | 
| unsigned int | new_w | ||
| ) | 
Restart the random number generator with new seeds.
| [in] | new_z | A new Z-seed | 
| [in] | new_w | A new W-seed |