Bayesian Filtering Library Generated from SVN r
NonLinearAnalyticConditionalGaussian_Ginac Class Reference

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

#include <nonlinearanalyticconditionalgaussian_ginac.h>

Inheritance diagram for NonLinearAnalyticConditionalGaussian_Ginac:
AnalyticConditionalGaussianAdditiveNoise AnalyticConditionalGaussian ConditionalGaussian ConditionalPdf< MatrixWrapper::ColumnVector, MatrixWrapper::ColumnVector > Pdf< MatrixWrapper::ColumnVector >

Public Member Functions

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

Protected Attributes

MatrixWrapper::ColumnVector _additiveNoise_Mu
 additive noise expected value
 
MatrixWrapper::SymmetricMatrix _additiveNoise_Sigma
 additive noise covariance
 
ColumnVector _diff
 
ColumnVector _Mu
 
Matrix _Low_triangle
 
ColumnVector _samples
 
ColumnVector _SampleValue
 

Friends

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

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/2]

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

◆ NonLinearAnalyticConditionalGaussian_Ginac() [2/2]

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

Member Function Documentation

◆ AdditiveNoiseMuGet()

const MatrixWrapper::ColumnVector & AdditiveNoiseMuGet ( ) const
inherited

Get the mean Value of the Additive Gaussian uncertainty.

Returns
the mean Value of the Additive Gaussian uncertainty

◆ AdditiveNoiseMuSet()

void AdditiveNoiseMuSet ( const MatrixWrapper::ColumnVector & mu)
inherited

Set the mean Value of the Additive Gaussian uncertainty.

Parameters
muthe mean Value of the Additive Gaussian uncertainty

◆ AdditiveNoiseSigmaGet()

const MatrixWrapper::SymmetricMatrix & AdditiveNoiseSigmaGet ( ) const
inherited

Get the covariance matrix of the Additive Gaussian uncertainty.

Returns
the mean Value of the Additive Gaussian uncertainty

◆ AdditiveNoiseSigmaSet()

void AdditiveNoiseSigmaSet ( const MatrixWrapper::SymmetricMatrix & sigma)
inherited

Set the covariance of the Additive Gaussian uncertainty.

Parameters
sigmathe covariance matrix of the Additive Gaussian uncertainty

◆ Clone()

virtual ConditionalGaussian * Clone ( ) const
virtualinherited

◆ ConditionalArgumentGet()

const MatrixWrapper::ColumnVector & ConditionalArgumentGet ( unsigned int n_argument) const
inherited

Get the n-th argument of the list.

Returns
The current value of the n-th conditional argument (starting from 0!)

Definition at line 97 of file conditionalpdf.h.

◆ ConditionalArgumentSet()

void ConditionalArgumentSet ( unsigned int n_argument,
const MatrixWrapper::ColumnVector & argument )
virtualinherited

Set the n-th argument of the list.

Parameters
n_argumentwhich one of the conditional arguments
argumentvalue of the n-th argument

Definition at line 104 of file conditionalpdf.h.

◆ ConditionalArgumentsGet()

const std::vector< MatrixWrapper::ColumnVector > & ConditionalArgumentsGet ( ) const
inherited

Get the whole list of conditional arguments.

Returns
an STL-vector containing all the current values of the conditional arguments

Definition at line 85 of file conditionalpdf.h.

◆ ConditionalArgumentsSet()

void ConditionalArgumentsSet ( std::vector< MatrixWrapper::ColumnVector > ConditionalArguments)
virtualinherited

Set the whole list of conditional arguments.

Parameters
ConditionalArgumentsan STL-vector of type
T
containing the condtional arguments

Definition at line 91 of file conditionalpdf.h.

◆ CovarianceGet()

virtual MatrixWrapper::SymmetricMatrix 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!

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 AnalyticConditionalGaussianAdditiveNoise.

◆ dfGet()

virtual MatrixWrapper::Matrix 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 AnalyticConditionalGaussian.

◆ DimensionGet() [1/3]

unsigned int DimensionGet ( ) const
inlineinherited

Get the dimension of the argument.

Returns
the dimension of the argument

Definition at line 113 of file mixtureParticleFilter.h.

◆ DimensionGet() [2/3]

unsigned int DimensionGet ( ) const
inherited

Get the dimension of the argument.

Returns
the dimension of the argument

◆ DimensionGet() [3/3]

unsigned int DimensionGet ( ) const
inherited

Get the dimension of the argument.

Returns
the dimension of the argument

◆ DimensionSet() [1/3]

void DimensionSet ( unsigned int dim)
virtualinherited

Set the dimension of the argument.

Parameters
dimthe dimension

Reimplemented in Gaussian.

Definition at line 118 of file mixtureParticleFilter.h.

◆ DimensionSet() [2/3]

virtual void DimensionSet ( unsigned int dim)
virtualinherited

Set the dimension of the argument.

Parameters
dimthe dimension

Reimplemented in Gaussian.

◆ DimensionSet() [3/3]

virtual void DimensionSet ( unsigned int dim)
virtualinherited

Set the dimension of the argument.

Parameters
dimthe dimension

Reimplemented in Gaussian.

◆ ExpectedValueGet()

virtual MatrixWrapper::ColumnVector 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 Pdf< MatrixWrapper::ColumnVector >.

◆ NumConditionalArgumentsGet()

unsigned int NumConditionalArgumentsGet ( ) const
inlineinherited

Get the Number of conditional arguments.

Returns
the number of conditional arguments

Definition at line 71 of file conditionalpdf.h.

◆ NumConditionalArgumentsSet()

void NumConditionalArgumentsSet ( unsigned int numconditionalarguments)
inlinevirtualinherited

Set the Number of conditional arguments.

Parameters
numconditionalargumentsthe number of conditionalarguments
Bug
will probably give rise to memory allocation problems if you herit from this class and do not redefine this method.

Reimplemented in LinearAnalyticConditionalGaussian.

Definition at line 79 of file conditionalpdf.h.

◆ ProbabilityGet()

virtual Probability ProbabilityGet ( const MatrixWrapper::ColumnVector & input) const
virtualinherited

Get the probability of a certain argument.

Parameters
inputT argument of the Pdf
Returns
the probability value of the argument

Reimplemented from Pdf< MatrixWrapper::ColumnVector >.

◆ SampleFrom() [1/2]

bool SampleFrom ( Sample< MatrixWrapper::ColumnVector > & one_sample,
const SampleMthd method = SampleMthd::DEFAULT,
void * args = NULL ) const
virtualinherited

Draw 1 sample from the Pdf:

There's no need to create a list for only 1 sample!

Parameters
one_samplesample that will contain result of sampling
methodSampling method to be used. Each sampling method is currently represented by an enum, eg. SampleMthd::BOXMULLER
argsPointer to a struct representing extra sample arguments
See also
SampleFrom()
Bug
Sometimes the compiler doesn't know which method to choose!

There's no need to create a list for only 1 sample!

Parameters
one_samplesample that will contain result of sampling
methodSampling method to be used. Each sampling method is currently represented by an enum, eg. SampleMthd::BOXMULLER
argsPointer to a struct representing extra sample arguments
See also
SampleFrom()
Bug
Sometimes the compiler doesn't know which method to choose!

Definition at line 100 of file mixtureParticleFilter.h.

◆ SampleFrom() [2/2]

bool SampleFrom ( vector< Sample< MatrixWrapper::ColumnVector > > & list_samples,
const unsigned int num_samples,
const SampleMthd method = SampleMthd::DEFAULT,
void * args = NULL ) const
virtualinherited

Draw multiple samples from the Pdf (overloaded)

Parameters
list_sampleslist of samples that will contain result of sampling
num_samplesNumber of Samples to be drawn (iid)
methodSampling method to be used. Each sampling method is currently represented by an enum eg. SampleMthd::BOXMULLER
argsPointer to a struct representing extra sample arguments. "Sample Arguments" can be anything (the number of steps a gibbs-iterator should take, the interval width in MCMC, ... (or nothing), so it is hard to give a meaning to what exactly Sample Arguments should represent...
Todo
replace the C-call "void * args" by a more object-oriented structure: Perhaps something like virtual Sample * Sample (const int num_samples,class Sampler)
Bug
Sometimes the compiler doesn't know which method to choose!
Parameters
list_sampleslist of samples that will contain result of sampling
num_samplesNumber of Samples to be drawn (iid)
methodSampling method to be used. Each sampling method is currently represented by an enum eg. SampleMthd::BOXMULLER
argsPointer to a struct representing extra sample arguments. "Sample Arguments" can be anything (the number of steps a gibbs-iterator should take, the interval width in MCMC, ... (or nothing), so it is hard to give a meaning to what exactly Sample Arguments should represent...
Todo
replace the C-call "void * args" by a more object-oriented structure: Perhaps something like virtual Sample * Sample (const int num_samples,class Sampler)
Bug
Sometimes the compiler doesn't know which method to choose!

Definition at line 84 of file mixtureParticleFilter.h.

Member Data Documentation

◆ _additiveNoise_Mu

MatrixWrapper::ColumnVector _additiveNoise_Mu
protectedinherited

additive noise expected value

Definition at line 92 of file analyticconditionalgaussian_additivenoise.h.

◆ _additiveNoise_Sigma

MatrixWrapper::SymmetricMatrix _additiveNoise_Sigma
protectedinherited

additive noise covariance

Definition at line 95 of file analyticconditionalgaussian_additivenoise.h.

◆ _diff

ColumnVector _diff
mutableprotectedinherited

Definition at line 67 of file conditionalgaussian.h.

◆ _Low_triangle

Matrix _Low_triangle
mutableprotectedinherited

Definition at line 69 of file conditionalgaussian.h.

◆ _Mu

ColumnVector _Mu
mutableprotectedinherited

Definition at line 68 of file conditionalgaussian.h.

◆ _samples

ColumnVector _samples
mutableprotectedinherited

Definition at line 70 of file conditionalgaussian.h.

◆ _SampleValue

ColumnVector _SampleValue
mutableprotectedinherited

Definition at line 71 of file conditionalgaussian.h.


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