PDF.h 843 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /**
  2. * @file PDF.h
  3. * @brief Interface for arbitrary multivariate density functions
  4. * @author Erik Rodner
  5. * @date 01/29/2008
  6. */
  7. #ifndef PDFINCLUDE
  8. #define PDFINCLUDE
  9. #include "core/vector/VectorT.h"
  10. #include "core/vector/MatrixT.h"
  11. #define ROADWORKS { fprintf(stderr, "not yet implemented !\n"); exit(-1); }
  12. #include "core/vector/VVector.h"
  13. namespace OBJREC {
  14. /** Interface for arbitrary multivariate density functions */
  15. class PDF
  16. {
  17. protected:
  18. public:
  19. /** simple constructor */
  20. PDF();
  21. /** simple destructor */
  22. virtual ~PDF();
  23. virtual double getNLogDensity ( const NICE::Vector & x ) const = 0;
  24. virtual double getProb ( const NICE::Vector & x ) const;
  25. virtual int getDimension () const = 0;
  26. virtual void sample ( NICE::VVector & x, int count ) const { ROADWORKS };
  27. };
  28. #undef ROADWORKS
  29. } // namespace
  30. #endif