Bayesian Filtering Library Generated from SVN r
linearanalyticconditionalgaussian.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 be>
4// Tinne De Laet <tinne dot delaet at mech dot kuleuven dot be>
5//
6// This program is free software; you can redistribute it and/or modify
7// it under the terms of the GNU Lesser General Public License as published by
8// the Free Software Foundation; either version 2.1 of the License, or
9// (at your option) any later version.
10//
11// This program is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public License
17// along with this program; if not, write to the Free Software
18// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19//
20
21#ifndef __LINEAR_SYSTEM_CONDITIONAL_GAUSSIAN__
22#define __LINEAR_SYSTEM_CONDITIONAL_GAUSSIAN__
23
24#include "analyticconditionalgaussian_additivenoise.h"
25
26namespace BFL
27{
29
36 {
37 public:
39
48 LinearAnalyticConditionalGaussian(const vector<MatrixWrapper::Matrix> & ratio,
49 const Gaussian& additiveNoise);
50
52
57 LinearAnalyticConditionalGaussian(const MatrixWrapper::Matrix& a, const Gaussian& additiveNoise);
58
59 // Default copy constructor will do
60
63
66
67 // implement virtual functions
68 virtual MatrixWrapper::ColumnVector ExpectedValueGet() const;
69 virtual MatrixWrapper::Matrix dfGet(unsigned int i) const;
70
72
78 virtual void NumConditionalArgumentsSet(unsigned int numconditionalarguments);
79
81
89 void MatrixSet(unsigned int i, const MatrixWrapper::Matrix& m);
90
92
97 const MatrixWrapper::Matrix& MatrixGet(unsigned int i) const;
98
99 private:
100
101 vector<MatrixWrapper::Matrix> _ratio;
102 // variables to avoid allocation during expectedValueGet call
103 mutable MatrixWrapper::ColumnVector _mean_temp;
104 mutable MatrixWrapper::ColumnVector _arg;
105
106 };
107
108} // End namespace BFL
109
110#endif // __LINEAR_SYSTEM_CONDITIONAL_GAUSSIAN__
Abstract Class representing all full Analytical Conditional gaussians with Additive Gaussian Noise.
Class representing Gaussian (or normal density)
Definition: gaussian.h:28
virtual MatrixWrapper::ColumnVector ExpectedValueGet() const
Get the expected value E[x] of the pdf.
LinearAnalyticConditionalGaussian(const vector< MatrixWrapper::Matrix > &ratio, const Gaussian &additiveNoise)
Constructor.
virtual LinearAnalyticConditionalGaussian * Clone() const
Clone function.
virtual MatrixWrapper::Matrix dfGet(unsigned int i) const
returns derivative from function to n-th conditional variable
virtual ~LinearAnalyticConditionalGaussian()
Destructor.
virtual void NumConditionalArgumentsSet(unsigned int numconditionalarguments)
Be careful: you don't want to use this one: Redefined.
LinearAnalyticConditionalGaussian(const MatrixWrapper::Matrix &a, const Gaussian &additiveNoise)
Constructor (overloaded)
void MatrixSet(unsigned int i, const MatrixWrapper::Matrix &m)
Set the i-th Matrix for calculation of .
const MatrixWrapper::Matrix & MatrixGet(unsigned int i) const
Get the i-th matrix of the system.