yat
0.8.3pre
|
00001 #ifndef _theplu_yat_classifier_kernel_sev_ 00002 #define _theplu_yat_classifier_kernel_sev_ 00003 00004 // $Id: Kernel_SEV.h 2119 2009-12-12 23:11:43Z peter $ 00005 00006 /* 00007 Copyright (C) 2005 Jari Häkkinen, Peter Johansson 00008 Copyright (C) 2006 Jari Häkkinen, Peter Johansson, Markus Ringnér 00009 Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson 00010 00011 This file is part of the yat library, http://dev.thep.lu.se/yat 00012 00013 The yat library is free software; you can redistribute it and/or 00014 modify it under the terms of the GNU General Public License as 00015 published by the Free Software Foundation; either version 3 of the 00016 License, or (at your option) any later version. 00017 00018 The yat library is distributed in the hope that it will be useful, 00019 but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00021 General Public License for more details. 00022 00023 You should have received a copy of the GNU General Public License 00024 along with yat. If not, see <http://www.gnu.org/licenses/>. 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 }; // class Kernel_SEV 00116 00117 }}} // of namespace classifier, yat, and theplu 00118 00119 #endif