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).
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
| Parameter | Type | Description |
|---|---|---|
stateSize | int | Ignored; 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
| Parameter | Type | Description |
|---|---|---|
seed | uint32_t | 32-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).
Returns
Pseudo random value in [0, n).
Parameters
| Parameter | Type | Description |
|---|---|---|
n | uint32_t | Upper bound (exclusive). |
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 entropy 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 entropy bytes from std::random_device.
Parameters
| Parameter | Type | Description |
|---|---|---|
seed | char * | Buffer to fill. |
length | unsigned | Number of bytes to write into seed. |
Private Attributes
| Return | Name | Description |
|---|---|---|
std::mt19937 | _engine |
_engine
std::mt19937 _engine