10namespace alpaka::rand::engine::internal
20 template<
typename T_Params>
21 class PhiloxVector :
public PhiloxBaseCommon<T_Params, PhiloxVector<T_Params>>
24 using Base = PhiloxBaseCommon<T_Params, PhiloxVector<T_Params>>;
27 using Counter =
typename Base::Counter;
29 using Key =
typename Base::Key;
30 using State = PhiloxState<Counter, Key, PhiloxVector<T_Params>>;
31 template<
typename TDistributionResultScalar>
32 using ResultContainer =
typename Base::template ResultContainer<TDistributionResultScalar>;
39 constexpr auto nextVector()
41 this->advanceCounter(this->state.counter);
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)
63 : Base(State{{0, 0, 0, 0}, {low32Bits(seed), high32Bits(seed)}})
65 this->skipSubsequence(subsequence);
74 constexpr auto operator()()