/** 
* @file PDFDirichlet.h
* @brief dirichlet distribution
* @author Erik Rodner
* @date 01/29/2008

*/
#ifndef PDFDirichletINCLUDE
#define PDFDirichletINCLUDE

#include "core/image/ImageT.h"
#include "core/vector/VectorT.h"
#include "core/vector/MatrixT.h"

#include "PDF.h"


namespace OBJREC {

/** dirichlet distribution */
class PDFDirichlet : public PDF
{

    protected:
	// refactor-nice.pl: check this substitution
	// old: Vector alpha;
	NICE::Vector alpha;
	int dimension;

    public:
  
	/** simple constructor */
	PDFDirichlet( double alpha, int dimension );
	// refactor-nice.pl: check this substitution
	// old: PDFDirichlet( const Vector & alpha );
	PDFDirichlet( const NICE::Vector & alpha );

	/** simple destructor */
	virtual ~PDFDirichlet();

	// 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;


     
};


} // namespace

#endif
