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
1.5.3