rauchtungstriebel.h
Go to the documentation of this file.
00001 // $Id: rauchtungstriebel.h 6736 2006-12-22 11:24:42Z tdelaet $
00002 // Copyright (C) 2006  Tinne De Laet <first dot last at mech dot kuleuven dot be>
00003 //
00004 // This program is free software; you can redistribute it and/or modify
00005 // it under the terms of the GNU Lesser General Public License as published by
00006 // the Free Software Foundation; either version 2.1 of the License, or
00007 // (at your option) any later version.
00008 //
00009 // This program is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 // GNU Lesser General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU Lesser General Public License
00015 // along with this program; if not, write to the Free Software
00016 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00017 //
00018 
00019 #ifndef __RAUCHTUNGSTRIEBEL__
00020 #define __RAUCHTUNGSTRIEBEL__
00021 
00022 #include "backwardfilter.h"
00023 #include "../pdf/gaussian.h"
00024 #include "../pdf/conditionalpdf.h"
00025 #include "../model/analyticsystemmodel_gaussianuncertainty.h"
00026 
00027 namespace BFL
00028 {
00029 
00031 
00042 class RauchTungStriebel : public BackwardFilter<MatrixWrapper::ColumnVector>
00043 {
00044 public:
00046 
00049   RauchTungStriebel(Gaussian* prior);
00050 
00052   virtual ~RauchTungStriebel();
00053 
00054 protected:
00055 
00057   void PostSigmaSet( const MatrixWrapper::SymmetricMatrix& s);
00058 
00060   void PostMuSet( const MatrixWrapper::ColumnVector& c);
00061 
00063 
00069   virtual void SysUpdate(SystemModel<MatrixWrapper::ColumnVector>* const sysmodel, const MatrixWrapper::ColumnVector& u , Pdf<ColumnVector>* const filtered_post);
00070 
00071   virtual bool UpdateInternal(SystemModel<ColumnVector>* const sysmodel, const ColumnVector& u,  Pdf<ColumnVector>* const filtered_post);
00072 
00073 private:
00074     // Variables to avoid allocation during sysupdate call
00075     ColumnVector _x, _xf, _xpred, _xsmooth;
00076     Matrix _F, _Ppred, _Pxx, _K, _Psmooth;
00077     SymmetricMatrix _Q, _Sigma_new;
00078 }; // class
00079 
00080 } // End namespace BFL
00081 
00082 #endif //__RAUCHTUNGSTRIEBEL__


bfl
Author(s): Klaas Gadeyne, Wim Meeussen, Tinne Delaet and many others. See web page for a full contributor list. ROS package maintained by Wim Meeussen.
autogenerated on Sun Oct 5 2014 22:29:53