Bayesian Filtering Library
Generated from SVN r
src
smoother
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
49
RauchTungStriebel
(
Gaussian
* prior);
50
52
virtual
~RauchTungStriebel
();
53
54
protected
:
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
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.
Generated by
1.8.17