20 #ifndef __DISCRETE_CONDITIONAL_PDF__
21 #define __DISCRETE_CONDITIONAL_PDF__
23 #include "conditionalpdf.h"
71 int IndexGet(
const int& input,
const std::vector<int>& condargs)
const;
75 mutable std::vector<double> _probs;
76 mutable std::vector<double> _valuelist;
91 int num_conditional_arguments=1,
92 int cond_arg_dimensions[] = NULL);
105 Probability ProbabilityGet(
const int& input)
const;
106 virtual bool SampleFrom (
Sample<int>& one_sample,
const SampleMthd method,
void * args)
const;
107 virtual bool SampleFrom (vector<
Sample<int> >& list_samples,
unsigned int num_samples,
const SampleMthd method,
void * args)
const;
110 void ProbabilitySet(
const double& prob,
const int& input,
const std::vector<int>& condargs)
const;
Abstract Class representing conditional Pdfs P(x | ...)
Class representing all FULLY Discrete Conditional PDF's.
unsigned int _num_states
number of discrete states
int IndexGet(const int &input, const std::vector< int > &condargs) const
Get the correct index in the row of doubles (double * probability)
DiscreteConditionalPdf(const DiscreteConditionalPdf &pdf)
Copy constructor.
void ProbabilitySet(const double &prob, const int &input, const std::vector< int > &condargs) const
Set the probability (Typical for discrete Pdf's)
unsigned int NumStatesGet() const
Get the number of discrete states.
virtual ~DiscreteConditionalPdf()
Destructor.
DiscreteConditionalPdf(int num_states=1, int num_conditional_arguments=1, int cond_arg_dimensions[]=NULL)
Constructor.
int _total_dimension
Total dimension of the likelihoodtable.
double * _probability_p
Pointer to the probability values.
int * _cond_arg_dims_p
"Possible discrete states" of all the conditional arguments
virtual DiscreteConditionalPdf * Clone() const
Clone function.
Class representing a probability (a double between 0 and 1)