MCKL
Monte Carlo Kernel Library
Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
resample.hpp File Reference
#include <mckl/internal/common.hpp>
#include <mckl/core/particle.hpp>
#include <mckl/random/u01_distribution.hpp>

Go to the source code of this file.

Classes

class  mckl::ResampleAlgorithm< U01SeqType, Residual >
 Resampling algorithm. More...
 
class  mckl::ResampleEval< T >
 SMCSampler<T>::eval_type subtype. More...
 
class  mckl::ResampleIndex< IntType >
 Record and trace resampling index. More...
 
class  mckl::U01SequenceSorted
 Sorted of standard uniform numbers. More...
 
class  mckl::U01SequenceStratified
 Stratified standard uniform numbers. More...
 
class  mckl::U01SequenceSystematic
 Systematic standard uniform numbers. More...
 

Namespaces

 mckl
 
 mckl::internal
 

Typedefs

using mckl::ResampleMultinomial = ResampleAlgorithm< U01SequenceSorted, false >
 Multinomial resampling. More...
 
using mckl::ResampleResidual = ResampleAlgorithm< U01SequenceSorted, true >
 Residual resampling. More...
 
using mckl::ResampleResidualStratified = ResampleAlgorithm< U01SequenceStratified, true >
 Residual stratified resampling. More...
 
using mckl::ResampleResidualSystematic = ResampleAlgorithm< U01SequenceSystematic, true >
 Residual systematic resampling. More...
 
using mckl::ResampleStratified = ResampleAlgorithm< U01SequenceStratified, false >
 Stratified resampling. More...
 
using mckl::ResampleSystematic = ResampleAlgorithm< U01SequenceSystematic, false >
 Systematic resampling. More...
 

Enumerations

enum  mckl::ResampleScheme {
  mckl::ResampleScheme::Multinomial,
  mckl::ResampleScheme::Stratified,
  mckl::ResampleScheme::Systematic,
  mckl::ResampleScheme::Residual,
  mckl::ResampleScheme::ResidualStratified,
  mckl::ResampleScheme::ResidualSystematic
}
 Resampling schemes. More...
 

Functions

template<typename InputIter , typename OutputIter >
OutputIter mckl::resample_trans_rep_index (std::size_t N, std::size_t M, InputIter replication, OutputIter index)
 Transform replication numbers into parent indices. More...
 
template<typename InputIter , typename OutputIterR , typename OutputIterI >
std::size_t mckl::resample_trans_residual (std::size_t N, std::size_t M, InputIter weight, OutputIterR resid, OutputIterI integ)
 Transform normalized weights to normalized residual and integrals,. More...
 
template<typename InputIter , typename OutputIter , typename U01SeqType >
OutputIter mckl::resample_trans_u01_rep (std::size_t N, std::size_t M, InputIter weight, U01SeqType &&u01seq, OutputIter replication)
 Transform uniform [0, 1) sequence into replication numbers. More...
 
template<typename RealType , typename RNGType >
void mckl::u01_rand_sorted (RNGType &rng, std::size_t N, RealType *r)
 Generate sorted standard uniform numbers with \(O(N)\) cost. More...
 
template<std::size_t K, typename RealType , typename RNGType >
void mckl::internal::u01_rand_sorted_impl (RNGType &rng, std::size_t n0, std::size_t n, RealType *r, std::size_t N, RealType &lmax)
 
template<typename RealType , typename RNGType >
void mckl::u01_rand_stratified (RNGType &rng, std::size_t N, RealType *r)
 Generate stratified standard uniform numbers. More...
 
template<typename RealType , typename RNGType >
void mckl::internal::u01_rand_stratified_impl (RNGType &rng, std::size_t n0, std::size_t n, RealType *r, RealType delta)
 
template<typename RealType , typename RNGType >
void mckl::u01_rand_systematic (RNGType &rng, std::size_t N, RealType *r)
 Generate systematic standard uniform numbers. More...
 
template<typename RealType >
void mckl::u01_trans_sorted (std::size_t N, const RealType *u01, RealType *r)
 Tranform a sequence of standard uniform random numbers to sorted sequence. More...
 
template<std::size_t K, typename RealType >
void mckl::internal::u01_trans_sorted_impl (std::size_t n0, std::size_t n, const RealType *u01, RealType *r, std::size_t N, RealType &lmax)
 
template<typename RealType >
void mckl::u01_trans_stratified (std::size_t N, const RealType *u01, RealType *r)
 Transform a sequence of standard uniform random numbers to a stratified sequence. More...
 
template<typename RealType >
void mckl::internal::u01_trans_stratified_impl (std::size_t n0, std::size_t n, const RealType *u01, RealType *r, RealType delta)
 
template<typename RealType >
void mckl::u01_trans_systematic (std::size_t N, const RealType *u01, RealType *r)
 Transform a single standard uniform random number to a systematic sequence. More...
 
template<typename RealType >
void mckl::internal::u01_trans_systematic_impl (std::size_t n0, std::size_t n, RealType u, RealType *r, RealType delta)
 

Variables

constexpr ResampleScheme mckl::Multinomial = ResampleScheme::Multinomial
 
constexpr ResampleScheme mckl::Residual = ResampleScheme::Residual
 
constexpr ResampleScheme mckl::ResidualStratified
 
constexpr ResampleScheme mckl::ResidualSystematic
 
constexpr ResampleScheme mckl::Stratified = ResampleScheme::Stratified
 
constexpr ResampleScheme mckl::Systematic = ResampleScheme::Systematic