From d7b506fa43bea7fc7141efad2edd01b8f0280566 Mon Sep 17 00:00:00 2001 From: Davis King Date: Thu, 3 Jul 2008 22:54:40 +0000 Subject: [PATCH] Made the kernel objects comparable via operator== --HG-- extra : convert_revision : svn%3Afdd8eb12-d10e-0410-9acb-85c331704f74/trunk%402364 --- dlib/svm/kernel.h | 21 +++++++++++++++++++++ dlib/svm/kernel_abstract.h | 31 +++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/dlib/svm/kernel.h b/dlib/svm/kernel.h index f5b93adb3..671d47dc9 100644 --- a/dlib/svm/kernel.h +++ b/dlib/svm/kernel.h @@ -50,6 +50,13 @@ namespace dlib const_cast(gamma) = k.gamma; return *this; } + + bool operator== ( + const radial_basis_kernel& k + ) const + { + return gamma == k.gamma; + } }; template < @@ -128,6 +135,13 @@ namespace dlib const_cast(degree) = k.degree; return *this; } + + bool operator== ( + const polynomial_kernel& k + ) const + { + return (gamma == k.gamma) && (coef == k.coef) && (degree == k.degree); + } }; template < @@ -187,6 +201,13 @@ namespace dlib { return trans(a)*b; } + + bool operator== ( + const linear_kernel& k + ) const + { + return true; + } }; template < diff --git a/dlib/svm/kernel_abstract.h b/dlib/svm/kernel_abstract.h index ebb31958f..a247e4049 100644 --- a/dlib/svm/kernel_abstract.h +++ b/dlib/svm/kernel_abstract.h @@ -34,6 +34,8 @@ namespace dlib dlib/memory_manager/memory_manager_kernel_abstract.h or dlib/memory_manager_global/memory_manager_global_kernel_abstract.h or dlib/memory_manager_stateless/memory_manager_stateless_kernel_abstract.h + - an overloaded == operator that tells you if two kernels are + identical or not. For examples of kernel functions see the following objects (e.g. the radial_basis_kernel). @@ -103,6 +105,17 @@ namespace dlib - returns *this !*/ + bool operator== ( + const radial_basis_kernel& k + ) const; + /*! + ensures + - if (k and *this are identical) then + - returns true + - else + - returns false + !*/ + }; template < @@ -203,6 +216,16 @@ namespace dlib - returns *this !*/ + bool operator== ( + const polynomial_kernel& k + ) const; + /*! + ensures + - if (k and *this are identical) then + - returns true + - else + - returns false + !*/ }; template < @@ -258,6 +281,14 @@ namespace dlib ensures - returns trans(a)*b !*/ + + bool operator== ( + const linear_kernel& k + ) const; + /*! + ensures + - returns true + !*/ }; template <