PDF.h 873 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. #ifdef NOVISUAL
  10. #include <vislearning/nice_nonvis.h>
  11. #else
  12. #include <vislearning/nice.h>
  13. #endif
  14. #define ROADWORKS { fprintf(stderr, "not yet implemented !\n"); exit(-1); }
  15. #include "core/vector/VVector.h"
  16. namespace OBJREC {
  17. /** Interface for arbitrary multivariate density functions */
  18. class PDF
  19. {
  20. protected:
  21. public:
  22. /** simple constructor */
  23. PDF();
  24. /** simple destructor */
  25. virtual ~PDF();
  26. virtual double getNLogDensity ( const NICE::Vector & x ) const = 0;
  27. virtual double getProb ( const NICE::Vector & x ) const;
  28. virtual int getDimension () const = 0;
  29. virtual void sample ( NICE::VVector & x, int count ) const { ROADWORKS };
  30. };
  31. #undef ROADWORKS
  32. } // namespace
  33. #endif