KernelEXPHIK.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /**
  2. * @file KernelEXPHIK.h
  3. * @brief Interface for the generalized rbf kernel with HIK metric
  4. * @author Paul Bodesheim
  5. * @date 02/07/2013
  6. */
  7. #ifndef KERNELEXPHIKINCLUDE
  8. #define KERNELEXPHIKINCLUDE
  9. #include "Kernel.h"
  10. #include "KernelHIK.h"
  11. #include "ParameterizedKernel.h"
  12. namespace OBJREC {
  13. /** Interface for the generalized rbf kernel with HIK metric */
  14. class KernelEXPHIK : public KernelHIK
  15. {
  16. protected:
  17. double gamma;
  18. public:
  19. /** simple constructor with HIK parameters*/
  20. KernelEXPHIK ( double gamma = 1.0, double alpha = 1.0, double beta = 1.0 );
  21. /** copy constructor */
  22. KernelEXPHIK ( const KernelEXPHIK & src );
  23. /** constructor with HIK kernel*/
  24. KernelEXPHIK ( const KernelHIK & src, double gamma = 1.0 );
  25. /** simple destructor */
  26. virtual ~KernelEXPHIK();
  27. /** clone this object */
  28. KernelEXPHIK *clone(void) const;
  29. /** compute the kernel value */
  30. double K (const NICE::Vector & x, const NICE::Vector & y) const;
  31. size_t getParameterSize () const { return 3; };
  32. void updateKernelData ( KernelData *kernelData ) const;
  33. void getKernelJacobi ( size_t parameter, const NICE::Vector & parameters, const KernelData *kernelData, NICE::Matrix & jacobiMatrix ) const;
  34. void setParameters( const NICE::Vector & newParameters );
  35. void getParameters( NICE::Vector & newParameters ) const;
  36. };
  37. } // namespace
  38. #endif