Class representing a PDF on a discrete variable. More...
#include <discretepdf.h>
Public Member Functions | |
virtual DiscretePdf * | Clone () const |
Clone function. | |
DiscretePdf (unsigned int num_states=0) | |
Constructor (dimension = number of classes) An equal probability is set for all classes. | |
DiscretePdf (const DiscretePdf &) | |
Copy Constructor. | |
int | MostProbableStateGet () |
Get the index of the most probable state. | |
unsigned int | NumStatesGet () const |
Get the number of discrete States. | |
vector< Probability > | ProbabilitiesGet () const |
Get all probabilities. | |
bool | ProbabilitiesSet (vector< Probability > &values) |
Set all probabilities. | |
Probability | ProbabilityGet (const int &state) const |
Implementation of virtual base class method. | |
bool | ProbabilitySet (int state, Probability a) |
Function to change/set the probability of a single state. | |
bool | SampleFrom (vector< Sample< int > > &list_samples, const unsigned int num_samples, int method=DEFAULT, void *args=NULL) const |
bool | SampleFrom (Sample< int > &one_sample, int method=DEFAULT, void *args=NULL) const |
Draw 1 sample from the Pdf: | |
virtual | ~DiscretePdf () |
Destructor. | |
Protected Member Functions | |
bool | CumPDFUpdate () |
Updates the cumPDF. | |
bool | NormalizeProbs () |
Normalize all the probabilities (eg. after setting a probability) | |
Protected Attributes | |
vector< double > | _CumPDF |
STL-vector containing the Cumulative PDF (for efficient sampling) | |
unsigned int | _num_states |
The number of discrete state. | |
vector< Probability > * | _Values_p |
Pointer to the discrete PDF-values, the sum of the elements = 1. |
Class representing a PDF on a discrete variable.
This class is an instantation from the template class Pdf, with added methods to get a set the probability of a certain discrete value (methods only relevant for discrete pdfs)
Definition at line 34 of file discretepdf.h.
BFL::DiscretePdf::DiscretePdf | ( | unsigned int | num_states = 0 | ) |
Constructor (dimension = number of classes) An equal probability is set for all classes.
num_states | number of different classes or states |
BFL::DiscretePdf::DiscretePdf | ( | const DiscretePdf & | ) |
Copy Constructor.
virtual BFL::DiscretePdf::~DiscretePdf | ( | ) | [virtual] |
Destructor.
virtual DiscretePdf* BFL::DiscretePdf::Clone | ( | ) | const [virtual] |
Clone function.
Implements BFL::BFL::Pdf< int >.
bool BFL::DiscretePdf::CumPDFUpdate | ( | ) | [protected] |
Updates the cumPDF.
Get the index of the most probable state.
bool BFL::DiscretePdf::NormalizeProbs | ( | ) | [protected] |
Normalize all the probabilities (eg. after setting a probability)
unsigned int BFL::DiscretePdf::NumStatesGet | ( | ) | const |
Get the number of discrete States.
vector<Probability> BFL::DiscretePdf::ProbabilitiesGet | ( | ) | const |
Get all probabilities.
bool BFL::DiscretePdf::ProbabilitiesSet | ( | vector< Probability > & | values | ) |
Set all probabilities.
values | vector<Probability> containing the new probability values. The sum of the probabilities of this list is not required to be one since the normalization is automatically carried out. |
Probability BFL::DiscretePdf::ProbabilityGet | ( | const int & | state | ) | const [virtual] |
Implementation of virtual base class method.
Reimplemented from BFL::BFL::Pdf< int >.
bool BFL::DiscretePdf::ProbabilitySet | ( | int | state, |
Probability | a | ||
) |
Function to change/set the probability of a single state.
Changes the probabilities such that AFTER normalization the probability of the state "state" is equal to the probability a
state | number of state of which the probability will be set |
a | probability value to which the probability of state "state" will be set (must be <= 1) |
bool BFL::DiscretePdf::SampleFrom | ( | vector< Sample< int > > & | list_samples, |
const unsigned int | num_samples, | ||
int | method = DEFAULT , |
||
void * | args = NULL |
||
) | const |
bool BFL::DiscretePdf::SampleFrom | ( | Sample< int > & | 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!
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 BFL::BFL::Pdf< int >.
vector<double> BFL::DiscretePdf::_CumPDF [protected] |
STL-vector containing the Cumulative PDF (for efficient sampling)
Definition at line 47 of file discretepdf.h.
unsigned int BFL::DiscretePdf::_num_states [protected] |
The number of discrete state.
Definition at line 38 of file discretepdf.h.
vector<Probability>* BFL::DiscretePdf::_Values_p [protected] |
Pointer to the discrete PDF-values, the sum of the elements = 1.
Definition at line 41 of file discretepdf.h.