alpaka
Abstraction Library for Parallel Kernel Acceleration
Loading...
Searching...
No Matches
alpaka::rand::engine::internal Namespace Reference

Classes

class  PhiloxBaseCommon
 Common class for Philox family engines. More...
class  PhiloxConstants
 Constants used in the Philox algorithm. More...
struct  PhiloxParams
 Philox algorithm parameters. More...
class  PhiloxSingle
 Philox engine generating a single number. More...
struct  PhiloxState
 Philox state. More...
struct  PhiloxState< T_Counter, T_Key, PhiloxSingle< T_Params > >
 Philox state specialization for single value engine. More...
struct  PhiloxState< T_Counter, T_Key, PhiloxVector< T_Params > >
 Philox state specialization for vector engine more memory/register efficient. More...
class  PhiloxStateless
 Class basic Philox family counter-based PRNG. More...
class  PhiloxVector
 Philox engine generating a vector of numbers. More...

Functions

constexpr auto high32Bits (std::uint64_t const x) -> std::uint32_t
 Get high 32 bits of a 64-bit number.
constexpr auto low32Bits (std::uint64_t const x) -> std::uint32_t
 Get low 32 bits of a 64-bit number.
constexpr void multiplyAndSplit64to32 (std::uint64_t const a, std::uint64_t const b, std::uint32_t &resultHigh, std::uint32_t &resultLow)
 Multiply two 64-bit numbers and split the result into high and low 32 bits, also known as "mulhilo32".

Function Documentation

◆ high32Bits()

auto alpaka::rand::engine::internal::high32Bits ( std::uint64_t const x) -> std::uint32_t
constexpr

Get high 32 bits of a 64-bit number.

Definition at line 14 of file multiplyAndSplit64to32.hpp.

◆ low32Bits()

auto alpaka::rand::engine::internal::low32Bits ( std::uint64_t const x) -> std::uint32_t
constexpr

Get low 32 bits of a 64-bit number.

Definition at line 20 of file multiplyAndSplit64to32.hpp.

◆ multiplyAndSplit64to32()

void alpaka::rand::engine::internal::multiplyAndSplit64to32 ( std::uint64_t const a,
std::uint64_t const b,
std::uint32_t & resultHigh,
std::uint32_t & resultLow )
constexpr

Multiply two 64-bit numbers and split the result into high and low 32 bits, also known as "mulhilo32".

Parameters
afirst 64-bit multiplier
bsecond 64-bit multiplier
resultHighhigh 32 bits of the product a*b
resultLowlow 32 bits of the product a*b

Definition at line 33 of file multiplyAndSplit64to32.hpp.