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

Constants used in the Philox algorithm. More...

#include <PhiloxConstants.hpp>

Static Public Member Functions

static consteval std::uint32_t MULTIPLITER_4x32_0 ()
 First Philox S-box multiplier.
static consteval std::uint32_t MULTIPLITER_4x32_1 ()
 Second Philox S-box multiplier.
static consteval std::uint32_t WEYL_32_0 ()
 1st Weyl sequence parameter, 32 bits
static consteval std::uint32_t WEYL_32_1 ()
 2nd Weyl sequence parameter, 32 bits
static consteval std::uint64_t WEYL_64_0 ()
 First Weyl sequence parameter: the golden ratio.
static consteval std::uint64_t WEYL_64_1 ()
 Second Weyl sequence parameter: $ \sqrt{3}-1 $.

Detailed Description

Constants used in the Philox algorithm.

The numbers are taken from the reference Philox implementation:

J. K. Salmon, M. A. Moraes, R. O. Dror and D. E. Shaw, "Parallel random numbers: As easy as 1, 2, 3," SC '11: Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, 2011, pp. 1-12, doi: 10.1145/2063384.2063405.

static const data members are transformed into functions, because GCC assumes types with static data members to be not mappable and makes not exception for constexpr ones. This is a valid interpretation of the OpenMP <= 4.5 standard. In OpenMP >= 5.0 types with any kind of static data member are mappable.

Definition at line 28 of file PhiloxConstants.hpp.

Member Function Documentation

◆ MULTIPLITER_4x32_0()

consteval std::uint32_t alpaka::rand::engine::internal::PhiloxConstants::MULTIPLITER_4x32_0 ( )
inlinestaticconsteval

First Philox S-box multiplier.

Definition at line 56 of file PhiloxConstants.hpp.

◆ MULTIPLITER_4x32_1()

consteval std::uint32_t alpaka::rand::engine::internal::PhiloxConstants::MULTIPLITER_4x32_1 ( )
inlinestaticconsteval

Second Philox S-box multiplier.

Definition at line 62 of file PhiloxConstants.hpp.

◆ WEYL_32_0()

consteval std::uint32_t alpaka::rand::engine::internal::PhiloxConstants::WEYL_32_0 ( )
inlinestaticconsteval

1st Weyl sequence parameter, 32 bits

Definition at line 44 of file PhiloxConstants.hpp.

◆ WEYL_32_1()

consteval std::uint32_t alpaka::rand::engine::internal::PhiloxConstants::WEYL_32_1 ( )
inlinestaticconsteval

2nd Weyl sequence parameter, 32 bits

Definition at line 50 of file PhiloxConstants.hpp.

◆ WEYL_64_0()

consteval std::uint64_t alpaka::rand::engine::internal::PhiloxConstants::WEYL_64_0 ( )
inlinestaticconsteval

First Weyl sequence parameter: the golden ratio.

Definition at line 32 of file PhiloxConstants.hpp.

◆ WEYL_64_1()

consteval std::uint64_t alpaka::rand::engine::internal::PhiloxConstants::WEYL_64_1 ( )
inlinestaticconsteval

Second Weyl sequence parameter: $ \sqrt{3}-1 $.

Definition at line 38 of file PhiloxConstants.hpp.


The documentation for this class was generated from the following file: