Kernel.h 878 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. #include "core/vector/VVector.h"
  10. #include "KernelData.h"
  11. namespace OBJREC {
  12. /** Interface for Mercer Kernels */
  13. class Kernel
  14. {
  15. protected:
  16. bool symmetric;
  17. public:
  18. /** simple constructor */
  19. Kernel( bool symmetric );
  20. /** simple destructor */
  21. virtual ~Kernel();
  22. virtual double K (const NICE::Vector & x, const NICE::Vector & y) const = 0;
  23. virtual void calcGramMatrix ( const NICE::VVector & vecSet, NICE::Matrix & G ) const;
  24. virtual void calcKernelData ( const NICE::VVector & vecSet, KernelData *kernelData ) const;
  25. void calcKernelVector ( const NICE::VVector & vecSet, const NICE::Vector & y, NICE::Vector & kstar ) const;
  26. virtual Kernel *clone(void) const;
  27. };
  28. } // namespace
  29. #endif