KernelRBF.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /**
  2. * @file KernelRBF.h
  3. * @brief Interface for the popular exponential mercer kernels
  4. * @author Erik Rodner
  5. * @date 10/24/2007
  6. */
  7. #ifndef KERNELRBFINCLUDE
  8. #define KERNELRBFINCLUDE
  9. #include "Kernel.h"
  10. #include "ParameterizedKernel.h"
  11. #include "CachedQuadraticDistances.h"
  12. namespace OBJREC {
  13. /** Interface for the popular exponential mercer kernel / rbf kernel */
  14. class KernelRBF : public CachedQuadraticDistances
  15. {
  16. protected:
  17. double gammasq;
  18. double noise;
  19. public:
  20. /** simple constructor */
  21. KernelRBF( double loggamma, double noise = 0.0 );
  22. /** copy constructor */
  23. KernelRBF ( const KernelRBF & src );
  24. /** simple destructor */
  25. virtual ~KernelRBF();
  26. /** clone this object */
  27. KernelRBF *clone(void) const;
  28. /** compute the kernel value */
  29. double K (const NICE::Vector & x, const NICE::Vector & y) const;
  30. void updateKernelData ( KernelData *kernelData ) const;
  31. void calcKernelData ( const NICE::VVector & X, KernelData *kernelData ) const;
  32. size_t getParameterSize () const { return 1; };
  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