Kernel.h 812 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /**
  2. * @file Kernel.h
  3. * @brief Interface for Mercer Kernels
  4. * @author Erik Rodner
  5. * @date 10/24/2007
  6. */
  7. #ifndef KERNELINCLUDE
  8. #define KERNELINCLUDE
  9. #ifdef NOVISUAL
  10. #include <vislearning/nice_nonvis.h>
  11. #else
  12. #include <vislearning/nice.h>
  13. #endif
  14. #include "core/vector/VVector.h"
  15. /** Interface for Mercer Kernels */
  16. namespace OBJREC {
  17. class Kernel
  18. {
  19. protected:
  20. bool symmetric;
  21. public:
  22. /** simple constructor */
  23. Kernel( bool symmetric );
  24. /** simple destructor */
  25. virtual ~Kernel();
  26. virtual double K (const NICE::Vector & x, const NICE::Vector & y) const = 0;
  27. void calcGramMatrix ( const NICE::VVector & vecSet, NICE::Matrix & G ) const;
  28. void calcKernelVector ( const NICE::VVector & vecSet, const NICE::Vector & y, NICE::Vector & kstar ) const;
  29. };
  30. } // namespace
  31. #endif