46 std::uint64_t
const seed = 0,
47 std::uint64_t
const subsequence = 0,
48 std::uint64_t
const offset = 0)
65 return std::numeric_limits<result_type>::max();
101 std::uint32_t
const seed = 0,
102 std::uint32_t
const subsequence = 0,
103 std::uint32_t
const offset = 0)
108 template<
typename TScalar>
112 using ResultVec =
decltype(std::declval<EngineVariant>()());
121 return std::numeric_limits<ResultInt>::max();
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
EngineVariant engineVariant
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
EngineVariant engineVariant
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
Philox engine generating a single number.
Philox engine generating a vector of numbers.
typename Base::template ResultContainer< TDistributionResultScalar > ResultContainer
Philox algorithm parameters.