Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef PYRAMIDCHI2_H_
00012 #define PYRAMIDCHI2_H_
00013
00014 #include <shogun/lib/common.h>
00015 #include <shogun/kernel/DotKernel.h>
00016 #include <shogun/features/Features.h>
00017 #include <shogun/features/SimpleFeatures.h>
00018
00019 namespace shogun
00020 {
00021 template <class T> class CSimpleFeatures;
00022
00028 class CPyramidChi2 : public CDotKernel
00029 {
00030 public:
00032 CPyramidChi2(void);
00033
00048 CPyramidChi2(int32_t size, int32_t num_cells2,
00049 float64_t* weights_foreach_cell2,
00050 int32_t width_computation_type2,
00051 float64_t width2);
00052
00071 CPyramidChi2(
00072 CSimpleFeatures<float64_t>* l, CSimpleFeatures<float64_t>* r,
00073 int32_t size, int32_t num_cells2,
00074 float64_t* weights_foreach_cell2,
00075 int32_t width_computation_type2,
00076 float64_t width2 );
00077
00083 virtual bool init(CFeatures* l, CFeatures* r);
00084
00085
00086 virtual ~CPyramidChi2();
00087
00089 virtual void cleanup();
00090
00092 virtual EKernelType get_kernel_type()
00093 {
00094 return K_PYRAMIDCHI2;
00095 }
00096
00098 virtual const char* get_name() const { return "PyramidoverChi2"; }
00099
00100
00114 virtual void setparams_pychi2(int32_t num_cells2,
00115 float64_t* weights_foreach_cell2,
00116 int32_t width_computation_type2,
00117 float64_t width2);
00118
00119 protected:
00126 virtual float64_t compute(int32_t idx_a, int32_t idx_b);
00127
00128 protected:
00129
00131 int32_t num_cells;
00132
00134 float64_t* weights;
00135
00137 int32_t width_computation_type;
00139 float64_t width;
00141 int32_t num_randfeats_forwidthcomputation;
00142
00143
00144
00145
00146 };
00147 }
00148 #endif