SHOGUN v0.9.0
|
00001 /* 00002 * This program is free software; you can redistribute it and/or modify 00003 * it under the terms of the GNU General Public License as published by 00004 * the Free Software Foundation; either version 3 of the License, or 00005 * (at your option) any later version. 00006 * 00007 * Written (W) 2008-2009 Alexander Binder 00008 * Copyright (C) 2008-2009 Fraunhofer Institute FIRST and Max-Planck-Society 00009 */ 00010 00011 #ifndef PYRAMIDCHI2_H_ 00012 #define PYRAMIDCHI2_H_ 00013 00014 #include "lib/common.h" 00015 #include "kernel/DotKernel.h" 00016 #include "features/Features.h" 00017 #include "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 /*PYRAMIDCHI2_H_*/