Public Member Functions | Private Attributes | Friends | List of all members
BFL::NonLinearAnalyticConditionalGaussian_Ginac Class Reference

Conditional Gaussian for an analytic nonlinear system using Ginac: More...

#include <nonlinearanalyticconditionalgaussian_ginac.h>

Inheritance diagram for BFL::NonLinearAnalyticConditionalGaussian_Ginac:
Inheritance graph
[legend]

Public Member Functions

vector< GiNaC::symbol > ConditionalGet ()
 Get conditional arguments. More...
 
virtual MatrixWrapper::SymmetricMatrix CovarianceGet () const
 Get the Covariance Matrix E[(x - E[x])^2] of the Analytic pdf. More...
 
virtual MatrixWrapper::Matrix dfGet (unsigned int i) const
 
virtual MatrixWrapper::ColumnVector ExpectedValueGet () const
 Get the expected value E[x] of the pdf. More...
 
GiNaC::matrix FunctionGet ()
 return function More...
 
vector< GiNaC::symbol > InputGet ()
 return substitution symbols More...
 
 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 More...
 
 NonLinearAnalyticConditionalGaussian_Ginac (const GiNaC::matrix &func, const vector< GiNaC::symbol > &u, const vector< GiNaC::symbol > &x, const Gaussian &additiveNoise)
 constructor More...
 
 NonLinearAnalyticConditionalGaussian_Ginac (const NonLinearAnalyticConditionalGaussian_Ginac &g)
 copy constructor More...
 
vector< GiNaC::symbol > StateGet ()
 return state symbols More...
 
virtual ~NonLinearAnalyticConditionalGaussian_Ginac ()
 Destructor. More...
 
- Public Member Functions inherited from BFL::AnalyticConditionalGaussianAdditiveNoise
const MatrixWrapper::ColumnVector & AdditiveNoiseMuGet () const
 Get the mean Value of the Additive Gaussian uncertainty. More...
 
void AdditiveNoiseMuSet (const MatrixWrapper::ColumnVector &mu)
 Set the mean Value of the Additive Gaussian uncertainty. More...
 
const MatrixWrapper::SymmetricMatrix & AdditiveNoiseSigmaGet () const
 Get the covariance matrix of the Additive Gaussian uncertainty. More...
 
void AdditiveNoiseSigmaSet (const MatrixWrapper::SymmetricMatrix &sigma)
 Set the covariance of the Additive Gaussian uncertainty. More...
 
 AnalyticConditionalGaussianAdditiveNoise (const Gaussian &gaus, int num_conditional_arguments=1)
 Constructor. More...
 
 AnalyticConditionalGaussianAdditiveNoise (int dim=0, int num_conditional_arguments=0)
 Constructor 2, Gaussian not yet known. More...
 
virtual ~AnalyticConditionalGaussianAdditiveNoise ()
 Destructor. More...
 
- Public Member Functions inherited from BFL::AnalyticConditionalGaussian
 AnalyticConditionalGaussian (int dim=0, int num_conditional_arguments=0)
 Constructor. More...
 
virtual ~AnalyticConditionalGaussian ()
 Destructor. More...
 
- Public Member Functions inherited from BFL::ConditionalGaussian
virtual ConditionalGaussianClone () const
 Clone function. More...
 
 ConditionalGaussian (int dim=0, int num_conditional_arguments=0)
 Constructor. More...
 
virtual Probability ProbabilityGet (const MatrixWrapper::ColumnVector &input) const
 Get the probability of a certain argument. More...
 
virtual bool SampleFrom (Sample< MatrixWrapper::ColumnVector > &sample, int method=DEFAULT, void *args=NULL) const
 
virtual bool SampleFrom (std::vector< Sample< MatrixWrapper::ColumnVector > > &samples, const int num_samples, int method=DEFAULT, void *args=NULL) const
 
virtual ~ConditionalGaussian ()
 Destructor. More...
 
- Public Member Functions inherited from BFL::ConditionalPdf< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector >
const MatrixWrapper::ColumnVector & ConditionalArgumentGet (unsigned int n_argument) const
 Get the n-th argument of the list. More...
 
virtual void ConditionalArgumentSet (unsigned int n_argument, const MatrixWrapper::ColumnVector &argument)
 Set the n-th argument of the list. More...
 
const std::vector< MatrixWrapper::ColumnVector > & ConditionalArgumentsGet () const
 Get the whole list of conditional arguments. More...
 
virtual void ConditionalArgumentsSet (std::vector< MatrixWrapper::ColumnVector > ConditionalArguments)
 Set the whole list of conditional arguments. More...
 
 ConditionalPdf (int dimension=0, unsigned int num_conditional_arguments=0)
 Constructor. More...
 
unsigned int NumConditionalArgumentsGet () const
 Get the Number of conditional arguments. More...
 
virtual void NumConditionalArgumentsSet (unsigned int numconditionalarguments)
 Set the Number of conditional arguments. More...
 
virtual ~ConditionalPdf ()
 Destructor. More...
 
- Public Member Functions inherited from BFL::BFL::Pdf< MatrixWrapper::ColumnVector >
unsigned int DimensionGet () const
 Get the dimension of the argument. More...
 
virtual void DimensionSet (unsigned int dim)
 Set the dimension of the argument. More...
 
 Pdf (unsigned int dimension=0)
 Constructor. More...
 
virtual bool SampleFrom (vector< Sample< MatrixWrapper::ColumnVector > > &list_samples, const unsigned int num_samples, int method=DEFAULT, void *args=NULL) const
 Draw multiple samples from the Pdf (overloaded) More...
 
virtual bool SampleFrom (Sample< MatrixWrapper::ColumnVector > &one_sample, int method=DEFAULT, void *args=NULL) const
 Draw 1 sample from the Pdf: More...
 
virtual ~Pdf ()
 Destructor. More...
 

Private Attributes

unsigned int cond_size
 
vector< GiNaC::symbol > cond_sym
 
vector< GiNaC::ex > dfunc_dcond
 
vector< GiNaC::ex > dfunc_dx
 
unsigned int func_size
 
GiNaC::matrix func_sym
 
unsigned int u_size
 
vector< GiNaC::symbol > u_sym
 
unsigned int x_size
 
vector< GiNaC::symbol > x_sym
 

Friends

std::ostream & operator<< (std::ostream &os, NonLinearAnalyticConditionalGaussian_Ginac &p)
 output stream for measurement model More...
 

Additional Inherited Members

- Protected Attributes inherited from BFL::AnalyticConditionalGaussianAdditiveNoise
MatrixWrapper::ColumnVector _additiveNoise_Mu
 additive noise expected value More...
 
MatrixWrapper::SymmetricMatrix _additiveNoise_Sigma
 additive noise covariance More...
 
- Protected Attributes inherited from BFL::ConditionalGaussian
ColumnVector _diff
 
Matrix _Low_triangle
 
ColumnVector _Mu
 
ColumnVector _samples
 
ColumnVector _SampleValue
 

Detailed Description

Conditional Gaussian for an analytic nonlinear system using Ginac:

Describes classes of the type

\[ P(z | subs) \]

with

\[ z=f(subs) + N(\mu,\Sigma) \]

or

\[ z=f(subs,c+N(\mu, \Sigma)) \]

Constructor for the first type:

\[ NonLinearAnalyticConditionalGaussian_Ginac(f(subs), subs, N(\mu, \Sigma) ) \]

Constructor for the second type:

\[ NonLinearAnalyticConditionalGaussian_Ginac(f(subs,z), subs, N(\mu, \Sigma) ,c) \]

When the second type is used, the additive noise on c will be converted to additive noise on f, by locally linearising the function.

Bug:
: This class is higly biased towards filtering applications.

Definition at line 48 of file nonlinearanalyticconditionalgaussian_ginac.h.

Constructor & Destructor Documentation

◆ NonLinearAnalyticConditionalGaussian_Ginac() [1/3]

BFL::NonLinearAnalyticConditionalGaussian_Ginac::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

Parameters
funcfunction to be evaluated for expected value
usymbols to be substituted (by numeric values) for evaluation. These can be system inputs or sensor parameters
xsymbols representing state
additiveNoiseGaussian representing additive noise
condparameters where additive noise applies to

Definition at line 30 of file nonlinearanalyticconditionalgaussian_ginac.cpp.

◆ NonLinearAnalyticConditionalGaussian_Ginac() [2/3]

BFL::NonLinearAnalyticConditionalGaussian_Ginac::NonLinearAnalyticConditionalGaussian_Ginac ( const GiNaC::matrix &  func,
const vector< GiNaC::symbol > &  u,
const vector< GiNaC::symbol > &  x,
const Gaussian additiveNoise 
)

constructor

Parameters
funcfunction to be evaluated for expected value
usymbols to be substituted (by numeric values) for evaluation. These can be system inputs or sensor parameters
xsymbols representing state
additiveNoiseGaussian representing additive noise on function output

Definition at line 62 of file nonlinearanalyticconditionalgaussian_ginac.cpp.

◆ NonLinearAnalyticConditionalGaussian_Ginac() [3/3]

BFL::NonLinearAnalyticConditionalGaussian_Ginac::NonLinearAnalyticConditionalGaussian_Ginac ( const NonLinearAnalyticConditionalGaussian_Ginac g)

copy constructor

Definition at line 85 of file nonlinearanalyticconditionalgaussian_ginac.cpp.

◆ ~NonLinearAnalyticConditionalGaussian_Ginac()

BFL::NonLinearAnalyticConditionalGaussian_Ginac::~NonLinearAnalyticConditionalGaussian_Ginac ( )
virtual

Destructor.

Definition at line 112 of file nonlinearanalyticconditionalgaussian_ginac.cpp.

Member Function Documentation

◆ ConditionalGet()

vector< GiNaC::symbol > BFL::NonLinearAnalyticConditionalGaussian_Ginac::ConditionalGet ( )

Get conditional arguments.

Definition at line 285 of file nonlinearanalyticconditionalgaussian_ginac.cpp.

◆ CovarianceGet()

MatrixWrapper::SymmetricMatrix BFL::NonLinearAnalyticConditionalGaussian_Ginac::CovarianceGet ( ) const
virtual

Get the Covariance Matrix E[(x - E[x])^2] of the Analytic pdf.

Get first order statistic (Covariance) of this AnalyticPdf

Returns
The Covariance of the Pdf (a SymmetricMatrix of dim DIMENSION)
Todo:
extend this more general to n-th order statistic
Bug:
Discrete pdfs should not be able to use this!

Reimplemented from BFL::AnalyticConditionalGaussianAdditiveNoise.

Definition at line 173 of file nonlinearanalyticconditionalgaussian_ginac.cpp.

◆ dfGet()

MatrixWrapper::Matrix BFL::NonLinearAnalyticConditionalGaussian_Ginac::dfGet ( unsigned int  i) const
virtual
Bug:
only implemented for i = 0 for now (so in a filter context, only the derivative with respect to x is implemented

Reimplemented from BFL::AnalyticConditionalGaussian.

Definition at line 224 of file nonlinearanalyticconditionalgaussian_ginac.cpp.

◆ ExpectedValueGet()

MatrixWrapper::ColumnVector BFL::NonLinearAnalyticConditionalGaussian_Ginac::ExpectedValueGet ( ) const
virtual

Get the expected value E[x] of the pdf.

Get low order statistic (Expected Value) of this AnalyticPdf

Returns
The Expected Value of the Pdf (a ColumnVector with DIMENSION rows)
Note
No set functions here! This can be useful for analytic functions, but not for sample based representations!
For certain discrete Pdfs, this function has no meaning, what is the average between yes and no?

Reimplemented from BFL::BFL::Pdf< MatrixWrapper::ColumnVector >.

Definition at line 127 of file nonlinearanalyticconditionalgaussian_ginac.cpp.

◆ FunctionGet()

GiNaC::matrix BFL::NonLinearAnalyticConditionalGaussian_Ginac::FunctionGet ( )

return function

Definition at line 266 of file nonlinearanalyticconditionalgaussian_ginac.cpp.

◆ InputGet()

vector< GiNaC::symbol > BFL::NonLinearAnalyticConditionalGaussian_Ginac::InputGet ( )

return substitution symbols

Definition at line 273 of file nonlinearanalyticconditionalgaussian_ginac.cpp.

◆ StateGet()

vector< GiNaC::symbol > BFL::NonLinearAnalyticConditionalGaussian_Ginac::StateGet ( )

return state symbols

Definition at line 279 of file nonlinearanalyticconditionalgaussian_ginac.cpp.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
NonLinearAnalyticConditionalGaussian_Ginac p 
)
friend

output stream for measurement model

Definition at line 116 of file nonlinearanalyticconditionalgaussian_ginac.cpp.

Member Data Documentation

◆ cond_size

unsigned int BFL::NonLinearAnalyticConditionalGaussian_Ginac::cond_size
private

◆ cond_sym

vector<GiNaC::symbol> BFL::NonLinearAnalyticConditionalGaussian_Ginac::cond_sym
private

◆ dfunc_dcond

vector<GiNaC::ex> BFL::NonLinearAnalyticConditionalGaussian_Ginac::dfunc_dcond
private

◆ dfunc_dx

vector<GiNaC::ex> BFL::NonLinearAnalyticConditionalGaussian_Ginac::dfunc_dx
private

◆ func_size

unsigned int BFL::NonLinearAnalyticConditionalGaussian_Ginac::func_size
private

◆ func_sym

GiNaC::matrix BFL::NonLinearAnalyticConditionalGaussian_Ginac::func_sym
private

◆ u_size

unsigned int BFL::NonLinearAnalyticConditionalGaussian_Ginac::u_size
private

◆ u_sym

vector<GiNaC::symbol> BFL::NonLinearAnalyticConditionalGaussian_Ginac::u_sym
private

◆ x_size

unsigned int BFL::NonLinearAnalyticConditionalGaussian_Ginac::x_size
private

◆ x_sym

vector<GiNaC::symbol> BFL::NonLinearAnalyticConditionalGaussian_Ginac::x_sym
private

The documentation for this class was generated from the following files:


bfl
Author(s): Klaas Gadeyne, Wim Meeussen, Tinne Delaet and many others. See web page for a full contributor list. ROS package maintained by Wim Meeussen.
autogenerated on Mon Feb 28 2022 21:56:34