12#ifndef SST_CORE_RNG_MERSENNE_H
13#define SST_CORE_RNG_MERSENNE_H
20#define MERSENNE_UINT32_MAX 4294967295U
21#define MERSENNE_UINT64_MAX 18446744073709551615ULL
22#define MERSENNE_INT32_MAX 2147483647L
23#define MERSENNE_INT64_MAX 9223372036854775807LL
78 void seed(uint64_t newSeed);
99 void generateNextBatch();
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition serializer.h:45
Implements a Mersenne-based RNG for use in the SST core or components.
Definition mersenne.h:34
double nextUniform() override
Generates the next random number as a double value between 0 and 1.
Definition mersenne.cc:76
MersenneRNG(unsigned int seed)
Create a new Mersenne RNG with a specified seed.
Definition mersenne.cc:49
ImplementSerializable(SST::RNG::MersenneRNG) private uint32_t * numbers
Serialization macro.
Definition mersenne.h:93
int32_t generateNextInt32() override
Generates the next random number as a signed 32-bit integer.
Definition mersenne.cc:138
void serialize_order(SST::Core::Serialization::serializer &ser) override
Serialization function for checkpoint.
Definition mersenne.cc:167
MersenneRNG()
Creates a new Mersenne using a random seed which is obtained from the system clock.
Definition mersenne.cc:29
int index
Tells us what index of the random number list the next returnable number should come from.
Definition mersenne.h:109
int64_t generateNextInt64() override
Generates the next random number as a signed 64-bit integer.
Definition mersenne.cc:116
uint32_t generateNextUInt32() override
Generates the next random number as an unsigned 32-bit integer.
Definition mersenne.cc:88
~MersenneRNG()
Destructor for Mersenne.
Definition mersenne.cc:161
uint64_t generateNextUInt64() override
Generates the next random number as an unsigned 64-bit integer.
Definition mersenne.cc:105
void seed(uint64_t newSeed)
Seed the XOR RNG.
Definition mersenne.cc:149
Implements the base class for random number generators for the SST core.
Definition rng.h:29