Skip to content

Class epi_xoshiro256ss

ClassList > epi_xoshiro256ss

Fast 64-bit PRNG based on the xoshiro256** algorithm. More...

  • #include <rng-utils.hpp>

Public Types

Type Name
typedef uint64_t result_type

Public Functions

Type Name
epi_xoshiro256ss (uint64_t seed_val=0) noexcept
result_type operator() () noexcept
void seed (uint64_t seed_val) noexcept

Public Static Functions

Type Name
constexpr result_type max () noexcept
constexpr result_type min () noexcept

Detailed Description

xoshiro256** has 256-bit state, 64-bit output, and passes all known statistical tests. It is significantly faster than std::mt19937. State is seeded via SplitMix64 from a single 64-bit value.

Reference: Blackman & Vigna, "Scrambled Linear Pseudorandom Number Generators", ACM TOMS, 2021. https://prng.di.unimi.it/

Public Types Documentation

typedef result_type

using epi_xoshiro256ss::result_type =  uint64_t;

Public Functions Documentation

function epi_xoshiro256ss

inline explicit epi_xoshiro256ss::epi_xoshiro256ss (
    uint64_t seed_val=0
) noexcept

function operator()

inline result_type epi_xoshiro256ss::operator() () noexcept

function seed

inline void epi_xoshiro256ss::seed (
    uint64_t seed_val
) noexcept

Public Static Functions Documentation

function max

static inline constexpr result_type epi_xoshiro256ss::max () noexcept

function min

static inline constexpr result_type epi_xoshiro256ss::min () noexcept


The documentation for this class was generated from the following file epiworld-src/include/epiworld/rng-utils.hpp