PolyKernel.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _POLYKERNEL_H___
00012 #define _POLYKERNEL_H___
00013
00014 #include "lib/common.h"
00015 #include "kernel/SimpleKernel.h"
00016 #include "features/RealFeatures.h"
00017
00028 class CPolyKernel: public CSimpleKernel<DREAL>
00029 {
00030 public:
00040 CPolyKernel(CRealFeatures* l, CRealFeatures* r,
00041 INT d, bool inhom, bool use_norm, INT size=10);
00042
00050 CPolyKernel(INT size, INT degree,
00051 bool inhomogene=true, bool use_normalization=true);
00052
00053 virtual ~CPolyKernel();
00054
00061 virtual bool init(CFeatures* l, CFeatures* r);
00062
00064 virtual void cleanup();
00065
00071 virtual bool load_init(FILE* src);
00072
00078 virtual bool save_init(FILE* dest);
00079
00084 virtual EKernelType get_kernel_type() { return K_POLY; }
00085
00090 virtual const CHAR* get_name() { return "Poly"; };
00091
00092 protected:
00101 virtual DREAL compute(INT idx_a, INT idx_b);
00102
00103 protected:
00105 INT degree;
00107 bool inhomogene;
00109 bool use_normalization;
00110
00112 DREAL *sqrtdiag_lhs;
00114 DREAL *sqrtdiag_rhs;
00116 bool initialized;
00117 };
00118
00119 #endif