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
27namespace BFL
28{
29
31
42class RauchTungStriebel : public BackwardFilter<MatrixWrapper::ColumnVector>
43{
44public:
46
50
53
54protected:
55
57 void PostSigmaSet( const MatrixWrapper::SymmetricMatrix& s);
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
73private:
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__
Virtual Baseclass representing all bayesian backward filters.
Class representing Gaussian (or normal density)
Definition: gaussian.h:28
Class representing all Rauch-Tung-Striebel backward filters.
void PostSigmaSet(const MatrixWrapper::SymmetricMatrix &s)
Set covariance of posterior estimate.
virtual ~RauchTungStriebel()
Destructor.
RauchTungStriebel(Gaussian *prior)
Constructor.
virtual void SysUpdate(SystemModel< MatrixWrapper::ColumnVector > *const sysmodel, const MatrixWrapper::ColumnVector &u, Pdf< ColumnVector > *const filtered_post)
System Update.
void PostMuSet(const MatrixWrapper::ColumnVector &c)
Set expected value of posterior estimate.