20 template<
typename T_Params>
31 template<
typename TDistributionResultScalar>
42 return this->
nRounds(this->
state.counter, this->state.key);
50 constexpr void skip(uint64_t offset)
62 constexpr explicit PhiloxVector(uint64_t seed = 0, uint64_t subsequence = 0, uint64_t offset = 0)
65 this->skipSubsequence(subsequence);
typename PhiloxStateless< T_Params >::Counter Counter
typename PhiloxStateless< T_Params >::Key Key
State state
Internal engine state.
constexpr void skip4(uint64_t offset)
constexpr PhiloxBaseCommon(State &&state)
static constexpr void advanceCounter(alpaka::Vec< T, N > &counter)
static constexpr auto nRounds(Counter const &counter_in, Key const &key_in) -> Counter
Performs N rounds of the Philox shuffle.
constexpr PhiloxVector(uint64_t seed=0, uint64_t subsequence=0, uint64_t offset=0)
Construct a new Philox engine with vector output.
PhiloxState< Counter, Key, PhiloxVector< EngineParams > > State
typename Base::template ResultContainer< TDistributionResultScalar > ResultContainer
constexpr void skip(uint64_t offset)
Skips the next offset vectors.
typename Base::Counter Counter
PhiloxBaseCommon< EngineParams, PhiloxVector< EngineParams > > Base
constexpr auto operator()()
Get the next vector of random numbers.
constexpr auto nextVector()
Get the next array of random numbers and advance internal state.
constexpr auto low32Bits(std::uint64_t const x) -> std::uint32_t
Get low 32 bits of a 64-bit number.
constexpr auto high32Bits(std::uint64_t const x) -> std::uint32_t
Get high 32 bits of a 64-bit number.