vSMC
vSMC: Scalable Monte Carlo
Modules | Classes | Typedefs | Functions
Random number generating

Random number generating engines and utilities. More...

Modules

 AES-NI
 Random number generating using AES-NI.
 
 Distribution
 Distribution random varaites.
 
 Intel DRNG
 Random number generating using Intel RDRAND instructions.
 
 Intel Math Kernel Library
 Random number generating using MKL RNG.
 
 Philox
 Random number generating using Random123 Philox RNG.
 
 Threefry
 Random number generating using Random123 Threefry RNG.
 
 U01
 Converting random integers to uniform floating points.
 
 U01 Sequence
 Generating ordered uniform random sequence.
 
 Xorshift
 Random number generating using the Xorshift algorithm.
 

Classes

class  vsmc::CounterEngine< Generator >
 Counter based RNG engine. More...
 
class  vsmc::RNGSetScalar< RNGType >
 Scalar RNG set. More...
 
class  vsmc::RNGSetVector< RNGType >
 Vector RNG set. More...
 
class  vsmc::SeedGenerator< ID, ResultType >
 Seed generator. More...
 
class  vsmc::SeedGenerator< ID, std::array< T, K > >
 Seed generator counters. More...
 

Typedefs

using vsmc::Seed = SeedGenerator< NullType, unsigned >
 The default Seed type. More...
 

Functions

template<typename T , std::size_t K>
void vsmc::increment (std::array< T, K > &ctr)
 Increment a counter by one. More...
 
template<typename T , std::size_t K, T NSkip>
void vsmc::increment (std::array< T, K > &ctr, std::integral_constant< T, NSkip >)
 Increment a counter by given steps. More...
 
template<typename T , std::size_t K>
void vsmc::increment (std::array< T, K > &ctr, T nskip)
 Increment a counter by given steps. More...
 
template<typename T , std::size_t K, std::size_t Blocks>
void vsmc::increment (std::array< T, K > &ctr, std::array< std::array< T, K >, Blocks > &ctr_block)
 Increment a counter by a given steps, and store each step in an array of counters. More...
 
template<typename T , std::size_t K>
void vsmc::increment (std::array< T, K > &ctr, std::size_t n, std::array< T, K > *ctr_block)
 Increment a counter by given steps, and store each step in an array of counters. More...
 
template<typename RNGType >
void vsmc::rng_rand (RNGType &rng, std::size_t n, typename RNGType::result_type *r)
 Generate random bits. More...
 

Detailed Description

Random number generating engines and utilities.

Typedef Documentation

using vsmc::Seed = typedef SeedGenerator<NullType, unsigned >

The default Seed type.

Definition at line 405 of file seed.hpp.

Function Documentation

template<typename T , std::size_t K>
void vsmc::increment ( std::array< T, K > &  ctr)
inline

Increment a counter by one.

Definition at line 62 of file counter.hpp.

template<typename T , std::size_t K, T NSkip>
void vsmc::increment ( std::array< T, K > &  ctr,
std::integral_constant< T, NSkip >   
)
inline

Increment a counter by given steps.

Definition at line 70 of file counter.hpp.

template<typename T , std::size_t K>
void vsmc::increment ( std::array< T, K > &  ctr,
nskip 
)
inline

Increment a counter by given steps.

Definition at line 84 of file counter.hpp.

template<typename T , std::size_t K, std::size_t Blocks>
void vsmc::increment ( std::array< T, K > &  ctr,
std::array< std::array< T, K >, Blocks > &  ctr_block 
)
inline

Increment a counter by a given steps, and store each step in an array of counters.

Definition at line 149 of file counter.hpp.

template<typename T , std::size_t K>
void vsmc::increment ( std::array< T, K > &  ctr,
std::size_t  n,
std::array< T, K > *  ctr_block 
)
inline

Increment a counter by given steps, and store each step in an array of counters.

Definition at line 257 of file counter.hpp.

template<typename RNGType >
void vsmc::rng_rand ( RNGType &  rng,
std::size_t  n,
typename RNGType::result_type *  r 
)

Generate random bits.

Definition at line 444 of file common.hpp.