pf
pf::filters::hmm< dimstate, dimobs, float_t, debug > Class Template Reference

A class template for HMM filtering. More...

#include <cf_filters.h>

Inheritance diagram for pf::filters::hmm< dimstate, dimobs, float_t, debug >:
Collaboration diagram for pf::filters::hmm< dimstate, dimobs, float_t, debug >:

Public Types

using ssv = Eigen::Matrix< float_t, dimstate, 1 >
 "state size vector"
 
using osv = Eigen::Matrix< float_t, dimobs, 1 >
 "observation size vector"
 
using ssMat = Eigen::Matrix< float_t, dimstate, dimstate >
 "state size matrix"
 
- Public Types inherited from pf::bases::cf_filter< dimstate, dimobs, float_t >
using obs_sized_vec = Eigen::Matrix< float_t, dimobs, 1 >
 
using state_sized_vec = Eigen::Matrix< float_t, dimstate, 1 >
 

Public Member Functions

 hmm ()
 Default constructor. More...
 
 hmm (const ssv &initStateDistrLogProbs, const ssMat &transMatLogProbs)
 Constructor. More...
 
virtual ~hmm ()
 The (virtual) desuctor.
 
float_t getLogCondLike () const
 Get the latest conditional likelihood. More...
 
ssv getFilterVecLogProbs () const
 Get the current filter vector. More...
 
void update (const ssv &logCondDensVec)
 Perform a HMM filter update. More...
 
float_t log_sum_exp (const ssv &logProbVec)
 log sum exp trick More...
 
ssv log_product (const ssMat &logTransMat, const ssv &logProbVec)
 
- Public Member Functions inherited from pf::bases::cf_filter< dimstate, dimobs, float_t >
virtual ~cf_filter ()
 The (virtual) destructor.
 

Private Attributes

ssv m_filtVecLogProbs
 filter vector
 
ssMat m_transMatLogProbsTranspose
 transition matrix
 
float_t m_lastLogCondLike
 last log conditional likelihood
 
bool m_fresh
 has data been observed?
 

Detailed Description

template<size_t dimstate, size_t dimobs, typename float_t, bool debug = false>
class pf::filters::hmm< dimstate, dimobs, float_t, debug >

A class template for HMM filtering.

Author
taylor

Constructor & Destructor Documentation

◆ hmm() [1/2]

template<size_t dimstate, size_t dimobs, typename float_t , bool debug>
pf::filters::hmm< dimstate, dimobs, float_t, debug >::hmm

Default constructor.

Need ths fir constructing default std::array<>s. Fills all vectors and matrices with zeros.

◆ hmm() [2/2]

template<size_t dimstate, size_t dimobs, typename float_t , bool debug>
pf::filters::hmm< dimstate, dimobs, float_t, debug >::hmm ( const ssv initStateDistrLogProbs,
const ssMat transMatLogProbs 
)

Constructor.

allows specification of initstate distn and transition matrix.

Parameters
initStateDistrLogProbsfirst time state log prior distribution.
transMatLogProbstime homogeneous transition matrix with log probabilities.

Member Function Documentation

◆ getFilterVecLogProbs()

template<size_t dimstate, size_t dimobs, typename float_t , bool debug>
auto pf::filters::hmm< dimstate, dimobs, float_t, debug >::getFilterVecLogProbs

Get the current filter vector.

get the current filter vector log probs.

Returns
the logs of probability vector p(x_t | y_{1:t})

◆ getLogCondLike()

template<size_t dimstate, size_t dimobs, typename float_t , bool debug>
auto pf::filters::hmm< dimstate, dimobs, float_t, debug >::getLogCondLike
virtual

Get the latest conditional likelihood.

Returns
the latest conditional likelihood.

Implements pf::bases::cf_filter< dimstate, dimobs, float_t >.

◆ log_product()

template<size_t dimstate, size_t dimobs, typename float_t , bool debug>
auto pf::filters::hmm< dimstate, dimobs, float_t, debug >::log_product ( const ssMat logTransMat,
const ssv logProbVec 
)
Parameters

◆ log_sum_exp()

template<size_t dimstate, size_t dimobs, typename float_t , bool debug>
float_t pf::filters::hmm< dimstate, dimobs, float_t, debug >::log_sum_exp ( const ssv logProbVec)

log sum exp trick

calculates the log of the sum of the exponentiated elements of a Vector

Parameters

◆ update()

template<size_t dimstate, size_t dimobs, typename float_t , bool debug>
void pf::filters::hmm< dimstate, dimobs, float_t, debug >::update ( const ssv logCondDensVec)

Perform a HMM filter update.

Perform a HMM filter update.

Parameters
logCondDensVecthe vector (in x_t) of log p(y_t|x_t)

The documentation for this class was generated from the following file: