23#include "../wrappers/matrix/vector_wrapper.h"
24#include "../wrappers/matrix/matrix_wrapper.h"
34 class DiscretePdf :
public Pdf<int>
38 unsigned int _num_states;
41 vector<Probability> *_Values_p;
44 bool NormalizeProbs();
47 vector<double> _CumPDF;
56 DiscretePdf(
unsigned int num_states=0);
59 DiscretePdf(
const DiscretePdf &);
62 virtual ~DiscretePdf();
65 virtual DiscretePdf* Clone()
const;
68 unsigned int NumStatesGet()
const;
71 Probability ProbabilityGet(
const int& state)
const;
80 bool ProbabilitySet(
int state, Probability a);
82 bool SampleFrom (vector<Sample<int> >& list_samples,
83 const unsigned int num_samples,
84 const SampleMthd method = SampleMthd::DEFAULT,
85 void * args = NULL)
const;
86 bool SampleFrom (Sample<int>& one_sample,
const SampleMthd method = SampleMthd::DEFAULT,
void * args = NULL)
const;
89 vector<Probability> ProbabilitiesGet()
const;
96 bool ProbabilitiesSet(vector<Probability> & values);
99 int MostProbableStateGet();