polynomial_kernel.hpp

Go to the documentation of this file.
00001 
00022 #ifndef __MLPACK_CORE_KERNELS_POLYNOMIAL_KERNEL_HPP
00023 #define __MLPACK_CORE_KERNELS_POLYNOMIAL_KERNEL_HPP
00024 
00025 #include <mlpack/core.hpp>
00026 
00027 namespace mlpack {
00028 namespace kernel {
00029 
00038 class PolynomialKernel
00039 {
00040  public:
00048   PolynomialKernel(const double degree = 2.0, const double offset = 0.0) :
00049       degree(degree),
00050       offset(offset)
00051   { }
00052 
00062   template<typename VecType>
00063   double Evaluate(const VecType& a, const VecType& b) const
00064   {
00065     return pow((arma::dot(a, b) + offset), degree);
00066   }
00067 
00069   const double& Degree() const { return degree; }
00071   double& Degree() { return degree; }
00072 
00074   const double& Offset() const { return offset; }
00076   double& Offset() { return offset; }
00077 
00078  private:
00080   double degree;
00082   double offset;
00083 };
00084 
00085 }; // namespace kernel
00086 }; // namespace mlpack
00087 
00088 #endif

Generated on 29 Sep 2016 for MLPACK by  doxygen 1.6.1