KernelExp.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. * @file KernelExp.h
  3. * @brief Interface for the popular exponential mercer kernels
  4. * @author Erik Rodner
  5. * @date 10/24/2007
  6. */
  7. #ifndef KERNELEXPINCLUDE
  8. #define KERNELEXPINCLUDE
  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 KernelExp : public CachedQuadraticDistances
  15. {
  16. protected:
  17. double gammasq;
  18. double sv;
  19. double noise;
  20. public:
  21. /** simple constructor */
  22. KernelExp( double loggamma, double logsv, double noise = 0.0 );
  23. KernelExp ( const KernelExp & src );
  24. /** simple destructor */
  25. virtual ~KernelExp();
  26. double K (const NICE::Vector & x, const NICE::Vector & y) const;
  27. void updateKernelData ( KernelData *kernelData ) const;
  28. void calcKernelData ( const NICE::VVector & X, KernelData *kernelData ) const;
  29. size_t getParameterSize () const { return 2; };
  30. void getKernelJacobi ( size_t parameter, const NICE::Vector & parameters, const KernelData *kernelData, NICE::Matrix & jacobiMatrix ) const;
  31. void setParameters( const NICE::Vector & newParameters );
  32. void getParameters( NICE::Vector & newParameters ) const;
  33. KernelExp *clone(void) const;
  34. };
  35. } // namespace
  36. #endif