Particle Population
Class used to store and manipulate the population of particles.
This file contains the smc::population class which is used internally.
Defines
- 
__SMC_POPULATION_HH
- 
namespace smc
- The Sequential Monte Carlo namespace. - The classes and functions within this namespace are intended to be used for producing implemenetations of SMC samplers and related simulation techniques. - Functions - 
inline double stableLogSumWeights(const arma::vec &logw)
- A stable calculation of the log sum of the weights, used in ESS calculations This function performs a stable calculation of the log sum of the weights, which is useful for normalising weights, calculating the effective sample size and estimating the normalising constant. - Parameters
- logw – The log weights of interest. 
 
 - 
template<class Space>
 class population
- #include <population.h>A template class for the particles of an SMC algorithm. Public Functions - 
population()
- Create a particle with undefined values and weights. 
 - 
population(const std::vector<Space> &sInit, const arma::vec &dLogWeight)
- Constructor which initialises the particle values and weights. - Create particles with values sInit and log weights dLogWeight - Parameters
- sInit – The initial values of the particle 
- dLogWeight – The initial values of the natural logarithm of the particle weights 
 
 
 - 
population(const population<Space> &pFrom)
- The copy constructor performs a shallow copy. - Copy constructor. 
 - 
population<Space> &operator=(const population<Space> &pFrom)
- The assignment operator performs a shallow copy. - Copy the values of pFrom to the values of this to set this population identical to pFrom in a deep copy sense. 
 - 
~population()
- Dispose of a population object which is no longer required. 
 - 
inline long GetNumber(void) const
- Returns the number of particles within the system. 
 - 
inline const Space &GetValueN(long n) const
- Returns the value of the nth particle in the population. 
 - 
inline Space &GetValueRefN(long n)
- Returns a reference to the value of the nth particle in the population. 
 - 
inline const arma::vec &GetLogWeight(void) const
- Returns the particle log weights. 
 - 
inline double GetLogWeightN(long n) const
- Returns the nth particle’s log weight. 
 - 
inline double &GetLogWeightRefN(long n)
- Returns a reference to the nth particle’s log weight. 
 - 
inline arma::vec GetWeight(void) const
- Returns the particles’ unnormalised weights. 
 - 
inline double GetWeightN(long n) const
- Returns the nth particle’s unnormalised weight. 
 - 
inline void Set(const std::vector<Space> &sValue, const arma::vec &dLogWeight)
- Sets the particle values and weights explicitly. - Parameters
- sValue – The particle values to use 
- dLogWeight – The natural logarithm of the new particle weights 
 
 
 - 
inline void SetValue(const std::vector<Space> &sValue)
- Sets the particle values explicitly. - Parameters
- sValue – The particle values to use 
 
 - 
inline void SetValueN(const Space &sValue, long n)
- Sets the nth particle value explicitly. - Parameters
- sValue – The particle value to use 
 
 - 
inline void SetLogWeight(const arma::vec &dLogWeight)
- Sets the particle log weights explicitly. - Parameters
- dLogWeight – The natural logarithm of the new particle weights to use 
 
 - 
inline void SetLogWeightN(const double &dLogWeight, long n)
- Sets the nth particle log weight explicitly. - Parameters
- dLogWeight – The natural logarithm of the new particle weight to use 
 
 
- 
population()
 
- 
inline double stableLogSumWeights(const arma::vec &logw)
- 
namespace std
- The standard namespace. - The classes provided within the standard libraries reside within this namespace and the TDSMC class library adds a number of additional operator overloads to some of the standard classes to allow them to deal with our structures. - Functions - 
template<class Space>
 std::ostream &operator<<(std::ostream &os, smc::population<Space> &p)
- Produce a human readable display of an smc::population class using the standard stream operators. - Parameters
- os – The output stream to which the display should be made. 
- p – The population object which is to be displayed. 
 
 
 
- 
template<class Space>