vSMC
vSMC: Scalable Monte Carlo
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends | List of all members
vsmc::XorwowEngine< Eng, D, DInit > Class Template Reference

Xorwow RNG engine. More...

#include <vsmc/rng/xorshift.hpp>

Public Types

typedef Eng engine_type
 
typedef Eng::result_type result_type
 

Public Member Functions

 XorwowEngine (result_type s=1)
 
template<typename SeedSeq >
 XorwowEngine (SeedSeq &seq, typename cxx11::enable_if< internal::is_seed_seq< SeedSeq, result_type, XorwowEngine< Eng, D, DInit > >::value >::type *=nullptr)
 
void discard (std::size_t nskip)
 
result_type operator() ()
 
void seed (result_type s)
 
template<typename SeedSeq >
void seed (SeedSeq &seq, typename cxx11::enable_if< internal::is_seed_seq< SeedSeq, result_type, XorwowEngine< Eng, D, DInit > >::value >::type *=nullptr)
 

Static Public Member Functions

static constexpr result_type max ()
 
static constexpr result_type min ()
 

Static Public Attributes

static constexpr const result_type _Max
 
static constexpr const result_type _Min = 0
 

Friends

bool operator!= (const XorwowEngine< Eng, D, DInit > &eng1, const XorwowEngine< Eng, D, DInit > &eng2)
 
template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const XorwowEngine< Eng, D, DInit > &eng)
 
bool operator== (const XorwowEngine< Eng, D, DInit > &eng1, const XorwowEngine< Eng, D, DInit > &eng2)
 
template<typename CharT , typename Traits >
std::basic_istream< CharT, Traits > & operator>> (std::basic_istream< CharT, Traits > &is, XorwowEngine< Eng, D, DInit > &eng)
 

Detailed Description

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
class vsmc::XorwowEngine< Eng, D, DInit >

Xorwow RNG engine.

Use Marsaglia's Xorwow algorithm with an Xorshift engine.

Definition at line 339 of file xorshift.hpp.

Member Typedef Documentation

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
typedef Eng vsmc::XorwowEngine< Eng, D, DInit >::engine_type

Definition at line 344 of file xorshift.hpp.

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
typedef Eng::result_type vsmc::XorwowEngine< Eng, D, DInit >::result_type

Definition at line 343 of file xorshift.hpp.

Constructor & Destructor Documentation

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
vsmc::XorwowEngine< Eng, D, DInit >::XorwowEngine ( result_type  s = 1)
inlineexplicit

Definition at line 346 of file xorshift.hpp.

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
template<typename SeedSeq >
vsmc::XorwowEngine< Eng, D, DInit >::XorwowEngine ( SeedSeq &  seq,
typename cxx11::enable_if< internal::is_seed_seq< SeedSeq, result_type, XorwowEngine< Eng, D, DInit > >::value >::type = nullptr 
)
inlineexplicit

Definition at line 349 of file xorshift.hpp.

Member Function Documentation

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
void vsmc::XorwowEngine< Eng, D, DInit >::discard ( std::size_t  nskip)
inline

Definition at line 373 of file xorshift.hpp.

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
static constexpr result_type vsmc::XorwowEngine< Eng, D, DInit >::max ( )
inlinestatic

Definition at line 384 of file xorshift.hpp.

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
static constexpr result_type vsmc::XorwowEngine< Eng, D, DInit >::min ( )
inlinestatic

Definition at line 383 of file xorshift.hpp.

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
result_type vsmc::XorwowEngine< Eng, D, DInit >::operator() ( )
inline

Definition at line 370 of file xorshift.hpp.

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
void vsmc::XorwowEngine< Eng, D, DInit >::seed ( result_type  s)
inline

Definition at line 354 of file xorshift.hpp.

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
template<typename SeedSeq >
void vsmc::XorwowEngine< Eng, D, DInit >::seed ( SeedSeq &  seq,
typename cxx11::enable_if< internal::is_seed_seq< SeedSeq, result_type, XorwowEngine< Eng, D, DInit > >::value >::type = nullptr 
)
inline

Definition at line 361 of file xorshift.hpp.

Friends And Related Function Documentation

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
bool operator!= ( const XorwowEngine< Eng, D, DInit > &  eng1,
const XorwowEngine< Eng, D, DInit > &  eng2 
)
friend

Definition at line 391 of file xorshift.hpp.

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
template<typename CharT , typename Traits >
std::basic_ostream<CharT, Traits>& operator<< ( std::basic_ostream< CharT, Traits > &  os,
const XorwowEngine< Eng, D, DInit > &  eng 
)
friend

Definition at line 397 of file xorshift.hpp.

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
bool operator== ( const XorwowEngine< Eng, D, DInit > &  eng1,
const XorwowEngine< Eng, D, DInit > &  eng2 
)
friend

Definition at line 386 of file xorshift.hpp.

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
template<typename CharT , typename Traits >
std::basic_istream<CharT, Traits>& operator>> ( std::basic_istream< CharT, Traits > &  is,
XorwowEngine< Eng, D, DInit > &  eng 
)
friend

Definition at line 410 of file xorshift.hpp.

Member Data Documentation

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
constexpr const result_type vsmc::XorwowEngine< Eng, D, DInit >::_Max
static
Initial value:
= static_cast<result_type>(
~(static_cast<result_type>(0)))

Definition at line 380 of file xorshift.hpp.

template<typename Eng, typename Eng::result_type D = 362437, typename Eng::result_type DInit = 6615241>
constexpr const result_type vsmc::XorwowEngine< Eng, D, DInit >::_Min = 0
static

Definition at line 379 of file xorshift.hpp.