alpaka
Abstraction Library for Parallel Kernel Acceleration
alpaka::rand::engine::PhiloxStatelessKeyedBase< TParams > Struct Template Reference

#include <PhiloxStatelessKeyedBase.hpp>

+ Inheritance diagram for alpaka::rand::engine::PhiloxStatelessKeyedBase< TParams >:

Public Types

using Counter = typename PhiloxStateless< TParams >::Counter
 
using Key = typename PhiloxStateless< TParams >::Key
 
- Public Types inherited from alpaka::rand::engine::PhiloxStateless< TParams >
using Constants = PhiloxConstants< TParams >
 
using Counter = alpaka::Vec< alpaka::DimInt< TParams::counterSize >, std::uint32_t >
 
using Key = alpaka::Vec< alpaka::DimInt< TParams::counterSize/2 >, std::uint32_t >
 

Public Member Functions

 PhiloxStatelessKeyedBase (Key &&key)
 
ALPAKA_FN_HOST_ACC auto operator() (Counter const &counter) const
 

Public Attributes

Key const m_key
 

Additional Inherited Members

- Static Public Member Functions inherited from alpaka::rand::engine::PhiloxStateless< TParams >
static ALPAKA_FN_HOST_ACC auto generate (Counter const &counter, Key const &key) -> Counter
 
- Static Public Member Functions inherited from alpaka::rand::engine::PhiloxConstants< TParams >
static constexpr std::uint32_t MULTIPLITER_4x32_0 ()
 First Philox S-box multiplier. More...
 
static constexpr std::uint32_t MULTIPLITER_4x32_1 ()
 Second Philox S-box multiplier. More...
 
static constexpr std::uint32_t WEYL_32_0 ()
 1st Weyl sequence parameter, 32 bits More...
 
static constexpr std::uint32_t WEYL_32_1 ()
 2nd Weyl sequence parameter, 32 bits More...
 
static constexpr std::uint64_t WEYL_64_0 ()
 First Weyl sequence parameter: the golden ratio. More...
 
static constexpr std::uint64_t WEYL_64_1 ()
 Second Weyl sequence parameter: $ \sqrt{3}-1 $. More...
 
- Static Protected Member Functions inherited from alpaka::rand::engine::PhiloxStateless< TParams >
static ALPAKA_FN_HOST_ACC auto bumpKey (Key const &key)
 
static ALPAKA_FN_HOST_ACC auto nRounds (Counter const &counter_in, Key const &key_in) -> Counter
 
static ALPAKA_FN_HOST_ACC auto singleRound (Counter const &counter, Key const &key)
 

Detailed Description

template<typename TParams>
struct alpaka::rand::engine::PhiloxStatelessKeyedBase< TParams >

Common class for Philox family engines

Checks the validity of passed-in parameters and calls the backend methods to perform N rounds of the Philox shuffle.

Template Parameters
TParamsPhilox algorithm parameters
See also
PhiloxParams

Definition at line 19 of file PhiloxStatelessKeyedBase.hpp.

Member Typedef Documentation

◆ Counter

template<typename TParams >
using alpaka::rand::engine::PhiloxStatelessKeyedBase< TParams >::Counter = typename PhiloxStateless<TParams>::Counter

Definition at line 22 of file PhiloxStatelessKeyedBase.hpp.

◆ Key

template<typename TParams >
using alpaka::rand::engine::PhiloxStatelessKeyedBase< TParams >::Key = typename PhiloxStateless<TParams>::Key

Definition at line 23 of file PhiloxStatelessKeyedBase.hpp.

Constructor & Destructor Documentation

◆ PhiloxStatelessKeyedBase()

template<typename TParams >
alpaka::rand::engine::PhiloxStatelessKeyedBase< TParams >::PhiloxStatelessKeyedBase ( Key &&  key)
inline

Definition at line 27 of file PhiloxStatelessKeyedBase.hpp.

Member Function Documentation

◆ operator()()

template<typename TParams >
ALPAKA_FN_HOST_ACC auto alpaka::rand::engine::PhiloxStatelessKeyedBase< TParams >::operator() ( Counter const &  counter) const
inline

Definition at line 31 of file PhiloxStatelessKeyedBase.hpp.

Member Data Documentation

◆ m_key

template<typename TParams >
Key const alpaka::rand::engine::PhiloxStatelessKeyedBase< TParams >::m_key

Definition at line 25 of file PhiloxStatelessKeyedBase.hpp.


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