vSMC
vSMC: Scalable Monte Carlo
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
vsmc::MKLEngine< BRNG, ResultType > Class Template Reference

MKL RNG C++11 engine. More...

#include <vsmc/rng/mkl.hpp>

Public Types

typedef ResultType result_type
 
typedef MKLStream< BRNG > stream_type
 

Public Member Functions

 MKLEngine (MKL_UINT s=traits::MKLSeedTrait< BRNG >::value, MKL_INT offset=0)
 
template<typename SeedSeq >
 MKLEngine (SeedSeq &seq, typename cxx11::enable_if< internal::is_seed_seq< SeedSeq, MKL_UINT, MKLEngine< BRNG, ResultType > >::value >::type *=nullptr)
 
void buffer_size (MKL_INT size)
 Set the buffer size, zero or negative value restore the default. More...
 
MKL_INT buffer_size ()
 
void discard (std::size_t nskip)
 Discard results. More...
 
result_type operator() ()
 
void seed (MKL_UINT s)
 
template<typename SeedSeq >
void seed (SeedSeq &seq, typename cxx11::enable_if< internal::is_seed_seq< SeedSeq, MKL_UINT, MKLEngine< BRNG, ResultType > >::value >::type *=nullptr)
 
stream_typestream ()
 
const stream_typestream () const
 

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
 

Detailed Description

template<MKL_INT BRNG, typename ResultType>
class vsmc::MKLEngine< BRNG, ResultType >

MKL RNG C++11 engine.

Definition at line 61 of file mkl.hpp.

Member Typedef Documentation

template<MKL_INT BRNG, typename ResultType >
typedef ResultType vsmc::MKLEngine< BRNG, ResultType >::result_type

Definition at line 509 of file mkl.hpp.

template<MKL_INT BRNG, typename ResultType >
typedef MKLStream<BRNG> vsmc::MKLEngine< BRNG, ResultType >::stream_type

Definition at line 510 of file mkl.hpp.

Constructor & Destructor Documentation

template<MKL_INT BRNG, typename ResultType >
vsmc::MKLEngine< BRNG, ResultType >::MKLEngine ( MKL_UINT  s = traits::MKLSeedTrait<BRNG>::value,
MKL_INT  offset = 0 
)
inlineexplicit

Definition at line 512 of file mkl.hpp.

template<MKL_INT BRNG, typename ResultType >
template<typename SeedSeq >
vsmc::MKLEngine< BRNG, ResultType >::MKLEngine ( SeedSeq &  seq,
typename cxx11::enable_if< internal::is_seed_seq< SeedSeq, MKL_UINT, MKLEngine< BRNG, ResultType > >::value >::type = nullptr 
)
inlineexplicit

Definition at line 518 of file mkl.hpp.

Member Function Documentation

template<MKL_INT BRNG, typename ResultType >
void vsmc::MKLEngine< BRNG, ResultType >::buffer_size ( MKL_INT  size)
inline

Set the buffer size, zero or negative value restore the default.

Definition at line 572 of file mkl.hpp.

template<MKL_INT BRNG, typename ResultType >
MKL_INT vsmc::MKLEngine< BRNG, ResultType >::buffer_size ( )
inline

Definition at line 575 of file mkl.hpp.

template<MKL_INT BRNG, typename ResultType >
void vsmc::MKLEngine< BRNG, ResultType >::discard ( std::size_t  nskip)
inline

Discard results.

The the behavior is slightly different from that in C++11 standard. Calling discard(nskip) is not equivalent to call operator() nskip times. Instead, it ensures that at least nskip results are discarded. There may be a few more than nskip also discarded.

Definition at line 552 of file mkl.hpp.

template<MKL_INT BRNG, typename ResultType >
static constexpr result_type vsmc::MKLEngine< BRNG, ResultType >::max ( )
inlinestatic

Definition at line 566 of file mkl.hpp.

template<MKL_INT BRNG, typename ResultType >
static constexpr result_type vsmc::MKLEngine< BRNG, ResultType >::min ( )
inlinestatic

Definition at line 565 of file mkl.hpp.

template<MKL_INT BRNG, typename ResultType >
result_type vsmc::MKLEngine< BRNG, ResultType >::operator() ( )
inline

Definition at line 534 of file mkl.hpp.

template<MKL_INT BRNG, typename ResultType >
void vsmc::MKLEngine< BRNG, ResultType >::seed ( MKL_UINT  s)
inline

Definition at line 525 of file mkl.hpp.

template<MKL_INT BRNG, typename ResultType >
template<typename SeedSeq >
void vsmc::MKLEngine< BRNG, ResultType >::seed ( SeedSeq &  seq,
typename cxx11::enable_if< internal::is_seed_seq< SeedSeq, MKL_UINT, MKLEngine< BRNG, ResultType > >::value >::type = nullptr 
)
inline

Definition at line 528 of file mkl.hpp.

template<MKL_INT BRNG, typename ResultType >
stream_type& vsmc::MKLEngine< BRNG, ResultType >::stream ( )
inline

Definition at line 568 of file mkl.hpp.

template<MKL_INT BRNG, typename ResultType >
const stream_type& vsmc::MKLEngine< BRNG, ResultType >::stream ( ) const
inline

Definition at line 569 of file mkl.hpp.

Member Data Documentation

template<MKL_INT BRNG, typename ResultType >
constexpr const result_type vsmc::MKLEngine< BRNG, ResultType >::_Max
static
Initial value:
=
traits::MKLUniformBitsTrait<BRNG, ResultType>::max

Definition at line 562 of file mkl.hpp.

template<MKL_INT BRNG, typename ResultType >
constexpr const result_type vsmc::MKLEngine< BRNG, ResultType >::_Min
static
Initial value:
=
traits::MKLUniformBitsTrait<BRNG, ResultType>::min

Definition at line 560 of file mkl.hpp.