RandLib 2.0.0
Probability distributions, fitting, and heavy-tail tools for C++20
Loading...
Searching...
No Matches
randlib::Pcg32 Class Reference

The Pcg32 class
PCG-XSH-RR with 64 bits of state and 32-bit output (Melissa O'Neill, https://www.pcg-random.org), seeded exactly as the reference pcg32_srandom_r(seed, stream). More...

#include <pcg.hpp>

Public Types

using result_type = std::uint32_t
 

Public Member Functions

constexpr Pcg32 (std::uint64_t value=default_seed, std::uint64_t stream=default_stream) noexcept
 
template<class SeedSeq >
requires (!std::convertible_to<SeedSeq &, std::uint64_t>)
 Pcg32 (SeedSeq &sequence)
 
constexpr void seed (std::uint64_t value, std::uint64_t stream=default_stream) noexcept
 
template<class SeedSeq >
requires (!std::convertible_to<SeedSeq &, std::uint64_t>)
void seed (SeedSeq &sequence)
 
constexpr result_type operator() () noexcept
 
constexpr void discard (unsigned long long n) noexcept
 

Static Public Member Functions

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

Static Public Attributes

static constexpr std::uint64_t default_seed = 0x853C49E6748FEA9BULL
 
static constexpr std::uint64_t default_stream = 0xDA3E39CB94B95BDBULL
 

Friends

constexpr bool operator== (const Pcg32 &, const Pcg32 &)=default
 

Detailed Description

The Pcg32 class
PCG-XSH-RR with 64 bits of state and 32-bit output (Melissa O'Neill, https://www.pcg-random.org), seeded exactly as the reference pcg32_srandom_r(seed, stream).

Member Typedef Documentation

◆ result_type

using randlib::Pcg32::result_type = std::uint32_t

Constructor & Destructor Documentation

◆ Pcg32() [1/2]

constexpr randlib::Pcg32::Pcg32 ( std::uint64_t  value = default_seed,
std::uint64_t  stream = default_stream 
)
inlineexplicitconstexprnoexcept

◆ Pcg32() [2/2]

template<class SeedSeq >
requires (!std::convertible_to<SeedSeq &, std::uint64_t>)
randlib::Pcg32::Pcg32 ( SeedSeq &  sequence)
inlineexplicit

Member Function Documentation

◆ discard()

constexpr void randlib::Pcg32::discard ( unsigned long long  n)
inlineconstexprnoexcept

◆ max()

static constexpr result_type randlib::Pcg32::max ( )
inlinestaticconstexprnoexcept

◆ min()

static constexpr result_type randlib::Pcg32::min ( )
inlinestaticconstexprnoexcept

◆ operator()()

constexpr result_type randlib::Pcg32::operator() ( )
inlineconstexprnoexcept

◆ seed() [1/2]

template<class SeedSeq >
requires (!std::convertible_to<SeedSeq &, std::uint64_t>)
void randlib::Pcg32::seed ( SeedSeq &  sequence)
inline

◆ seed() [2/2]

constexpr void randlib::Pcg32::seed ( std::uint64_t  value,
std::uint64_t  stream = default_stream 
)
inlineconstexprnoexcept

Friends And Related Symbol Documentation

◆ operator==

constexpr bool operator== ( const Pcg32 &  ,
const Pcg32 &   
)
friend

Member Data Documentation

◆ default_seed

constexpr std::uint64_t randlib::Pcg32::default_seed = 0x853C49E6748FEA9BULL
staticconstexpr

◆ default_stream

constexpr std::uint64_t randlib::Pcg32::default_stream = 0xDA3E39CB94B95BDBULL
staticconstexpr

The documentation for this class was generated from the following file: