11namespace alpaka::rand::engine::internal
14 constexpr auto high32Bits(std::uint64_t
const x) -> std::uint32_t
16 return static_cast<std::uint32_t
>(x >> 32);
20 constexpr auto low32Bits(std::uint64_t
const x) -> std::uint32_t
22 return static_cast<std::uint32_t
>(x & 0xffff'ffff);
33 constexpr void multiplyAndSplit64to32(
34 std::uint64_t
const a,
35 std::uint64_t
const b,
36 std::uint32_t& resultHigh,
37 std::uint32_t& resultLow)
39 std::uint64_t
const res64 = a * b;
40 resultHigh = high32Bits(res64);
41 resultLow = low32Bits(res64);