
| T | The type of time. |
Definition at line 24 of file ParticleSmootherModel.hpp.
Public Member Functions | |
| virtual | ~ParticleSmootherModel ()=0 |
| Destructor. | |
| virtual indii::ml::aux::sparse_matrix | alpha (const indii::ml::aux::DiracMixturePdf &p_xtn_ytn, const indii::ml::aux::DiracMixturePdf &p_xtnp1_ytnp1, const T start, const T delta)=0 |
Calculates the matrix . | |
| virtual void | alphaPrecalculate (const indii::ml::aux::DiracMixturePdf &p_xtn_ytn, const T start, const T delta) |
Perform precalculations for matrix. | |
| ~ParticleSmootherModel | ( | ) | [inline, pure virtual] |
| virtual indii::ml::aux::sparse_matrix alpha | ( | const indii::ml::aux::DiracMixturePdf & | p_xtn_ytn, | |
| const indii::ml::aux::DiracMixturePdf & | p_xtnp1_ytnp1, | |||
| const T | start, | |||
| const T | delta | |||
| ) | [pure virtual] |
Calculates the matrix
.
, where
is the
th particle at time
and
is the
th particle at time
.
| p_xtn_ytn | . | |
| p_xtnp1_ytnp1 | . | |
| start | ; start time. | |
| delta | ; change in time. |
.
particles in p_xtn_ytn and p_xtnp1_ytnp1. Instead, use indii::ml::aux::DiracMixturePdf::getNumComponents() to determine this. This is particularly important when working in a parallel environment, where particles are divided up amongst multiple calls to this method. | void alphaPrecalculate | ( | const indii::ml::aux::DiracMixturePdf & | p_xtn_ytn, | |
| const T | start, | |||
| const T | delta | |||
| ) | [inline, virtual] |
Perform precalculations for
matrix.
In a parallel environment, each smoothing step may require multiple calls to the alpha() method of the model with the same first argument. To allow for precalculations based on this first argument, the alphaPrecalculate() method is called before each change to the argument.
For example, in the case of a model with simple Gaussian additive noise, this method could be used to propagate each of the particles at time
to time
without noise, obtaining the mean of a Gaussian with covariance equivalent to the system noise. Within the alpha() method, these Gaussians can then be used to quickly calculate densities without having to transition particles again during each call to alpha().
There is no requirement for this method to do anything at all, or even to be implemented in derived classes. It exists purely for optimisation, and is not required for correctness.
| p_xtn_ytn | As p_xtn_ytn of alpha(). | |
| start | As start of alpha(). | |
| delta | As delta of alpha(). |
Definition at line 104 of file ParticleSmootherModel.hpp.
1.5.3