26 template<
typename TParams,
typename TImpl>
34 template<
typename TDistributionResultScalar>
70 Counter& counter =
static_cast<TImpl*
>(
this)->state.counter;
74 counter[2] += (counter[0] < temp[1] ? 1u : 0u);
75 counter[3] += (counter[0] < temp[2] ? 1u : 0u);
86 Counter& counter =
static_cast<TImpl*
>(
this)->state.counter;
89 counter[3] +=
high32Bits(subsequence) + (counter[2] < temp[2] ? 1 : 0);
ALPAKA_FN_HOST_ACC void advanceCounter(Counter &counter)
typename PhiloxStateless< TParams >::Counter Counter
ALPAKA_FN_HOST_ACC void skipSubsequence(uint64_t subsequence)
typename alpaka::Vec< alpaka::DimInt< TParams::counterSize >, TDistributionResultScalar > ResultContainer
Distribution container type.
typename PhiloxStateless< TParams >::Key Key
ALPAKA_FN_HOST_ACC void skip4(uint64_t offset)
#define ALPAKA_FN_HOST_ACC
The random number generator engine specifics.
constexpr ALPAKA_FN_HOST_ACC auto high32Bits(std::uint64_t const x) -> std::uint32_t
Get high 32 bits of a 64-bit number.
constexpr ALPAKA_FN_HOST_ACC auto low32Bits(std::uint64_t const x) -> std::uint32_t
Get low 32 bits of a 64-bit number.