Mixin class that provides helper randomness functions.
Synopsis
Declared in <random.h>
template<typename T>
class RandomMixin;
Description
Intended to be used through CRTP: https://en.cppreference.com/w/cpp/language/crtp. An RNG class FunkyRNG would derive publicly from RandomMixin<FunkyRNG>. This permits RandomMixin from accessing the derived class's rand64() function, while also allowing the derived class to provide more.
The derived class must satisfy the RandomNumberGenerator concept.
Type Aliases
Name |
Description |
Result type of the generator, for the UniformRandomBitGenerator concept. |
Member Functions
Name |
Description |
|
Constructors |
Assignment operators |
|
Fill a span with random bytes. |
|
Generate the next random value, for the UniformRandomBitGenerator concept. |
|
Generate a random integer in its entire (non‐negative) range. |
|
generate a random uint256. |
|
Generate a random 32‐bit integer. |
|
Return a duration sampled from an exponential distribution (https://en.wikipedia.org/wiki/Exponential_distribution). Successive events whose intervals are distributed according to this form a memoryless Poisson process. This should be used for repeated network events (e.g. sending a certain type of message) to minimize leaking information to observers. |
|
Return the time point advanced by a uniform random duration. |
|
Generate a uniform random duration in the range from 0 (inclusive) to range (exclusive). |
|
|
|
Generate a random boolean. |
|
|
|
|
Static Member Functions
Protected Member Functions
Name |
Description |
Discard any random bits buffered from a previous rand64() call. |
Derived Classes
Name |
Description |
Fast randomness source. This is seeded once with secure random data, but is completely deterministic and does not gather more entropy after that. |
|
xoroshiro128++ PRNG. Extremely fast, not appropriate for cryptographic purposes. |
Created with MrDocs