BFL::BFL::Mixture< T > Class Template Reference

Class representing a mixture of PDFs, the mixture can contain different. More...

`#include <mixtureParticleFilter.h>`

Inheritance diagram for BFL::BFL::Mixture< T >:

## Public Member Functions | |

bool | AddComponent (Pdf< T > &pdf) |

Add a component pdf: THIS IS A NON-REALTIME OPERATION. | |

bool | AddComponent (Pdf< T > &pdf, Probability w) |

Add a component pdf with weight w: THIS IS A NON-REALTIME OPERATION. | |

virtual Mixture * | Clone () const |

Clone function. | |

Pdf< T > * | ComponentGet (unsigned int componentNumber) const |

Get the pointer to the component pdf of component "componentNumber". | |

vector< Pdf< T > * > | ComponentsGet () const |

Get the vector of pointers to the component pdfs. | |

MatrixWrapper::SymmetricMatrix | CovarianceGet () const |

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

bool | DeleteComponent (unsigned int componentNumber) |

Delete a component pdf: THIS IS A NON_REALTIME OPERATION. | |

template<> | |

ColumnVector | ExpectedValueGet () const |

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

template<> | |

unsigned int | ExpectedValueGet () const |

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

template<> | |

int | ExpectedValueGet () const |

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

T | ExpectedValueGet () const |

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

template<> | |

double | ExpectedValueGet () const |

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

Mixture (const unsigned int dimension=0) | |

Constructor: An equal weight is set for all components. | |

template<typename U > | |

Mixture (const U &componentVector) | |

Constructor: An equal weights is set for all components. | |

Mixture (const Mixture &my_mixture) | |

Copy Constructor. | |

int | MostProbableComponentGet () const |

Get the index of the most probable component, if a few component are. | |

unsigned int | NumComponentsGet () const |

Get the number of components. | |

Probability | ProbabilityGet (const T &state) const |

Implementation of virtual base class method. | |

bool | SampleFrom (vector< Sample< T > > &list_samples, const unsigned int num_samples, int method=DEFAULT, void *args=NULL) const |

Draw multiple samples from the Pdf (overloaded) | |

bool | SampleFrom (Sample< T > &one_sample, int method=DEFAULT, void *args=NULL) const |

Draw 1 sample from the Pdf: | |

Probability | WeightGet (unsigned int componentNumber) const |

Get the component weight of component "componentNumber". | |

bool | WeightSet (unsigned int componentNumber, Probability w) |

Function to change/set the weigth of a single component. | |

vector< Probability > | WeightsGet () const |

Get all component weights. | |

bool | WeightsSet (vector< Probability > &weights) |

Set all component weights. | |

virtual | ~Mixture () |

Destructor. | |

## Protected Member Functions | |

bool | CumWeightsUpdate () |

Updates the cumWeights. | |

bool | NormalizeWeights () |

Normalize the component weigths (eg. after setting a component weight) | |

void | TestNotInit () const |

Called when a the number of components=0 and if method is called which. | |

## Protected Attributes | |

vector< Pdf< T > * > * | _componentPdfs |

Pointer to the vector of component pdfs. | |

vector< Probability > * | _componentWeights |

Pointer to the vector of mixture weights, the sum of the elements = 1. | |

vector< double > | _cumWeights |

Vector containing the cumulative component weights (for efficient sampling) | |

unsigned int | _numComponents |

The number of components. |

class BFL::BFL::Mixture< T >

Class representing a mixture of PDFs, the mixture can contain different.

This class is an instantation from the template class Pdf, with added methods to get a set the individual components and mixture weights

Definition at line 48 of file mixtureParticleFilter.h.

template<typename T >

BFL::Mixture< T >::Mixture | ( | const unsigned int | dimension = `0` | ) |

Constructor: An equal weight is set for all components.

**Parameters:**-
dimension the dimension of the state space

Definition at line 182 of file mixtureParticleFilter.h.

Constructor: An equal weights is set for all components.

**Parameters:**-
componentVector vector of components (Pdf<T>*)

Definition at line 199 of file mixtureParticleFilter.h.

template<typename T >

BFL::Mixture< T >::Mixture | ( | const Mixture< T > & | my_mixture | ) |

Copy Constructor.

Definition at line 226 of file mixtureParticleFilter.h.

template<typename T >

BFL::Mixture< T >::~Mixture | ( | ) | ` [virtual]` |

Destructor.

Definition at line 247 of file mixtureParticleFilter.h.

template<typename T >

bool BFL::Mixture< T >::AddComponent | ( | Pdf< T > & | pdf | ) |

Add a component pdf: THIS IS A NON-REALTIME OPERATION.

**Parameters:**-
pdf Component pdf which will be added

Definition at line 467 of file mixtureParticleFilter.h.

template<typename T >

bool BFL::Mixture< T >::AddComponent | ( | Pdf< T > & | pdf, |

Probability | w |
||

) |

Add a component pdf with weight w: THIS IS A NON-REALTIME OPERATION.

**Parameters:**-
pdf Component pdf which will be added weight the weight of the new component

Definition at line 487 of file mixtureParticleFilter.h.

template<typename T >

Mixture< T > * BFL::Mixture< T >::Clone | ( | ) | const` [virtual]` |

Clone function.

Implements BFL::BFL::Pdf< T >.

Definition at line 262 of file mixtureParticleFilter.h.

template<typename T >

Pdf< T > * BFL::Mixture< T >::ComponentGet | ( | unsigned int | componentNumber | ) | const |

Get the pointer to the component pdf of component "componentNumber".

**Parameters:**-
componentNumber number of the component (must be >=0 and <_numComponents)

Definition at line 540 of file mixtureParticleFilter.h.

template<typename T >

vector< Pdf< T > * > BFL::Mixture< T >::ComponentsGet | ( | ) | const |

Get the vector of pointers to the component pdfs.

Definition at line 533 of file mixtureParticleFilter.h.

template<typename T >

MatrixWrapper::SymmetricMatrix BFL::Mixture< T >::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::BFL::Pdf< T >.

Definition at line 378 of file mixtureParticleFilter.h.

template<typename T >

bool BFL::Mixture< T >::CumWeightsUpdate | ( | ) | ` [protected]` |

Updates the cumWeights.

Definition at line 577 of file mixtureParticleFilter.h.

template<typename T >

bool BFL::Mixture< T >::DeleteComponent | ( | unsigned int | componentNumber | ) |

Delete a component pdf: THIS IS A NON_REALTIME OPERATION.

**Parameters:**-
componentNumber number of the component which will be deleted (must be >=0 and <_numComponents)

Definition at line 507 of file mixtureParticleFilter.h.

template<>

ColumnVector BFL::BFL::Mixture< ColumnVector >::ExpectedValueGet | ( | ) | const` [inline, 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< T >.

Definition at line 31 of file mixtureParticleFilter.h.

template<>

unsigned int BFL::BFL::Mixture< unsigned int >::ExpectedValueGet | ( | ) | const` [inline, 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< T >.

Definition at line 46 of file mixtureParticleFilter.h.

template<>

int BFL::BFL::Mixture< int >::ExpectedValueGet | ( | ) | const` [inline, 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< T >.

Definition at line 82 of file mixtureParticleFilter.h.

template<typename T >

T BFL::Mixture< T >::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:**- For certain discrete Pdfs, this function has no meaning, what is the average between yes and no?

Reimplemented from BFL::BFL::Pdf< T >.

Definition at line 368 of file mixtureParticleFilter.h.

template<>

double BFL::BFL::Mixture< double >::ExpectedValueGet | ( | ) | const` [inline, 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:**- For certain discrete Pdfs, this function has no meaning, what is the average between yes and no?

Reimplemented from BFL::BFL::Pdf< T >.

Definition at line 116 of file mixtureParticleFilter.h.

template<typename T >

int BFL::Mixture< T >::MostProbableComponentGet | ( | ) | const |

Get the index of the most probable component, if a few component are.

Definition at line 450 of file mixtureParticleFilter.h.

template<typename T >

bool BFL::Mixture< T >::NormalizeWeights | ( | ) | ` [protected]` |

Normalize the component weigths (eg. after setting a component weight)

Definition at line 558 of file mixtureParticleFilter.h.

template<typename T >

unsigned int BFL::Mixture< T >::NumComponentsGet | ( | ) | const |

Get the number of components.

Definition at line 268 of file mixtureParticleFilter.h.

template<typename T >

Probability BFL::Mixture< T >::ProbabilityGet | ( | const T & | state | ) | const` [virtual]` |

Implementation of virtual base class method.

Reimplemented from BFL::BFL::Pdf< T >.

Definition at line 274 of file mixtureParticleFilter.h.

template<typename T >

bool BFL::Mixture< T >::SampleFrom | ( | vector< Sample< T > > & | list_samples, |

const unsigned int | num_samples, |
||

int | method = `DEFAULT` , |
||

void * | args = `NULL` |
||

) | const` [virtual]` |

Draw multiple samples from the Pdf (overloaded)

**Parameters:**-
list_samples list of samples that will contain result of sampling num_samples Number of Samples to be drawn (iid) method Sampling method to be used. Each sampling method is currently represented by a #define statement, eg. #define BOXMULLER 1 args Pointer 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!

Reimplemented from BFL::BFL::Pdf< T >.

Definition at line 286 of file mixtureParticleFilter.h.

template<typename T >

bool BFL::Mixture< T >::SampleFrom | ( | Sample< T > & | one_sample, |

int | method = `DEFAULT` , |
||

void * | args = `NULL` |
||

) | const` [virtual]` |

Draw 1 sample from the Pdf:

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

**Parameters:**-
one_sample sample that will contain result of sampling method Sampling method to be used. Each sampling method is currently represented by a #define statement, eg. #define BOXMULLER 1 args Pointer to a struct representing extra sample arguments

**See also:**- SampleFrom()

**Bug:**- Sometimes the compiler doesn't know which method to choose!

Reimplemented from BFL::BFL::Pdf< T >.

Definition at line 339 of file mixtureParticleFilter.h.

template<typename T >

void BFL::Mixture< T >::TestNotInit | ( | ) | const` [protected]` |

Called when a the number of components=0 and if method is called which.

Definition at line 547 of file mixtureParticleFilter.h.

template<typename T >

Probability BFL::Mixture< T >::WeightGet | ( | unsigned int | componentNumber | ) | const |

Get the component weight of component "componentNumber".

**Parameters:**-
componentNumber number of the component (must be >=0 and <_numComponents)

Definition at line 397 of file mixtureParticleFilter.h.

template<typename T >

bool BFL::Mixture< T >::WeightSet | ( | unsigned int | componentNumber, |

Probability | w |
||

) |

Function to change/set the weigth of a single component.

Changes the component weights such that AFTER normalization the weight of the component "componentNumber" is equal to the weight w

**Parameters:**-
componentNumber number of the component of which the weight will be set (must be >=0 and <_numComponents) w Probability to which the weight of component "componentNumber" will be set (must be <= 1)

Definition at line 415 of file mixtureParticleFilter.h.

template<typename T >

vector< Probability > BFL::Mixture< T >::WeightsGet | ( | ) | const |

Get all component weights.

Definition at line 390 of file mixtureParticleFilter.h.

template<typename T >

bool BFL::Mixture< T >::WeightsSet | ( | vector< Probability > & | weights | ) |

Set all component weights.

values vector<Probability> containing the new component weights . The sum of the probabilities of this list is not required to be one since the normalization is automatically carried out. The size of weights should be equal to the number of components

Definition at line 405 of file mixtureParticleFilter.h.

template<typename T>

vector<Pdf<T>* >* BFL::BFL::Mixture< T >::_componentPdfs` [protected]` |

Pointer to the vector of component pdfs.

Definition at line 58 of file mixtureParticleFilter.h.

template<typename T>

vector<Probability>* BFL::BFL::Mixture< T >::_componentWeights` [protected]` |

Pointer to the vector of mixture weights, the sum of the elements = 1.

Definition at line 55 of file mixtureParticleFilter.h.

template<typename T>

vector<double> BFL::BFL::Mixture< T >::_cumWeights` [protected]` |

Vector containing the cumulative component weights (for efficient sampling)

Definition at line 66 of file mixtureParticleFilter.h.

template<typename T>

unsigned int BFL::BFL::Mixture< T >::_numComponents` [protected]` |

The number of components.

Definition at line 52 of file mixtureParticleFilter.h.

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

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 11 2019 03:45:12

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 11 2019 03:45:12