InsecureRandomContext

xoroshiro128++ PRNG. Extremely fast, not appropriate for cryptographic purposes.

Synopsis

Declared in <random.h>

class InsecureRandomContext
    : public RandomMixin<InsecureRandomContext>

Description

Memory footprint is very small, period is 2^128 - 1. This class is not thread-safe.

Reference implementation available at https://prng.di.unimi.it/xoroshiro128plusplus.c See https://prng.di.unimi.it/

Base Classes

NameDescription
RandomMixin<InsecureRandomContext>Mixin class that provides helper randomness functions.

Type Aliases

NameDescription
result_type Result type of the generator, for the UniformRandomBitGenerator concept.

Member Functions

NameDescription
InsecureRandomContext [constructor]Construct the context, deriving the initial state from a seed value.
operator= Assignment operators
Reseed Reset the context to a new state derived from a seed value.
fillrand Fill a span with random bytes.
operator() Generate the next random value, for the UniformRandomBitGenerator concept.
rand Generate a random integer in its entire (non-negative) range.
rand256 generate a random uint256.
rand32 Generate a random 32-bit integer.
rand64 Generate a random 64-bit integer.
rand_exp_duration 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.
rand_uniform_delay Return the time point advanced by a uniform random duration.
rand_uniform_duration Generate a uniform random duration in the range from 0 (inclusive) to range (exclusive).
randbits randbits overloads
randbool Generate a random boolean.
randbytes randbytes overloads
randrange randrange overloads

Static Member Functions

NameDescription
max Largest value the generator can produce.
min Smallest value the generator can produce.

Protected Member Functions

NameDescription
FlushCache Discard any random bits buffered from a previous rand64() call.