#include <mixture.h>
Public Member Functions | |
Mixture (unsigned int dimension=0) | |
Constructor: An equal weight is set for all components. | |
template<typename U> | |
Mixture (U &componentVector) | |
Constructor: An equal weights is set for all components. | |
Mixture (const Mixture &my_mixture) | |
Copy Constructor. | |
virtual | ~Mixture () |
Destructor. | |
virtual Mixture * | Clone () const |
Clone function. | |
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:. | |
T | ExpectedValueGet () const |
Get the expected value E[x] of the pdf. | |
MatrixWrapper::SymmetricMatrix | CovarianceGet () const |
Get the Covariance Matrix E[(x - E[x])^2] of the Analytic pdf. | |
vector< Probability > | WeightsGet () const |
Get all component weights. | |
Probability | WeightGet (unsigned int componentNumber) const |
Get the component weight of component "componentNumber". | |
bool | WeightsSet (vector< Probability > &weights) |
Set all component weights. | |
bool | WeightSet (unsigned int componentNumber, Probability w) |
Function to change/set the weigth of a single component. | |
int | MostProbableComponentGet () const |
Get the index of the most probable component, if a few component are. | |
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. | |
bool | DeleteComponent (unsigned int componentNumber) |
Delete a component pdf: THIS IS A NON_REALTIME OPERATION. | |
vector< Pdf< T > * > | ComponentsGet () const |
Get the vector of pointers to the component pdfs. | |
Pdf< T > * | ComponentGet (unsigned int componentNumber) const |
Get the pointer to the component pdf of component "componentNumber". | |
unsigned int | DimensionGet () const |
Get the dimension of the argument. | |
virtual void | DimensionSet (unsigned int dim) |
Set the dimension of the argument. | |
Protected Member Functions | |
bool | NormalizeWeights () |
Normalize the component weigths (eg. after setting a component weight). | |
bool | CumWeightsUpdate () |
Updates the cumWeights. | |
void | TestNotInit () const |
Called when a the number of components=0 and if method is called which. | |
Protected Attributes | |
unsigned int | _numComponents |
The number of components. | |
vector< Probability > * | _componentWeights |
Pointer to the vector of mixture weights, the sum of the elements = 1. | |
vector< Pdf< T > * > * | _componentPdfs |
Pointer to the vector of component pdfs. | |
vector< double > | _cumWeights |
Vector containing the cumulative component weights (for efficient sampling). |
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 47 of file mixture.h.
Mixture | ( | unsigned int | dimension = 0 |
) | [inline] |
Constructor: An equal weight is set for all components.
dimension | the dimension of the state space |
Definition at line 181 of file mixture.h.
References Mixture::_componentPdfs, Mixture::_componentWeights, and Mixture::NumComponentsGet().
Referenced by Mixture::Clone().
Mixture | ( | U & | componentVector | ) | [inline] |
Constructor: An equal weights is set for all components.
componentVector | vector of components (Pdf<T>*) |
Definition at line 198 of file mixture.h.
References Mixture::_componentPdfs, Mixture::_componentWeights, Mixture::_cumWeights, Mixture::Clone(), Mixture::CumWeightsUpdate(), and Mixture::NumComponentsGet().
bool SampleFrom | ( | vector< Sample< T > > & | list_samples, | |
const unsigned int | num_samples, | |||
int | method = DEFAULT , |
|||
void * | args = NULL | |||
) | const [inline, virtual] |
Draw multiple samples from the Pdf (overloaded).
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... |
Reimplemented from Pdf.
Definition at line 291 of file mixture.h.
References Mixture::_cumWeights, Mixture::NumComponentsGet(), and Mixture::TestNotInit().
bool SampleFrom | ( | Sample< T > & | one_sample, | |
int | method = DEFAULT , |
|||
void * | args = NULL | |||
) | const [inline, virtual] |
Draw 1 sample from the Pdf:.
There's no need to create a list for only 1 sample!
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 |
Reimplemented from Pdf.
Definition at line 344 of file mixture.h.
References Mixture::_cumWeights, Mixture::NumComponentsGet(), and Mixture::TestNotInit().
T ExpectedValueGet | ( | ) | const [inline, virtual] |
Get the expected value E[x] of the pdf.
Get low order statistic (Expected Value) of this AnalyticPdf
For certain discrete Pdfs, this function has no meaning, what is the average between yes and no?
Reimplemented from Pdf.
MatrixWrapper::SymmetricMatrix CovarianceGet | ( | ) | const [inline, virtual] |
Get the Covariance Matrix E[(x - E[x])^2] of the Analytic pdf.
Get first order statistic (Covariance) of this AnalyticPdf
Reimplemented from Pdf.
Definition at line 383 of file mixture.h.
References Mixture::TestNotInit().
Probability WeightGet | ( | unsigned int | componentNumber | ) | const [inline] |
Get the component weight of component "componentNumber".
componentNumber | number of the component (must be >=0 and <_numComponents) |
Definition at line 402 of file mixture.h.
References Mixture::_componentWeights, Mixture::NumComponentsGet(), and Mixture::TestNotInit().
Referenced by Mixture::WeightSet().
bool WeightsSet | ( | vector< Probability > & | weights | ) | [inline] |
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 410 of file mixture.h.
References Mixture::_componentWeights, Mixture::CumWeightsUpdate(), Mixture::NormalizeWeights(), Mixture::NumComponentsGet(), and Mixture::TestNotInit().
bool WeightSet | ( | unsigned int | componentNumber, | |
Probability | w | |||
) | [inline] |
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
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 420 of file mixture.h.
References Mixture::CumWeightsUpdate(), Mixture::NumComponentsGet(), Mixture::TestNotInit(), and Mixture::WeightGet().
Referenced by Mixture::AddComponent().
bool AddComponent | ( | Pdf< T > & | ) | [inline] |
Add a component pdf: THIS IS A NON-REALTIME OPERATION.
Component pdf which will be added |
Definition at line 472 of file mixture.h.
References Mixture::_cumWeights, Mixture::_numComponents, Pdf::Clone(), Mixture::CumWeightsUpdate(), Mixture::NormalizeWeights(), and Mixture::NumComponentsGet().
Referenced by Mixture::AddComponent().
bool AddComponent | ( | Pdf< T > & | pdf, | |
Probability | w | |||
) | [inline] |
Add a component pdf with weight w: THIS IS A NON-REALTIME OPERATION.
Component pdf which will be added | ||
weight | the weight of the new component |
Definition at line 492 of file mixture.h.
References Mixture::_cumWeights, Mixture::_numComponents, Mixture::AddComponent(), Pdf::Clone(), Mixture::CumWeightsUpdate(), Mixture::NormalizeWeights(), Mixture::NumComponentsGet(), and Mixture::WeightSet().
bool DeleteComponent | ( | unsigned int | componentNumber | ) | [inline] |
Delete a component pdf: THIS IS A NON_REALTIME OPERATION.
componentNumber | number of the component which will be deleted (must be >=0 and <_numComponents) |
Definition at line 512 of file mixture.h.
References Mixture::_cumWeights, Mixture::_numComponents, Mixture::CumWeightsUpdate(), Mixture::NormalizeWeights(), Mixture::NumComponentsGet(), and Mixture::TestNotInit().
Pdf< T > * ComponentGet | ( | unsigned int | componentNumber | ) | const [inline] |
Get the pointer to the component pdf of component "componentNumber".
componentNumber | number of the component (must be >=0 and <_numComponents) |
Definition at line 545 of file mixture.h.
References Mixture::_componentPdfs, and Mixture::TestNotInit().
Referenced by Mixture::Mixture().
unsigned int DimensionGet | ( | ) | const [inline, inherited] |
void DimensionSet | ( | unsigned int | dim | ) | [inline, virtual, inherited] |