00001 #ifndef INDII_ML_FILTER_UNSCENTEDTRANSFORMATIONMODEL_HPP 00002 #define INDII_ML_FILTER_UNSCENTEDTRANSFORMATIONMODEL_HPP 00003 00004 #include "../aux/vector.hpp" 00005 00006 namespace indii { 00007 namespace ml { 00008 namespace filter { 00009 00010 /** 00011 * UnscentedTransformation compatible model. Represents the function 00012 * \f$f\f$ through which the Gaussian distributed random variable will 00013 * be propagated. 00014 * 00015 * @author Lawrence Murray <lawrence@indii.org> 00016 * @version $Rev: 301 $ 00017 * @date $Date: 2007-09-10 23:56:50 +0100 (Mon, 10 Sep 2007) $ 00018 */ 00019 template <class T = unsigned int> 00020 class UnscentedTransformationModel { 00021 public: 00022 /** 00023 * Destructor. 00024 */ 00025 virtual ~UnscentedTransformationModel() = 0; 00026 00027 /** 00028 * Propagate a sigma point \f$\mathcal{X}_i\f$ through the function \f$f\f$. 00029 * 00030 * @param X \f$\mathcal{X}_i\f$; the sigma point. 00031 * @param delta \f$\Delta t\f$; length of time through which to propagate 00032 * the sigma point, if relevant. 00033 * 00034 * @return \f$\mathcal{Y}_i = f(\mathcal{X}_i,\Delta t)\f$ 00035 */ 00036 virtual indii::ml::aux::vector propagate(const indii::ml::aux::vector& X, 00037 T delta = 0) = 0; 00038 00039 }; 00040 00041 } 00042 } 00043 } 00044 00045 template <class T> 00046 indii::ml::filter::UnscentedTransformationModel<T>::~UnscentedTransformationModel() { 00047 // 00048 } 00049 00050 #endif
1.5.3