00001 #ifndef _theplu_yat_classifier_kernel_sev_
00002 #define _theplu_yat_classifier_kernel_sev_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include "Kernel.h"
00028 #include "yat/utility/Matrix.h"
00029
00030 namespace theplu {
00031 namespace yat {
00032 namespace classifier {
00033
00034 class DataLookup1D;
00035 class KernelFunction;
00036
00047 class Kernel_SEV : public Kernel
00048 {
00049
00050 public:
00051
00057 Kernel_SEV(const MatrixLookup&, const KernelFunction&,const bool own=false);
00058
00064 Kernel_SEV(const MatrixLookupWeighted&, const KernelFunction&,
00065 const bool own=false);
00066
00070 Kernel_SEV(const Kernel_SEV& kernel, const std::vector<size_t>& index);
00071
00072
00081 const Kernel_SEV* make_kernel(const MatrixLookup&,
00082 const bool own=false) const;
00083
00084
00093 const Kernel_SEV* make_kernel(const MatrixLookupWeighted&,
00094 const bool own=false) const;
00095
00096
00101 double operator()(const size_t row,const size_t column) const;
00102
00103
00104 private:
00108 Kernel_SEV(const Kernel_SEV&);
00109 const Kernel_SEV& operator=(const Kernel_SEV&);
00110
00111 void build_kernel(void);
00112
00113 utility::Matrix kernel_matrix_;
00114
00115 };
00116
00117 }}}
00118
00119 #endif