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

Threefry RNG generator using AVX2. More...

#include <vsmc/rng/threefry.hpp>

Public Types

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

Public Member Functions

void operator() (ctr_type &ctr, const key_type &key, std::array< ResultType, size()> &buffer) const
 
void operator() (ctr_type &ctr, const key_type &key, std::size_t n, std::array< ResultType, size()> *buffer) 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 = 20>
class vsmc::ThreefryGeneratorAVX2< ResultType, K, Rounds >

Threefry RNG generator using AVX2.

Definition at line 705 of file threefry.hpp.

Member Typedef Documentation

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

Definition at line 721 of file threefry.hpp.

template<typename ResultType , std::size_t K = 4, std::size_t Rounds = 20>
using vsmc::ThreefryGeneratorAVX2< ResultType, K, Rounds >::key_type = std::array<ResultType, K>

Definition at line 722 of file threefry.hpp.

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

Definition at line 720 of file threefry.hpp.

Member Function Documentation

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

Definition at line 731 of file threefry.hpp.

template<typename ResultType , std::size_t K = 4, std::size_t Rounds = 20>
void vsmc::ThreefryGeneratorAVX2< ResultType, K, Rounds >::operator() ( ctr_type ctr,
const key_type key,
std::size_t  n,
std::array< ResultType, size()> *  buffer 
) const
inline

Definition at line 748 of file threefry.hpp.

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

Definition at line 729 of file threefry.hpp.

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

Definition at line 724 of file threefry.hpp.