Class representing all FULLY Discrete Conditional PDF's.
More...
#include <discreteconditionalpdf.h>
|
| DiscreteConditionalPdf (int num_states=1, int num_conditional_arguments=1, int cond_arg_dimensions[]=NULL) |
| Constructor. More...
|
|
| DiscreteConditionalPdf (const DiscreteConditionalPdf &pdf) |
| Copy constructor.
|
|
virtual | ~DiscreteConditionalPdf () |
| Destructor.
|
|
virtual DiscreteConditionalPdf * | Clone () const |
| Clone function.
|
|
unsigned int | NumStatesGet () const |
| Get the number of discrete states.
|
|
Probability | ProbabilityGet (const int &input) const |
| Get the probability of a certain argument. More...
|
|
virtual bool | SampleFrom (Sample< int > &one_sample, const SampleMthd method, void *args) const |
| Draw 1 sample from the Pdf: More...
|
|
virtual bool | SampleFrom (vector< Sample< int > > &list_samples, unsigned int num_samples, const SampleMthd method, void *args) const |
| Draw multiple samples from the Pdf (overloaded) More...
|
|
void | ProbabilitySet (const double &prob, const int &input, const std::vector< int > &condargs) const |
| Set the probability (Typical for discrete Pdf's)
|
|
virtual ConditionalPdf< int, int > * | 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< int > & | ConditionalArgumentsGet () const |
| Get the whole list of conditional arguments. More...
|
|
virtual void | ConditionalArgumentsSet (std::vector< int > ConditionalArguments) |
| Set the whole list of conditional arguments. More...
|
|
const int & | ConditionalArgumentGet (unsigned int n_argument) const |
| Get the n-th argument of the list. More...
|
|
virtual void | ConditionalArgumentSet (unsigned int n_argument, const int &argument) |
| Set the n-th argument of the list. 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 int | 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...
|
|
|
int | IndexGet (const int &input, const std::vector< int > &condargs) const |
| Get the correct index in the row of doubles (double * probability)
|
|
|
unsigned int | _num_states |
| number of discrete states
|
|
double * | _probability_p |
| Pointer to the probability values. More...
|
|
int * | _cond_arg_dims_p |
| "Possible discrete states" of all the conditional arguments
|
|
int | _total_dimension |
| Total dimension of the likelihoodtable.
|
|
std::vector< double > | _probs |
|
std::vector< double > | _valuelist |
|
Class representing all FULLY Discrete Conditional PDF's.
This class inherits only from ConditionalPdf (not from DiscretePdf, avoiding a circular class structure
------
| |
------
/ \
----- -----
| | | |
----- -----
\ /
------
| |
------
- Todo:
- Check if this is the best way to implement this.
- Note
- that the name of this class could be better chosen. Something like Discrete-DiscreteConditionalPdf would maybe be more clear (???), but quite long...
- See also
- ConditionalPdf
Definition at line 53 of file discreteconditionalpdf.h.
◆ DiscreteConditionalPdf()
DiscreteConditionalPdf |
( |
int |
num_states = 1 , |
|
|
int |
num_conditional_arguments = 1 , |
|
|
int |
cond_arg_dimensions[] = NULL |
|
) |
| |
Constructor.
- Precondition
- The number of elements of cond_arg_dimensions should be equal to num_conditional_arguments, otherwise -> Segfaults
- Parameters
-
num_states | int representing the number of possible states |
num_conditional_arguments | the number of arguments behind the | |
cond_arg_dimensions[] | possible number of states of the different conditional arguments |
- See also
- ConditionalPdf
- Todo:
- Get cleaner api and implementation
◆ ConditionalArgumentGet()
const int & ConditionalArgumentGet |
( |
unsigned int |
n_argument | ) |
const |
|
inherited |
Get the n-th argument of the list.
- Returns
- The current value of the n-th conditional argument (starting from 0!)
Definition at line 191 of file conditionalpdf.h.
◆ ConditionalArgumentSet()
void ConditionalArgumentSet |
( |
unsigned int |
n_argument, |
|
|
const int & |
argument |
|
) |
| |
|
virtualinherited |
Set the n-th argument of the list.
- Parameters
-
n_argument | which one of the conditional arguments |
argument | value of the n-th argument |
Definition at line 199 of file conditionalpdf.h.
◆ ConditionalArgumentsGet()
const std::vector< int > & ConditionalArgumentsGet |
|
inherited |
Get the whole list of conditional arguments.
- Returns
- an STL-vector containing all the current values of the conditional arguments
Definition at line 178 of file conditionalpdf.h.
◆ ConditionalArgumentsSet()
void ConditionalArgumentsSet |
( |
std::vector< int > |
ConditionalArguments | ) |
|
|
virtualinherited |
Set the whole list of conditional arguments.
- Parameters
-
ConditionalArguments | an STL-vector of type T containing the condtional arguments |
Definition at line 184 of file conditionalpdf.h.
◆ CovarianceGet()
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!
Definition at line 248 of file pdf.h.
◆ DimensionGet()
unsigned int DimensionGet |
|
inlineinherited |
Get the dimension of the argument.
- Returns
- the dimension of the argument
Definition at line 192 of file pdf.h.
◆ DimensionSet()
void DimensionSet |
( |
unsigned int |
dim | ) |
|
|
virtualinherited |
Set the dimension of the argument.
- Parameters
-
Definition at line 198 of file pdf.h.
◆ ExpectedValueGet()
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?
Definition at line 238 of file pdf.h.
◆ NumConditionalArgumentsGet()
unsigned int NumConditionalArgumentsGet |
|
inlineinherited |
Get the Number of conditional arguments.
- Returns
- the number of conditional arguments
Definition at line 161 of file conditionalpdf.h.
◆ NumConditionalArgumentsSet()
void NumConditionalArgumentsSet |
( |
unsigned int |
numconditionalarguments | ) |
|
|
inlinevirtualinherited |
Set the Number of conditional arguments.
- Parameters
-
numconditionalarguments | the number of conditionalarguments |
- Bug:
- will probably give rise to memory allocation problems if you herit from this class and do not redefine this method.
Definition at line 167 of file conditionalpdf.h.
◆ ProbabilityGet()
Get the probability of a certain argument.
- Parameters
-
input | T argument of the Pdf |
- Returns
- the probability value of the argument
Reimplemented from Pdf< int >.
◆ SampleFrom() [1/2]
virtual bool SampleFrom |
( |
Sample< int > & |
one_sample, |
|
|
const SampleMthd |
method, |
|
|
void * |
args |
|
) |
| 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 an enum, eg. SampleMthd::BOXMULLER |
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 Pdf< int >.
◆ SampleFrom() [2/2]
virtual bool SampleFrom |
( |
vector< Sample< int > > & |
list_samples, |
|
|
unsigned int |
num_samples, |
|
|
const SampleMthd |
method, |
|
|
void * |
args |
|
) |
| 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 an enum eg. SampleMthd::BOXMULLER |
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 Pdf< int >.
◆ _probability_p
Pointer to the probability values.
For now we implement this using a simple row of doubles, this should probably become a tensor in the future
Definition at line 63 of file discreteconditionalpdf.h.
The documentation for this class was generated from the following file: