3#ifndef TETL_RANDOM_XORSHIFT_HPP
4#define TETL_RANDOM_XORSHIFT_HPP
16template <
unsigned_
integral UInt, UInt X, UInt Y, UInt Z>
34 constexpr auto discard(
unsigned long long z)
noexcept ->
void
36 for (
auto i{0ULL}; i < z; ++i) {
52 return lhs._state == rhs._state;
xorshift< uint64_t, 13, 7, 17 > xorshift64
Definition xorshift.hpp:75
xorshift< uint32_t, 13, 17, 5 > xorshift32
Definition xorshift.hpp:70
xorshift< uint16_t, 7, 9, 8 > xorshift16
16-bit pseudo number generator
Definition xorshift.hpp:65
Definition adjacent_find.hpp:8
static constexpr auto max() noexcept
Definition numeric_limits.hpp:21
static constexpr auto min() noexcept
Definition numeric_limits.hpp:20
constexpr xorshift(result_type seed) noexcept
Definition xorshift.hpp:23
constexpr auto seed(result_type value=default_seed) noexcept -> void
Definition xorshift.hpp:32
constexpr auto discard(unsigned long long z) noexcept -> void
Definition xorshift.hpp:34
static constexpr auto max() noexcept -> result_type
Definition xorshift.hpp:30
friend constexpr auto operator==(xorshift const &lhs, xorshift const &rhs) noexcept -> bool
Definition xorshift.hpp:50
constexpr xorshift()=default
UInt result_type
Definition xorshift.hpp:18
static constexpr auto min() noexcept -> result_type
Definition xorshift.hpp:28
constexpr auto operator()() noexcept -> result_type
Definition xorshift.hpp:41
static constexpr auto default_seed
Definition xorshift.hpp:19