Bitcoin Core 28.99.0
P2P Digital Currency
|
xoroshiro128++ PRNG. More...
#include <random.h>
Public Member Functions | |
constexpr | InsecureRandomContext (uint64_t seedval) noexcept |
constexpr void | Reseed (uint64_t seedval) noexcept |
constexpr uint64_t | rand64 () noexcept |
Public Member Functions inherited from RandomMixin< InsecureRandomContext > | |
constexpr | RandomMixin () noexcept=default |
RandomMixin (const RandomMixin &)=delete | |
RandomMixin (RandomMixin &&)=delete | |
RandomMixin & | operator= (const RandomMixin &)=delete |
RandomMixin & | operator= (RandomMixin &&)=delete |
uint64_t | randbits (int bits) noexcept |
Generate a random (bits)-bit integer. More... | |
uint64_t | randbits () noexcept |
Same as above, but with compile-time fixed bits count. More... | |
I | randrange (I range) noexcept |
Generate a random integer in the range [0..range), with range > 0. More... | |
Dur | randrange (typename std::common_type_t< Dur > range) noexcept |
Generate a uniform random duration in the range [0..max). More... | |
void | fillrand (Span< std::byte > span) noexcept |
Fill a Span with random bytes. More... | |
I | rand () noexcept |
Generate a random integer in its entire (non-negative) range. More... | |
std::vector< B > | randbytes (size_t len) noexcept |
Generate random bytes. More... | |
uint32_t | rand32 () noexcept |
Generate a random 32-bit integer. More... | |
uint256 | rand256 () noexcept |
generate a random uint256. More... | |
bool | randbool () noexcept |
Generate a random boolean. More... | |
Tp | rand_uniform_delay (const Tp &time, typename Tp::duration range) noexcept |
Return the time point advanced by a uniform random duration. More... | |
Chrono::duration | rand_uniform_duration (typename Chrono::duration range) noexcept |
Generate a uniform random duration in the range from 0 (inclusive) to range (exclusive). More... | |
std::chrono::microseconds | rand_exp_duration (std::chrono::microseconds mean) noexcept |
Return a duration sampled from an exponential distribution (https://en.wikipedia.org/wiki/Exponential_distribution). More... | |
uint64_t | operator() () noexcept |
Static Private Member Functions | |
static constexpr uint64_t | SplitMix64 (uint64_t &seedval) noexcept |
Private Attributes | |
uint64_t | m_s0 |
uint64_t | m_s1 |
Additional Inherited Members | |
Public Types inherited from RandomMixin< InsecureRandomContext > | |
typedef uint64_t | result_type |
Static Public Member Functions inherited from RandomMixin< InsecureRandomContext > | |
static constexpr uint64_t | min () noexcept |
static constexpr uint64_t | max () noexcept |
Protected Member Functions inherited from RandomMixin< InsecureRandomContext > | |
constexpr void | FlushCache () noexcept |
xoroshiro128++ PRNG.
Extremely fast, not appropriate for cryptographic purposes.
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/
|
inlineexplicitconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlinestaticconstexprprivatenoexcept |