|
dasmig-core 1.2.0
Shared random engine, distributions and data tiers for the dasmig generator libraries
|
The random engine every generator library uses: xoshiro256** seeded through SplitMix64, with labelled child streams. More...
#include <array>#include <bit>#include <cstdint>#include <limits>#include <random>#include <string_view>Go to the source code of this file.
Classes | |
| class | dasmig::core::splitmix64 |
| The SplitMix64 generator (Steele, Lea and Flood 2014). More... | |
| class | dasmig::core::rng |
| The core random engine: xoshiro256** (Blackman and Vigna 2018). More... | |
Functions | |
| constexpr std::uint64_t | dasmig::core::splitmix64_mix (std::uint64_t z) noexcept |
| The SplitMix64 output function (a bijection on 64-bit values). | |
| constexpr std::uint64_t | dasmig::core::fnv1a64 (std::string_view text) noexcept |
| 64-bit FNV-1a hash of the bytes of a string. | |
| constexpr std::uint64_t | dasmig::core::hash_combine (std::uint64_t hash, std::uint64_t value) noexcept |
| Combine a hash with another 64-bit value, order-sensitively. | |
The random engine every generator library uses: xoshiro256** seeded through SplitMix64, with labelled child streams.
The algorithms are fixed and the output is part of the core's contract: a seed gives the same sequence on every compiler and platform. Changing any of them is a major version change.
Definition in file rng.hpp.
|
constexprnoexcept |
|
constexprnoexcept |