vSMC  v3.0.0
Scalable Monte Carlo
Classes | Namespaces | Functions
counter.hpp File Reference
#include <vsmc/rng/internal/common.hpp>

Go to the source code of this file.

Classes

class  vsmc::CounterEngine< ResultType, Generator >
 Counter based RNG engine. More...
 

Namespaces

 vsmc
 
 vsmc::internal
 

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<std::size_t , typename T , std::size_t K, std::size_t Blocks>
void vsmc::internal::increment_block (std::array< T, K > &, std::array< std::array< T, K >, Blocks > &, std::false_type)
 
template<std::size_t B, typename T , std::size_t K, std::size_t Blocks>
void vsmc::internal::increment_block (std::array< T, K > &ctr, std::array< std::array< T, K >, Blocks > &ctr_block, std::true_type)
 
template<std::size_t , typename T , std::size_t K, std::size_t Blocks>
void vsmc::internal::increment_block_safe (std::array< T, K > &, std::array< std::array< T, K >, Blocks > &, std::false_type)
 
template<std::size_t B, typename T , std::size_t K, std::size_t Blocks>
void vsmc::internal::increment_block_safe (std::array< T, K > &ctr, std::array< std::array< T, K >, Blocks > &ctr_block, std::true_type)
 
template<std::size_t , typename T , std::size_t K, std::size_t Blocks>
void vsmc::internal::increment_block_set (const std::array< T, K > &, std::array< std::array< T, K >, Blocks > &, std::false_type)
 
template<std::size_t B, typename T , std::size_t K, std::size_t Blocks>
void vsmc::internal::increment_block_set (const std::array< T, K > &ctr, std::array< std::array< T, K >, Blocks > &ctr_block, std::true_type)
 
template<std::size_t , typename T , std::size_t K>
void vsmc::internal::increment_single (std::array< T, K > &, std::false_type)
 
template<std::size_t N, typename T , std::size_t K>
void vsmc::internal::increment_single (std::array< T, K > &ctr, std::true_type)
 
template<typename ResultType , typename Generator >
void vsmc::rand (CounterEngine< ResultType, Generator > &rng, std::size_t n, ResultType *r)