/** * @file PDFMultinomial.h * @brief Multinomial distribution * @author Erik Rodner * @date 01/29/2008 */ #ifndef PDFMultinomialINCLUDE #define PDFMultinomialINCLUDE #include "core/image/ImageT.h" #include "core/vector/VectorT.h" #include "core/vector/MatrixT.h" #include "PDF.h" namespace OBJREC { /** Multinomial distribution */ class PDFMultinomial : public PDF { protected: /** dimension of this random variable */ int dimension; /** parameter of the multinomial containing all probabilities for each component */ // refactor-nice.pl: check this substitution // old: Vector theta; NICE::Vector theta; /** number of trails */ int N; public: /** simple constructor */ PDFMultinomial( int dimension ); // refactor-nice.pl: check this substitution // old: PDFMultinomial( const Vector & theta, int N ); PDFMultinomial( const NICE::Vector & theta, int N ); /** simple destructor */ virtual ~PDFMultinomial(); // refactor-nice.pl: check this substitution // old: double getNLogDensity ( const Vector & x ) const; double getNLogDensity ( const NICE::Vector & x ) const; // refactor-nice.pl: check this substitution // old: double getProb ( const Vector & x ) const; double getProb ( const NICE::Vector & x ) const; int getDimension () const; void sample ( NICE::VVector & samples, int count ) const; int sample () const; double getDiscreteProbability ( int index ) const; }; } // namespace #endif