Random
Random
#include <icy/random.h>Random implements a pseudo random number generator (PRNG) using the Mersenne Twister algorithm (std::mt19937).
Public Methods
| Return | Name | Description |
|---|---|---|
Random | Creates and initializes the PRNG. The stateSize parameter is accepted for API compatibility but is ignored; the engine always uses mt19937's fixed state size. | |
~Random | Destroys the PRNG. | |
void | seed | Seeds the pseudo random generator with the given seed. |
void | seed | Seeds the pseudo random generator with entropy from std::random_device. |
uint32_t | next | Returns the next pseudo random number from the mt19937 engine. |
uint32_t | next | Returns the next pseudo random number in the range [0, n). |
char | nextChar | Returns the next pseudo random byte as a char. |
bool | nextBool | Returns the next pseudo random boolean value. |
float | nextFloat | Returns the next pseudo random float in [0.0, 1.0]. |
double | nextDouble | Returns the next pseudo random double in [0.0, 1.0]. |
Random
Random(int stateSize)Creates and initializes the PRNG. The stateSize parameter is accepted for API compatibility but is ignored; the engine always uses mt19937's fixed state size.
Parameters
stateSizeIgnored; present for API compatibility only.
~Random
~Random()Destroys the PRNG.
seed
void seed(uint32_t seed)Seeds the pseudo random generator with the given seed.
Parameters
seed32-bit seed value.
seed
void seed()Seeds the pseudo random generator with entropy from std::random_device.
next
uint32_t next()Returns the next pseudo random number from the mt19937 engine.
Returns
Pseudo random uint32_t value.
next
uint32_t next(uint32_t n)Returns the next pseudo random number in the range [0, n).
Parameters
nUpper bound (exclusive).
Returns
Pseudo random value in [0, n).
nextChar
char nextChar()Returns the next pseudo random byte as a char.
Returns
Pseudo random char value.
nextBool
bool nextBool()Returns the next pseudo random boolean value.
Returns
true or false with equal probability.
nextFloat
float nextFloat()Returns the next pseudo random float in [0.0, 1.0].
Returns
Pseudo random float value.
nextDouble
double nextDouble()Returns the next pseudo random double in [0.0, 1.0].
Returns
Pseudo random double value.
Public Static Methods
| Return | Name | Description |
|---|---|---|
void | getSeed static | Fills the buffer with cryptographically random bytes from std::random_device. |
getSeed
static
static void getSeed(char * seed, unsigned length)Fills the buffer with cryptographically random bytes from std::random_device.
Parameters
seedBuffer to fill.lengthNumber of bytes to write into seed.
Private Attributes
| Return | Name | Description |
|---|---|---|
std::mt19937 | _engine |
_engine
std::mt19937 _engine