pf
resamplers.h File Reference

most resamplers must inherit from this. This will enforce certain structure that are assumed by these pfs. More...

#include <chrono>
#include <array>
#include <random>
#include <numeric>
#include <cmath>
#include <Eigen/Dense>
#include <algorithm>
#include <bitset>
#include "rv_eval.h"
Include dependency graph for resamplers.h:

Go to the source code of this file.

Classes

class  pf::resamplers::rbase< nparts, dimx, float_t >
 Base class for all resampler types. More...
 
class  pf::resamplers::mn_resampler< nparts, dimx, float_t >
 
class  pf::resamplers::mn_resampler_rbpf< nparts, dimsampledx, cfModT, float_t >
 
class  pf::resamplers::resid_resampler< nparts, dimx, float_t >
 
class  pf::resamplers::stratif_resampler< nparts, dimx, float_t >
 
class  pf::resamplers::systematic_resampler< nparts, dimx, float_t >
 
class  pf::resamplers::mn_resamp_fast1< nparts, dimx, float_t >
 
class  pf::resamplers::rbase_hcs< nparts, dimx, dimur, num_hilb_bits, float_t >
 Base class for resampler types that use a Hilbert curve sorting technique. More...
 
class  pf::resamplers::sys_hilb_resampler< nparts, dimx, num_hilb_bits, float_t >
 

Functions

template<size_t num_bits, size_t num_dims>
std::array< std::bitset< num_bits >, num_dims > pf::resamplers::TransposeToAxes (std::array< std::bitset< num_bits >, num_dims > X)
 
template<size_t num_bits, size_t num_dims>
std::array< std::bitset< num_bits >, num_dims > pf::resamplers::AxesToTranspose (std::array< std::bitset< num_bits >, num_dims > X)
 
template<size_t num_bits, size_t num_dims>
std::array< std::bitset< num_bits >, num_dims > pf::resamplers::makeHTranspose (unsigned int H)
 
template<size_t num_bits, size_t num_dims>
unsigned int pf::resamplers::makeH (std::array< std::bitset< num_bits >, num_dims > Htrans)
 

Detailed Description

most resamplers must inherit from this. This will enforce certain structure that are assumed by these pfs.

Class that performs systematic resampling with a Hilbert curve sorting scheme.

resamplers that use a Hilbert curve sorting procedure must inherit from this. Unlike rbase, this does not hold onto a random number generator object, so no seed-setting is necessary.

converts an integer in its "Transpose" representation into a positive integer.. This code supplements two functions above that are based off of John Skilling , "Programming the Hilbert curve", AIP Conference Proceedings 707, 381-387 (2004) https://doi.org/10.1063/1.1751381

converts an integer on the positive integers into its "Transpose" representation.. This code supplements the above two functions that are based off of John Skilling , "Programming the Hilbert curve", AIP Conference Proceedings 707, 381-387 (2004) https://doi.org/10.1063/1.1751381

converts a position on the Hilbert curve into an integer in a "transpose" form. Code is based off of John Skilling , "Programming the Hilbert curve", AIP Conference Proceedings 707, 381-387 (2004) https://doi.org/10.1063/1.1751381

converts an integer in a transpose form to a position on the Hilbert Curve. Code is based off of John Skilling , "Programming the Hilbert curve", AIP Conference Proceedings 707, 381-387 (2004) https://doi.org/10.1063/1.1751381

Class that performs multinomial resampling for "standard" models. For justification, see page 244 of "Inference in Hidden Markov Models".

Class that performs systematic resampling on "standard" models.

Class that performs stratified resampling on "standard" models.

Class that performs residual resampling on "standard" models.

Class that performs multinomial resampling for RBPFs.

Class that performs multinomial resampling for "standard" models.

Template Parameters
npartsthe number of particles.
dimxthe dimension of each state sample.
float_tthe type of floating point numbers (e.g. float or double)
npartsthe number of particles.
dimxthe dimension of each state sample.
npartsthe number of particles.
dimsampledxthe dimension of each state sample.
cfModTthe type of closed form model
float_tthe type of floating point number
npartsthe number of particles.
dimxthe dimension of each state sample.
float_tthe floating point for samples
num_bitshow "accurate/fine/squiggly" you want the Hilbert curve
num_dimsthe number of dimensions the curve is in
Parameters
Xan unsigned integer in a "Transpose" form.
Returns
a position on the hilbert curve
Template Parameters
num_bitshow "accurate/fine/squiggly" you want the Hilbert curve
num_dimsthe number of dimensions the curve is in
Parameters
Xa position on the hilbert curve (each dimension coordinate is in base 2)
Returns
a position on the real line (in a "Transpose" form)
Template Parameters
num_bitshow "accurate/fine/squiggly" you want the Hilbert curve
num_dimsthe number of dimensions the curve is in
Parameters
Ha position on the hilbert curve (0,1,..,2^(num_dims * num_bits) )
Returns
a position on the real line (in a "Transpose" form)
Template Parameters
num_bitshow "accurate/fine/squiggly" you want the Hilbert curve
num_dimsthe number of dimensions the curve is in
Parameters
Htransa position on the real line (in a "Transpose" form)
Returns
a position on the hilbert curve (0,1,..,2^(num_dims * num_bits) )