indii/ml/filter/UnscentedKalmanSmootherModel.hpp

00001 #ifndef INDII_ML_FILTER_UNSCENTEDKALMANSMOOTHERMODEL_HPP
00002 #define INDII_ML_FILTER_UNSCENTEDKALMANSMOOTHERMODEL_HPP
00003 
00004 #include "UnscentedKalmanFilterModel.hpp"
00005 
00006 namespace indii {
00007   namespace ml {
00008     namespace filter {
00009 
00010 /**
00011  * UnscentedKalmanSmoother compatible model.
00012  *
00013  * @author Lawrence Murray <lawrence@indii.org>
00014  * @version $Rev: 329 $
00015  * @date $Date: 2007-10-16 17:10:39 +0100 (Tue, 16 Oct 2007) $
00016  *
00017  * @param T The type of time.
00018  * 
00019  * @see indii::ml::filter for general usage guidelines.
00020  */
00021 template <class T = unsigned int>
00022 class UnscentedKalmanSmootherModel : public UnscentedKalmanFilterModel<T> {
00023 public:
00024   /**
00025    * Destructor.
00026    */
00027   virtual ~UnscentedKalmanSmootherModel() = 0;
00028 
00029   /**
00030    * Propagate sample through the backward state transition function.
00031    *
00032    * @param x \f$\mathbf{x}^*\f$; state sample.
00033    * @param w \f$\mathbf{w}^*\f$; noise sample.
00034    * @param delta \f$\Delta t\f$; time step.
00035    *
00036    * @return \f$f(\mathbf{x}^*,\mathbf{w}^*,-\Delta t)\f$; propagation
00037    * of \f$\mathbf{x}^*\f$ through the backward transition function,
00038    * given noise of \f$\mathbf{w}^*\f$.
00039    */
00040   virtual aux::vector backwardTransition(const indii::ml::aux::vector& x,
00041       const indii::ml::aux::vector& w, T delta) = 0;
00042 
00043 };
00044 
00045     }
00046   }
00047 }
00048 
00049 template <class T>
00050 indii::ml::filter::UnscentedKalmanSmootherModel<T>::~UnscentedKalmanSmootherModel() {
00051   //
00052 }
00053 
00054 #endif

Generated on Wed Dec 17 15:11:57 2008 for dysii Dynamical Systems Library by  doxygen 1.5.3