Bayesian Filtering Library  Generated from SVN r
Public Member Functions | List of all members
ConditionalPdf< Var, CondArg > Class Template Reference

Abstract Class representing conditional Pdfs P(x | ...) More...

#include <conditionalpdf.h>

Inheritance diagram for ConditionalPdf< Var, CondArg >:
Pdf< Var >

Public Member Functions

 ConditionalPdf (int dimension=0, unsigned int num_conditional_arguments=0)
 Constructor. More...
 
virtual ~ConditionalPdf ()
 Destructor.
 
virtual ConditionalPdf< Var,
CondArg > * 
Clone () const
 Clone function.
 
unsigned int NumConditionalArgumentsGet () const
 Get the Number of conditional arguments. More...
 
virtual void NumConditionalArgumentsSet (unsigned int numconditionalarguments)
 Set the Number of conditional arguments. More...
 
const std::vector< CondArg > & ConditionalArgumentsGet () const
 Get the whole list of conditional arguments. More...
 
virtual void ConditionalArgumentsSet (std::vector< CondArg > ConditionalArguments)
 Set the whole list of conditional arguments. More...
 
const CondArg & ConditionalArgumentGet (unsigned int n_argument) const
 Get the n-th argument of the list. More...
 
virtual void ConditionalArgumentSet (unsigned int n_argument, const CondArg &argument)
 Set the n-th argument of the list. More...
 
virtual bool SampleFrom (vector< Sample< Var > > &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< Var > &one_sample, int method=DEFAULT, void *args=NULL) const
 Draw 1 sample from the Pdf: More...
 
virtual Probability ProbabilityGet (const Var &input) const
 Get the probability of a certain argument. More...
 
unsigned int DimensionGet () const
 Get the dimension of the argument. More...
 
virtual void DimensionSet (unsigned int dim)
 Set the dimension of the argument. More...
 
virtual Var ExpectedValueGet () const
 Get the expected value E[x] of the pdf. More...
 
virtual
MatrixWrapper::SymmetricMatrix 
CovarianceGet () const
 Get the Covariance Matrix E[(x - E[x])^2] of the Analytic pdf. More...
 

Detailed Description

template<typename Var, typename CondArg>
class BFL::ConditionalPdf< Var, CondArg >

Abstract Class representing conditional Pdfs P(x | ...)

This class inherits from Pdf Virtual public because of the multiple inheritance that follows Two templates are here to allow a mixture of discrete and continu variables in the Pdf!

Bug:
All conditional arguments should be of the same type T for now!
Todo:
Investigate if we can allow. It is for sure that we'll need another class then the std::list to implement this!
See Also
Pdf

Definition at line 49 of file conditionalpdf.h.

Constructor & Destructor Documentation

ConditionalPdf ( int  dimension = 0,
unsigned int  num_conditional_arguments = 0 
)

Constructor.

Parameters
dimensionint representing the number of rows of the state vector
num_conditional_argumentsthe number of arguments behind the |

Definition at line 116 of file conditionalpdf.h.

Member Function Documentation

const CondArg & ConditionalArgumentGet ( unsigned int  n_argument) const

Get the n-th argument of the list.

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

Definition at line 165 of file conditionalpdf.h.

void ConditionalArgumentSet ( unsigned int  n_argument,
const CondArg &  argument 
)
virtual

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 173 of file conditionalpdf.h.

const std::vector< CondArg > & ConditionalArgumentsGet ( ) const

Get the whole list of conditional arguments.

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

Definition at line 152 of file conditionalpdf.h.

void ConditionalArgumentsSet ( std::vector< CondArg >  ConditionalArguments)
virtual

Set the whole list of conditional arguments.

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

Definition at line 158 of file conditionalpdf.h.

virtual MatrixWrapper::SymmetricMatrix CovarianceGet ( ) const
virtualinherited

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!
unsigned int DimensionGet ( ) const
inherited

Get the dimension of the argument.

Returns
the dimension of the argument
virtual void DimensionSet ( unsigned int  dim)
virtualinherited

Set the dimension of the argument.

Parameters
dimthe dimension
virtual Var ExpectedValueGet ( ) const
virtualinherited

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?
unsigned int NumConditionalArgumentsGet ( ) const
inline

Get the Number of conditional arguments.

Returns
the number of conditional arguments

Definition at line 135 of file conditionalpdf.h.

void NumConditionalArgumentsSet ( unsigned int  numconditionalarguments)
inlinevirtual

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 141 of file conditionalpdf.h.

virtual Probability ProbabilityGet ( const Var &  input) const
virtualinherited

Get the probability of a certain argument.

Parameters
inputT argument of the Pdf
Returns
the probability value of the argument
virtual bool SampleFrom ( vector< Sample< Var > > &  list_samples,
const unsigned int  num_samples,
int  method = 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 a #define statement, eg. #define BOXMULLER 1
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!
virtual bool SampleFrom ( Sample< Var > &  one_sample,
int  method = 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 a #define statement, eg. #define BOXMULLER 1
argsPointer to a struct representing extra sample arguments
See Also
SampleFrom()
Bug:
Sometimes the compiler doesn't know which method to choose!

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