/** * @file KernelEXPHIK.h * @brief Interface for the generalized rbf kernel with HIK metric * @author Paul Bodesheim * @date 02/07/2013 */ #ifndef KERNELEXPHIKINCLUDE #define KERNELEXPHIKINCLUDE #include "Kernel.h" #include "KernelHIK.h" #include "ParameterizedKernel.h" namespace OBJREC { /** Interface for the generalized rbf kernel with HIK metric */ class KernelEXPHIK : public KernelHIK { protected: double gamma; public: /** simple constructor with HIK parameters*/ KernelEXPHIK ( double gamma = 1.0, double alpha = 1.0, double beta = 1.0 ); /** copy constructor */ KernelEXPHIK ( const KernelEXPHIK & src ); /** constructor with HIK kernel*/ KernelEXPHIK ( const KernelHIK & src, double gamma = 1.0 ); /** simple destructor */ virtual ~KernelEXPHIK(); /** clone this object */ KernelEXPHIK *clone(void) const; /** compute the kernel value */ double K (const NICE::Vector & x, const NICE::Vector & y) const; size_t getParameterSize () const { return 3; }; void updateKernelData ( KernelData *kernelData ) const; void getKernelJacobi ( size_t parameter, const NICE::Vector & parameters, const KernelData *kernelData, NICE::Matrix & jacobiMatrix ) const; void setParameters( const NICE::Vector & newParameters ); void getParameters( NICE::Vector & newParameters ) const; }; } // namespace #endif