vSMC
vSMC: Scalable Monte Carlo
Classes | Typedefs | Functions

Random number generating using Intel RDRAND instructions. More...

Classes

class  vsmc::RDRANDEngine< ResultType, NTrialMax >
 RDRAND generator. More...
 

Typedefs

using vsmc::RDRAND16 = RDRANDEngine< std::uint16_t >
 C++11 Engine using 16-bits RDRAND instruction. More...
 
using vsmc::RDRAND32 = RDRANDEngine< std::uint32_t >
 C++11 Engine using 32-bits RDRAND instruction. More...
 
using vsmc::RDRAND64 = RDRANDEngine< std::uint64_t >
 C++11 Engine using 64-bits RDRAND instruction. More...
 

Functions

template<typename UIntType , std::size_t W>
bool vsmc::rdrand (UIntType *, std::integral_constant< std::size_t, W >)
 Invoke the RDRAND instruction and return the carry flag. More...
 
template<typename UIntType >
bool vsmc::rdrand (UIntType *rand, std::integral_constant< std::size_t, sizeof(std::uint16_t)>)
 Invoke the 16-bits RDRAND instruction and return the carry flag. More...
 
template<typename UIntType >
bool vsmc::rdrand (UIntType *rand, std::integral_constant< std::size_t, sizeof(std::uint32_t)>)
 Invoke the 32-bits RDRAND instruction and return the carry flag. More...
 
template<typename UIntType >
bool vsmc::rdrand (UIntType *rand, std::integral_constant< std::size_t, sizeof(std::uint64_t)>)
 Invoke the 64-bits RDRAND instruction and return the carry flag. More...
 

Detailed Description

Random number generating using Intel RDRAND instructions.

Typedef Documentation

using vsmc::RDRAND16 = typedef RDRANDEngine<std::uint16_t>

C++11 Engine using 16-bits RDRAND instruction.

Definition at line 210 of file rdrand.hpp.

using vsmc::RDRAND32 = typedef RDRANDEngine<std::uint32_t>

C++11 Engine using 32-bits RDRAND instruction.

Definition at line 214 of file rdrand.hpp.

using vsmc::RDRAND64 = typedef RDRANDEngine<std::uint64_t>

C++11 Engine using 64-bits RDRAND instruction.

Definition at line 218 of file rdrand.hpp.

Function Documentation

template<typename UIntType , std::size_t W>
bool vsmc::rdrand ( UIntType *  ,
std::integral_constant< std::size_t, W >   
)
inline

Invoke the RDRAND instruction and return the carry flag.

template<typename UIntType >
bool vsmc::rdrand ( UIntType *  rand,
std::integral_constant< std::size_t, sizeof(std::uint16_t)>   
)
inline

Invoke the 16-bits RDRAND instruction and return the carry flag.

Definition at line 57 of file rdrand.hpp.

template<typename UIntType >
bool vsmc::rdrand ( UIntType *  rand,
std::integral_constant< std::size_t, sizeof(std::uint32_t)>   
)
inline

Invoke the 32-bits RDRAND instruction and return the carry flag.

Definition at line 70 of file rdrand.hpp.

template<typename UIntType >
bool vsmc::rdrand ( UIntType *  rand,
std::integral_constant< std::size_t, sizeof(std::uint64_t)>   
)
inline

Invoke the 64-bits RDRAND instruction and return the carry flag.

Definition at line 83 of file rdrand.hpp.