Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes
BFL::MCPdf< T > Class Template Reference

Monte Carlo Pdf: Sample based implementation of Pdf. More...

#include <mcpdf.h>

Inheritance diagram for BFL::MCPdf< T >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual MCPdf< T > * Clone () const
 Clone function.
template<>
SymmetricMatrix CovarianceGet () const
 Get the Covariance Matrix E[(x - E[x])^2] of the Analytic pdf.
MatrixWrapper::SymmetricMatrix CovarianceGet () const
 Get the Covariance Matrix E[(x - E[x])^2] of the Analytic pdf.
template<>
SymmetricMatrix CovarianceGet () const
 Get the Covariance Matrix E[(x - E[x])^2] of the Analytic pdf.
vector< double > & CumulativePDFGet ()
 Add a sample to the list.
template<>
ColumnVector ExpectedValueGet () const
 Get the expected value E[x] of the pdf.
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.
const vector< WeightedSample
< T > > & 
ListOfSamplesGet () const
 Get the list of weighted samples.
bool ListOfSamplesSet (const vector< WeightedSample< T > > &list_of_samples)
 Set the list of weighted samples.
bool ListOfSamplesSet (const vector< Sample< T > > &list_of_samples)
 Overloading: Set the list of Samples (uniform weights)
bool ListOfSamplesUpdate (const vector< WeightedSample< T > > &list_of_samples)
 Update the list of samples (overloaded)
bool ListOfSamplesUpdate (const vector< Sample< T > > &list_of_samples)
 Update the list of samples (overloaded)
template<>
 MCPdf (unsigned int num_samples, unsigned int dimension)
template<>
 MCPdf (const MCPdf &pdf)
 MCPdf (unsigned int num_samples=0, unsigned int dimension=0)
 Constructor.
 MCPdf (const MCPdf< T > &)
 copy constructor
unsigned int NumSamplesGet () const
 Get number of samples.
void NumSamplesSet (unsigned int num_samples)
 Set number of samples.
bool SampleFrom (Sample< T > &one_sample, int method=DEFAULT, void *args=NULL) const
bool SampleFrom (vector< Sample< T > > &list_samples, const unsigned int num_samples, int method=DEFAULT, void *args=NULL) const
const WeightedSample< T > & SampleGet (unsigned int i) const
 Get one sample.
virtual ~MCPdf ()
 destructor

Protected Member Functions

void CumPDFUpdate ()
 After updating weights, we have to update the cumPDF.
bool NormalizeWeights ()
 Normalizing the weights.
bool SumWeightsUpdate ()
 STL-iterator for cumulative PDF list.

Protected Attributes

vector< double > _CumPDF
 STL-iterator.
vector< WeightedSample< T > > _listOfSamples
 STL-list containing the list of samples.
double _SumWeights
 Sum of all weights: used for normalising purposes.

Private Attributes

SymmetricMatrix _covariance
_CumSum
_diff
Matrix _diffsum
vector< WeightedSample< T >
>::iterator 
_it_los
vector< WeightedSample< T > > _los
_mean

Detailed Description

template<typename T>
class BFL::MCPdf< T >

Monte Carlo Pdf: Sample based implementation of Pdf.

Class Monte Carlo Pdf: This is a sample based representation of a Pdf P(x), which can both be continu or discrete

Todo:
This class can and should be made far more efficient!!!

Definition at line 49 of file mcpdf.h.


Constructor & Destructor Documentation

template<typename T>
BFL::MCPdf< T >::MCPdf ( unsigned int  num_samples = 0,
unsigned int  dimension = 0 
)

Constructor.

Parameters:
num_samplesthe number of samples this pdf has
dimensionthe dimension of these samples. You can use this parameter to avoid runtime memory allocation and
template<typename T>
virtual BFL::MCPdf< T >::~MCPdf ( ) [virtual]

destructor

template<typename T>
BFL::MCPdf< T >::MCPdf ( const MCPdf< T > &  )

copy constructor

template<>
BFL::MCPdf< ColumnVector >::MCPdf ( unsigned int  num_samples,
unsigned int  dimension 
) [inline]

Definition at line 31 of file mcpdf.cpp.

template<>
BFL::MCPdf< ColumnVector >::MCPdf ( const MCPdf< T > &  pdf) [inline]

Definition at line 57 of file mcpdf.cpp.


Member Function Documentation

template<typename T>
virtual MCPdf<T>* BFL::MCPdf< T >::Clone ( ) const [virtual]

Clone function.

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

template<>
SymmetricMatrix BFL::MCPdf< ColumnVector >::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

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 88 of file mcpdf.cpp.

template<typename T>
MatrixWrapper::SymmetricMatrix BFL::MCPdf< 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 >.

template<>
SymmetricMatrix BFL::MCPdf< unsigned int >::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

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 130 of file mcpdf.cpp.

template<typename T>
void BFL::MCPdf< T >::CumPDFUpdate ( ) [protected]

After updating weights, we have to update the cumPDF.

template<typename T>
vector<double>& BFL::MCPdf< T >::CumulativePDFGet ( )

Add a sample to the list.

Parameters:
samplethe sample to be added
Todo:
what's the best way to remove some samples?

Get the Cumulative Pdf

Returns:
a vector of doubles representing the CumulativePDF
template<>
ColumnVector BFL::MCPdf< 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 77 of file mcpdf.cpp.

template<typename T>
T BFL::MCPdf< 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:
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 >.

template<>
unsigned int BFL::MCPdf< 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 111 of file mcpdf.cpp.

template<typename T>
const vector<WeightedSample<T> >& BFL::MCPdf< T >::ListOfSamplesGet ( ) const

Get the list of weighted samples.

Returns:
an STL-list with the list of weighted samples
template<typename T>
bool BFL::MCPdf< T >::ListOfSamplesSet ( const vector< WeightedSample< T > > &  list_of_samples)

Set the list of weighted samples.

Parameters:
list_of_samplesan STL-list containing the list of all weighted samples
template<typename T>
bool BFL::MCPdf< T >::ListOfSamplesSet ( const vector< Sample< T > > &  list_of_samples)

Overloading: Set the list of Samples (uniform weights)

Parameters:
list_of_samplesan STL-list containing the list of all samples
template<typename T>
bool BFL::MCPdf< T >::ListOfSamplesUpdate ( const vector< WeightedSample< T > > &  list_of_samples)

Update the list of samples (overloaded)

Parameters:
list_of_samplesthe list of weighted samples
Precondition:
list_of_samples must contain exactly as many elements as this->NumSamplesGet() returns
template<typename T>
bool BFL::MCPdf< T >::ListOfSamplesUpdate ( const vector< Sample< T > > &  list_of_samples)

Update the list of samples (overloaded)

Parameters:
list_of_samplesthe list of samples
Precondition:
list_of_samples must contain exactly as many elements as this->NumSamplesGet() returns
template<typename T>
bool BFL::MCPdf< T >::NormalizeWeights ( ) [protected]

Normalizing the weights.

template<typename T>
unsigned int BFL::MCPdf< T >::NumSamplesGet ( ) const

Get number of samples.

Returns:
the number of samples
template<typename T>
void BFL::MCPdf< T >::NumSamplesSet ( unsigned int  num_samples)

Set number of samples.

Parameters:
num_samplesthe number of samples offcourse :-)
See also:
sample, weightedsample
template<typename T>
bool BFL::MCPdf< T >::SampleFrom ( Sample< T > &  one_sample,
int  method = DEFAULT,
void *  args = NULL 
) const
template<typename T>
bool BFL::MCPdf< T >::SampleFrom ( vector< Sample< T > > &  list_samples,
const unsigned int  num_samples,
int  method = DEFAULT,
void *  args = NULL 
) const
template<typename T>
const WeightedSample<T>& BFL::MCPdf< T >::SampleGet ( unsigned int  i) const

Get one sample.

Returns:
sample
Parameters:
ithe ith sample
template<typename T>
bool BFL::MCPdf< T >::SumWeightsUpdate ( ) [protected]

STL-iterator for cumulative PDF list.

After updating weights, we have to recalculate the sum of weights


Member Data Documentation

template<typename T>
SymmetricMatrix BFL::MCPdf< T >::_covariance [mutable, private]

Definition at line 79 of file mcpdf.h.

template<typename T>
vector<double> BFL::MCPdf< T >::_CumPDF [protected]

STL-iterator.

STL-list containing the Cumulative PDF (for efficient sampling)

Definition at line 60 of file mcpdf.h.

template<typename T>
T BFL::MCPdf< T >::_CumSum [mutable, private]

Definition at line 75 of file mcpdf.h.

template<typename T>
T BFL::MCPdf< T >::_diff [mutable, private]

Definition at line 78 of file mcpdf.h.

template<typename T>
Matrix BFL::MCPdf< T >::_diffsum [mutable, private]

Definition at line 80 of file mcpdf.h.

template<typename T>
vector<WeightedSample<T> >::iterator BFL::MCPdf< T >::_it_los [mutable, private]

Definition at line 81 of file mcpdf.h.

template<typename T>
vector<WeightedSample<T> > BFL::MCPdf< T >::_listOfSamples [protected]

STL-list containing the list of samples.

Definition at line 56 of file mcpdf.h.

template<typename T>
vector<WeightedSample<T> > BFL::MCPdf< T >::_los [mutable, private]

Definition at line 76 of file mcpdf.h.

template<typename T>
T BFL::MCPdf< T >::_mean [mutable, private]

Definition at line 77 of file mcpdf.h.

template<typename T>
double BFL::MCPdf< T >::_SumWeights [protected]

Sum of all weights: used for normalising purposes.

Definition at line 54 of file mcpdf.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 Fri Aug 28 2015 10:10:22