46 std::uint64_t
const seed = 0,
47 std::uint64_t
const subsequence = 0,
48 std::uint64_t
const offset = 0)
49 : engineVariant(seed, subsequence, offset)
65 return std::numeric_limits<result_type>::max();
70 return engineVariant();
101 std::uint32_t
const seed = 0,
102 std::uint32_t
const subsequence = 0,
103 std::uint32_t
const offset = 0)
104 : engineVariant(seed, subsequence, offset)
108 template<
typename TScalar>
112 using ResultVec =
decltype(std::declval<EngineVariant>()());
121 return std::numeric_limits<ResultInt>::max();
126 return engineVariant();
constexpr Philox4x32x10Vector(std::uint32_t const seed=0, std::uint32_t const subsequence=0, std::uint32_t const offset=0)
Initialize a new Philox engine.
decltype(std::declval< EngineVariant >()()) ResultVec
internal::PhiloxVector< EngineParams > EngineVariant
static constexpr auto min() -> ResultInt
internal::PhiloxParams< 4, 32, 10 > EngineParams
static constexpr auto max() -> ResultInt
EngineVariant::ResultContainer< TScalar > ResultContainer
constexpr auto operator()() -> ResultVec
internal::PhiloxParams< 4, 32, 10 > EngineParams
Philox algorithm: 10 rounds, 4 numbers of size 32.
internal::PhiloxSingle< EngineParams > EngineVariant
Engine outputs a single number.
constexpr auto operator()() -> result_type
static constexpr auto max() -> result_type
constexpr Philox4x32x10(std::uint64_t const seed=0, std::uint64_t const subsequence=0, std::uint64_t const offset=0)
Initialize a new Philox engine.
std::uint32_t result_type
static constexpr auto min() -> result_type