Bayesian Filtering Library Generated from SVN r
nonlinearanalyticconditionalgaussian_ginac.h
1// $Id$
2// Copyright (C) 2003 Klaas Gadeyne <first dot last at gmail dot com>
3// Wim Meeussen <wim dot meeussen at mech dot kuleuven dot ac dot be>
4//
5// This program is free software; you can redistribute it and/or modify
6// it under the terms of the GNU Lesser General Public License as published by
7// the Free Software Foundation; either version 2.1 of the License, or
8// (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU Lesser General Public License for more details.
14//
15// You should have received a copy of the GNU Lesser General Public License
16// along with this program; if not, write to the Free Software
17// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18//
19
20#ifndef __NONLINEAR_SYSTEM_CONDITIONAL_GAUSSIAN_GINAC__
21#define __NONLINEAR_SYSTEM_CONDITIONAL_GAUSSIAN_GINAC__
22
23#include "analyticconditionalgaussian_additivenoise.h"
24#include <ginac/ginac.h>
25#include <iostream>
26
27namespace BFL
28{
30
49 {
50 public:
52
61 const vector<GiNaC::symbol>& u,
62 const vector<GiNaC::symbol>& x,
63 const Gaussian& additiveNoise,
64 const vector<GiNaC::symbol>& cond );
65
67
76 const vector<GiNaC::symbol>& u,
77 const vector<GiNaC::symbol>& x,
78 const Gaussian& additiveNoise );
81
84
86 friend std::ostream& operator<< (std::ostream& os, NonLinearAnalyticConditionalGaussian_Ginac& p);
87
89 GiNaC::matrix FunctionGet();
90
92 vector<GiNaC::symbol> InputGet();
93
95 vector<GiNaC::symbol> StateGet();
96
98 vector<GiNaC::symbol> ConditionalGet();
99
100 // redefinition of virtual functions
101 virtual MatrixWrapper::ColumnVector ExpectedValueGet() const;
102 virtual MatrixWrapper::SymmetricMatrix CovarianceGet() const;
103
104 // Redefinition of dfGet
109 virtual MatrixWrapper::Matrix dfGet(unsigned int i) const;
110
111
112 private:
113 GiNaC::matrix func_sym;
114 vector<GiNaC::symbol> cond_sym, u_sym, x_sym;
115 unsigned int cond_size, u_size, x_size, func_size;
116 vector<GiNaC::ex> dfunc_dcond, dfunc_dx;
117
118
119 };
120
121} // End namespace
122
123#endif // __NONLINEAR_SYSTEM_CONDITIONAL_GAUSSIAN_GINAC__
Abstract Class representing all full Analytical Conditional gaussians with Additive Gaussian Noise.
Class representing Gaussian (or normal density)
Definition gaussian.h:28
Conditional Gaussian for an analytic nonlinear system using Ginac:
virtual ~NonLinearAnalyticConditionalGaussian_Ginac()
Destructor.
virtual MatrixWrapper::SymmetricMatrix CovarianceGet() const
Get the Covariance Matrix E[(x - E[x])^2] of the Analytic pdf.
virtual MatrixWrapper::ColumnVector ExpectedValueGet() const
Get the expected value E[x] of the pdf.
vector< GiNaC::symbol > StateGet()
return state symbols
vector< GiNaC::symbol > InputGet()
return substitution symbols
NonLinearAnalyticConditionalGaussian_Ginac(const NonLinearAnalyticConditionalGaussian_Ginac &g)
copy constructor
GiNaC::matrix FunctionGet()
return function
virtual MatrixWrapper::Matrix dfGet(unsigned int i) const
friend std::ostream & operator<<(std::ostream &os, NonLinearAnalyticConditionalGaussian_Ginac &p)
output stream for measurement model
vector< GiNaC::symbol > ConditionalGet()
Get conditional arguments.
NonLinearAnalyticConditionalGaussian_Ginac(const GiNaC::matrix &func, const vector< GiNaC::symbol > &u, const vector< GiNaC::symbol > &x, const Gaussian &additiveNoise, const vector< GiNaC::symbol > &cond)
constructor
NonLinearAnalyticConditionalGaussian_Ginac(const GiNaC::matrix &func, const vector< GiNaC::symbol > &u, const vector< GiNaC::symbol > &x, const Gaussian &additiveNoise)
constructor