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);
89 void generateNextBatch();
106 #endif //SST_CORE_RNG_MERSENNE_H
uint32_t generateNextUInt32()
Generates the next random number as an unsigned 32-bit integer.
Definition: mersenne.cc:70
double nextUniform()
Generates the next random number as a double value between 0 and 1.
Definition: mersenne.cc:65
Implements a Mersenne-based RNG for use in the SST core or components.
Definition: mersenne.h:34
void seed(uint64_t newSeed)
Seed the XOR RNG.
Definition: mersenne.cc:122
MersenneRNG()
Creates a new Mersenne using a random seed which is obtained from the system clock.
Definition: mersenne.cc:25
int64_t generateNextInt64()
Generates the next random number as a signed 64-bit integer.
Definition: mersenne.cc:93
Implements the base class for random number generators for the SST core.
Definition: sstrng.h:27
uint64_t generateNextUInt64()
Generates the next random number as an unsigned 64-bit integer.
Definition: mersenne.cc:84
~MersenneRNG()
Destructor for Mersenne.
Definition: mersenne.cc:133
int32_t generateNextInt32()
Generates the next random number as a signed 32-bit integer.
Definition: mersenne.cc:113