Bayesian Filtering Library  Generated from SVN r
rauchtungstriebel.h
1 // $Id: rauchtungstriebel.h 6736 2006-12-22 11:24:42Z tdelaet $
2 // Copyright (C) 2006 Tinne De Laet <first dot last at mech dot kuleuven dot be>
3 //
4 // This program is free software; you can redistribute it and/or modify
5 // it under the terms of the GNU Lesser General Public License as published by
6 // the Free Software Foundation; either version 2.1 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public License
15 // along with this program; if not, write to the Free Software
16 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 //
18 
19 #ifndef __RAUCHTUNGSTRIEBEL__
20 #define __RAUCHTUNGSTRIEBEL__
21 
22 #include "backwardfilter.h"
23 #include "../pdf/gaussian.h"
24 #include "../pdf/conditionalpdf.h"
25 #include "../model/analyticsystemmodel_gaussianuncertainty.h"
26 
27 namespace BFL
28 {
29 
31 
42 class RauchTungStriebel : public BackwardFilter<MatrixWrapper::ColumnVector>
43 {
44 public:
46 
50 
52  virtual ~RauchTungStriebel();
53 
54 protected:
55 
58 
60  void PostMuSet( const MatrixWrapper::ColumnVector& c);
61 
63 
69  virtual void SysUpdate(SystemModel<MatrixWrapper::ColumnVector>* const sysmodel, const MatrixWrapper::ColumnVector& u , Pdf<ColumnVector>* const filtered_post);
70 
71  virtual bool UpdateInternal(SystemModel<ColumnVector>* const sysmodel, const ColumnVector& u, Pdf<ColumnVector>* const filtered_post);
72 
73 private:
74  // Variables to avoid allocation during sysupdate call
75  ColumnVector _x, _xf, _xpred, _xsmooth;
76  Matrix _F, _Ppred, _Pxx, _K, _Psmooth;
77  SymmetricMatrix _Q, _Sigma_new;
78 }; // class
79 
80 } // End namespace BFL
81 
82 #endif //__RAUCHTUNGSTRIEBEL__
MatrixWrapper::SymmetricMatrix
Definition: matrix_BOOST.h:109
BFL::RauchTungStriebel::~RauchTungStriebel
virtual ~RauchTungStriebel()
Destructor.
BFL::Gaussian
Class representing Gaussian (or normal density)
Definition: gaussian.h:27
BFL::RauchTungStriebel::PostSigmaSet
void PostSigmaSet(const MatrixWrapper::SymmetricMatrix &s)
Set covariance of posterior estimate.
BFL::RauchTungStriebel
Class representing all Rauch-Tung-Striebel backward filters.
Definition: rauchtungstriebel.h:42
MatrixWrapper::ColumnVector
Wrapper class for ColumnVectors (Boost implementation)
Definition: vector_BOOST.h:41
BFL::BackwardFilter
Virtual Baseclass representing all bayesian backward filters.
Definition: backwardfilter.h:85
BFL::RauchTungStriebel::PostMuSet
void PostMuSet(const MatrixWrapper::ColumnVector &c)
Set expected value of posterior estimate.
BFL::SystemModel< MatrixWrapper::ColumnVector >
BFL::Pdf< ColumnVector >
BFL::RauchTungStriebel::RauchTungStriebel
RauchTungStriebel(Gaussian *prior)
Constructor.
BFL::RauchTungStriebel::SysUpdate
virtual void SysUpdate(SystemModel< MatrixWrapper::ColumnVector > *const sysmodel, const MatrixWrapper::ColumnVector &u, Pdf< ColumnVector > *const filtered_post)
System Update.