FastMM documentation
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
Loading...
Searching...
No Matches
fastmm::Xoshiro256ss Class Reference

#include <fastmm/core/rng.hpp>

Public Types

using result_type = std::uint64_t
 std::uniform_random_bit_generator interface
 

Public Member Functions

constexpr Xoshiro256ss (std::uint64_t seed=0x9E3779B97F4A7C15ULL) noexcept
 
constexpr void reseed (std::uint64_t seed) noexcept
 
constexpr std::uint64_t next () noexcept
 
constexpr std::uint64_t operator() () noexcept
 
constexpr std::uint64_t uniform (std::uint64_t n) noexcept
 Unbiased integer in [0, n) (Lemire's multiply-shift with rejection).
 
constexpr std::int64_t between (std::int64_t lo, std::int64_t hi) noexcept
 Integer in [lo, hi] inclusive.
 
double uniform01 () noexcept
 Double in [0, 1). Sim/backtest only (hot path is integer).
 

Static Public Member Functions

static constexpr result_type min () noexcept
 
static constexpr result_type max () noexcept
 

Member Typedef Documentation

◆ result_type

using fastmm::Xoshiro256ss::result_type = std::uint64_t

std::uniform_random_bit_generator interface

Constructor & Destructor Documentation

◆ Xoshiro256ss()

constexpr fastmm::Xoshiro256ss::Xoshiro256ss ( std::uint64_t  seed = 0x9E3779B97F4A7C15ULL)
inlineexplicitconstexprnoexcept

Member Function Documentation

◆ reseed()

constexpr void fastmm::Xoshiro256ss::reseed ( std::uint64_t  seed)
inlineconstexprnoexcept

splitmix64 expands the seed so that seed 0 does not produce the all-zero state.

◆ next()

constexpr std::uint64_t fastmm::Xoshiro256ss::next ( )
inlineconstexprnoexcept

◆ operator()()

constexpr std::uint64_t fastmm::Xoshiro256ss::operator() ( )
inlineconstexprnoexcept

◆ uniform()

constexpr std::uint64_t fastmm::Xoshiro256ss::uniform ( std::uint64_t  n)
inlineconstexprnoexcept

Unbiased integer in [0, n) (Lemire's multiply-shift with rejection).

◆ between()

constexpr std::int64_t fastmm::Xoshiro256ss::between ( std::int64_t  lo,
std::int64_t  hi 
)
inlineconstexprnoexcept

Integer in [lo, hi] inclusive.

◆ uniform01()

double fastmm::Xoshiro256ss::uniform01 ( )
inlinenoexcept

Double in [0, 1). Sim/backtest only (hot path is integer).

◆ min()

static constexpr result_type fastmm::Xoshiro256ss::min ( )
inlinestaticconstexprnoexcept

◆ max()

static constexpr result_type fastmm::Xoshiro256ss::max ( )
inlinestaticconstexprnoexcept