Random
Random
#include <icy/random.h>class RandomDefined in src/base/include/icy/random.h:25
Random implements a pseudo random number generator (PRNG) using the Mersenne Twister algorithm (std::mt19937).
List of all members
| Name | Kind | Owner |
|---|---|---|
Random | function | Declared here |
~Random | function | Declared here |
seed | function | Declared here |
seed | function | Declared here |
next | function | Declared here |
next | function | Declared here |
nextChar | function | Declared here |
nextBool | function | Declared here |
nextFloat | function | Declared here |
nextDouble | function | Declared here |
getSeed | function | Declared here |
_engine | variable | Declared here |
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 = 256)Defined in src/base/include/icy/random.h:32
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()Defined in src/base/include/icy/random.h:35
Destroys the PRNG.
seed
void seed(uint32_t seed)Defined in src/base/include/icy/random.h:39
Seeds the pseudo random generator with the given seed.
Parameters
seed32-bit seed value.
seed
void seed()Defined in src/base/include/icy/random.h:42
Seeds the pseudo random generator with entropy from std::random_device.
next
uint32_t next()Defined in src/base/include/icy/random.h:46
Returns the next pseudo random number from the mt19937 engine.
Returns
Pseudo random uint32_t value.
next
uint32_t next(uint32_t n)Defined in src/base/include/icy/random.h:51
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()Defined in src/base/include/icy/random.h:55
Returns the next pseudo random byte as a char.
Returns
Pseudo random char value.
nextBool
bool nextBool()Defined in src/base/include/icy/random.h:59
Returns the next pseudo random boolean value.
Returns
true or false with equal probability.
nextFloat
float nextFloat()Defined in src/base/include/icy/random.h:63
Returns the next pseudo random float in [0.0, 1.0].
Returns
Pseudo random float value.
nextDouble
double nextDouble()Defined in src/base/include/icy/random.h:67
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)Defined in src/base/include/icy/random.h:72
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