DiscreteConditionalPdf Class Reference

Abstract Class representing all _FULLY_ Discrete Conditional PDF's. More...

#include <discreteconditionalpdf.h>

Inheritance diagram for DiscreteConditionalPdf:

ConditionalPdf< int, int > Pdf< int >

List of all members.

Public Member Functions

 DiscreteConditionalPdf (int num_states=1, int num_conditional_arguments=1, int cond_arg_dimensions[]=NULL)
 Constructor.
 DiscreteConditionalPdf (const DiscreteConditionalPdf &pdf)
 Copy constructor.
virtual ~DiscreteConditionalPdf ()
 Destructor.
virtual DiscreteConditionalPdfClone () 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.
virtual bool SampleFrom (Sample< int > &one_sample, int method, void *args) const
 Draw 1 sample from the Pdf:.
virtual bool SampleFrom (vector< Sample< int > > &list_samples, int num_samples, int method, void *args) const
void ProbabilitySet (const double &prob, const int &input, const std::vector< int > &condargs) const
 Set the probability (Typical for discrete Pdf's).
unsigned int NumConditionalArgumentsGet () const
 Get the Number of conditional arguments.
virtual void NumConditionalArgumentsSet (unsigned int numconditionalarguments)
 Set the Number of conditional arguments.
const std::vector< int > & ConditionalArgumentsGet () const
 Get the whole list of conditional arguments.
void ConditionalArgumentsSet (std::vector< int > ConditionalArguments)
 Set the whole list of conditional arguments.
const int & ConditionalArgumentGet (unsigned int n_argument) const
 Get the n-th argument of the list.
void ConditionalArgumentSet (unsigned int n_argument, const int &argument)
 Set the n-th argument of the list.
virtual bool SampleFrom (vector< Sample< int > > &list_samples, const unsigned int num_samples, int method=DEFAULT, void *args=NULL) const
 Draw multiple samples from the Pdf (overloaded).
unsigned int DimensionGet () const
 Get the dimension of the argument.
virtual void DimensionSet (unsigned int dim)
 Set the dimension of the argument.
virtual int ExpectedValueGet () const
 Get the expected value E[x] of the pdf.
virtual
MatrixWrapper::SymmetricMatrix 
CovarianceGet () const
 Get the Covariance Matrix E[(x - E[x])^2] of the Analytic pdf.

Protected Member Functions

int IndexGet (const int &input, const std::vector< int > &condargs) const
 Get the correct index in the row of doubles (double * probability).

Protected Attributes

unsigned int _num_states
 number of discrete states
double * _probability_p
 Pointer to the probability values.
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


Detailed Description

Abstract 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.


Constructor & Destructor Documentation

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


Member Function Documentation

Probability ProbabilityGet ( const int &  input  )  const [virtual]

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 >.

virtual bool SampleFrom ( Sample< int > &  one_sample,
int  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 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 Pdf< int >.

unsigned int NumConditionalArgumentsGet (  )  const [inherited]

Get the Number of conditional arguments.

Returns:
the number of conditional arguments

virtual void NumConditionalArgumentsSet ( unsigned int  numconditionalarguments  )  [virtual, inherited]

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.

const std::vector<int >& ConditionalArgumentsGet (  )  const [inherited]

Get the whole list of conditional arguments.

Returns:
an STL-vector containing all the current values of the conditional arguments

void ConditionalArgumentsSet ( std::vector< int >  ConditionalArguments  )  [inherited]

Set the whole list of conditional arguments.

Parameters:
ConditionalArguments an STL-vector of type
T
containing the condtional arguments

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!)

void ConditionalArgumentSet ( unsigned int  n_argument,
const int &  argument 
) [inherited]

Set the n-th argument of the list.

Parameters:
n_argument which one of the conditional arguments
argument value of the n-th argument

virtual bool SampleFrom ( vector< Sample< int > > &  list_samples,
const unsigned int  num_samples,
int  method = DEFAULT,
void *  args = NULL 
) const [virtual, inherited]

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 in DiscretePdf.

unsigned int DimensionGet (  )  const [inherited]

Get the dimension of the argument.

Returns:
the dimension of the argument

virtual void DimensionSet ( unsigned int  dim  )  [virtual, inherited]

Set the dimension of the argument.

Parameters:
dim the dimension

virtual int ExpectedValueGet (  )  const [virtual, inherited]

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?

virtual MatrixWrapper::SymmetricMatrix CovarianceGet (  )  const [virtual, inherited]

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!


Member Data Documentation

double* _probability_p [protected]

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:

Generated on Mon Mar 30 05:43:59 2009 for Bayesian Filtering Library by  doxygen 1.5.5