/** * @file PDF.h * @brief Interface for arbitrary multivariate density functions * @author Erik Rodner * @date 01/29/2008 */ #ifndef PDFINCLUDE #define PDFINCLUDE #include "core/vector/VectorT.h" #include "core/vector/MatrixT.h" #define ROADWORKS { fprintf(stderr, "not yet implemented !\n"); exit(-1); } #include "core/vector/VVector.h" namespace OBJREC { /** Interface for arbitrary multivariate density functions */ class PDF { protected: public: /** simple constructor */ PDF(); /** simple destructor */ virtual ~PDF(); virtual double getNLogDensity ( const NICE::Vector & x ) const = 0; virtual double getProb ( const NICE::Vector & x ) const; virtual int getDimension () const = 0; virtual void sample ( NICE::VVector & x, int count ) const { ROADWORKS }; }; #undef ROADWORKS } // namespace #endif