vSMC
vSMC: Scalable Monte Carlo
Public Types | Public Member Functions | Static Public Member Functions | List of all members
vsmc::PhiloxGenerator< ResultType, K, Rounds > Class Template Reference

Philox RNG generator. More...

#include <vsmc/rng/philox.hpp>

Public Types

using ctr_type = std::array< ResultType, K >
 
using key_type = std::array< ResultType, K/2 >
 
using result_type = ResultType
 

Public Member Functions

 PhiloxGenerator ()
 
void operator() (ctr_type &ctr, const key_type &key, std::array< result_type, K > &buffer) const
 
std::size_t operator() (ctr_type &ctr, const key_type &key, std::size_t n, result_type *r) const
 
void reset (const key_type &)
 

Static Public Member Functions

static constexpr std::size_t size ()
 

Detailed Description

template<typename ResultType, std::size_t K = 4, std::size_t Rounds = 10>
class vsmc::PhiloxGenerator< ResultType, K, Rounds >

Philox RNG generator.

Definition at line 256 of file philox.hpp.

Member Typedef Documentation

template<typename ResultType , std::size_t K = 4, std::size_t Rounds = 10>
using vsmc::PhiloxGenerator< ResultType, K, Rounds >::ctr_type = std::array<ResultType, K>

Definition at line 260 of file philox.hpp.

template<typename ResultType , std::size_t K = 4, std::size_t Rounds = 10>
using vsmc::PhiloxGenerator< ResultType, K, Rounds >::key_type = std::array<ResultType, K / 2>

Definition at line 261 of file philox.hpp.

template<typename ResultType , std::size_t K = 4, std::size_t Rounds = 10>
using vsmc::PhiloxGenerator< ResultType, K, Rounds >::result_type = ResultType

Definition at line 259 of file philox.hpp.

Constructor & Destructor Documentation

template<typename ResultType , std::size_t K = 4, std::size_t Rounds = 10>
vsmc::PhiloxGenerator< ResultType, K, Rounds >::PhiloxGenerator ( )
inline

Definition at line 263 of file philox.hpp.

Member Function Documentation

template<typename ResultType , std::size_t K = 4, std::size_t Rounds = 10>
void vsmc::PhiloxGenerator< ResultType, K, Rounds >::operator() ( ctr_type ctr,
const key_type key,
std::array< result_type, K > &  buffer 
) const
inline

Definition at line 269 of file philox.hpp.

template<typename ResultType , std::size_t K = 4, std::size_t Rounds = 10>
std::size_t vsmc::PhiloxGenerator< ResultType, K, Rounds >::operator() ( ctr_type ctr,
const key_type key,
std::size_t  n,
result_type r 
) const
inline

Definition at line 284 of file philox.hpp.

template<typename ResultType , std::size_t K = 4, std::size_t Rounds = 10>
void vsmc::PhiloxGenerator< ResultType, K, Rounds >::reset ( const key_type )
inline

Definition at line 267 of file philox.hpp.

template<typename ResultType , std::size_t K = 4, std::size_t Rounds = 10>
static constexpr std::size_t vsmc::PhiloxGenerator< ResultType, K, Rounds >::size ( )
inlinestatic

Definition at line 265 of file philox.hpp.