indii/ml/filter/UnscentedTransformationModel.hpp

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

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