Template Class PhiloxNative

Class Documentation

template<std::uint8_t N = 4, std::uint8_t W = 32, std::uint8_t R = 10>
class PhiloxNative

Public Types

using result_type = std::uint64_t
using word_type = std::conditional_t<W == 32, std::uint32_t, std::uint64_t>
using counter_type = std::array<word_type, N>
using key_type = std::array<word_type, N / 2>

Public Functions

inline explicit PhiloxNative(result_type seed, result_type counter = 0) noexcept
inline PhiloxNative(key_type key, counter_type counter) noexcept
inline result_type operator()() noexcept
inline double uniform() noexcept
inline counter_type getCounter() const noexcept
inline key_type getKey() const noexcept
inline counter_type getCounterForSerde() const noexcept
inline void setState(const counter_type &ctr, const key_type &key) noexcept
inline std::uint8_t cache_index() const noexcept
inline void set_cache_index(std::uint8_t idx) noexcept
inline const std::array<result_type, CACHE_SIZE> &cache() const noexcept
inline std::array<result_type, CACHE_SIZE> &cache() noexcept
inline std::size_t getSIMDSize() const noexcept

Public Static Functions

static inline constexpr auto() min () noexcept
static inline constexpr auto() max () noexcept

Public Static Attributes

static constexpr std::uint16_t CACHE_SIZE = 256