yat  0.8.3pre
Kernel_SEV.h
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

Generated on Thu Dec 20 2012 03:12:57 for yat by  doxygen 1.8.0-20120409