mlpack 3.4.2
hyperbolic_tangent_kernel.hpp
Go to the documentation of this file.
1
12#ifndef MLPACK_CORE_KERNELS_HYPERBOLIC_TANGENT_KERNEL_HPP
13#define MLPACK_CORE_KERNELS_HYPERBOLIC_TANGENT_KERNEL_HPP
14
15#include <mlpack/prereqs.hpp>
16
17namespace mlpack {
18namespace kernel {
19
29{
30 public:
34 HyperbolicTangentKernel() : scale(1.0), offset(0.0)
35 { }
36
44 HyperbolicTangentKernel(double scale, double offset) :
45 scale(scale), offset(offset)
46 { }
47
59 template<typename VecTypeA, typename VecTypeB>
60 double Evaluate(const VecTypeA& a, const VecTypeB& b)
61 {
62 return tanh(scale * arma::dot(a, b) + offset);
63 }
64
66 double Scale() const { return scale; }
68 double& Scale() { return scale; }
69
71 double Offset() const { return offset; }
73 double& Offset() { return offset; }
74
76 template<typename Archive>
77 void serialize(Archive& ar, const unsigned int /* version */)
78 {
79 ar & BOOST_SERIALIZATION_NVP(scale);
80 ar & BOOST_SERIALIZATION_NVP(offset);
81 }
82
83 private:
84 double scale;
85 double offset;
86};
87
88} // namespace kernel
89} // namespace mlpack
90
91#endif
HyperbolicTangentKernel()
This constructor sets the default scale to 1.0 and offset to 0.0.
double & Offset()
Modify offset for the kernel.
double Evaluate(const VecTypeA &a, const VecTypeB &b)
Evaluate the hyperbolic tangent kernel.
double Offset() const
Get offset for the kernel.
HyperbolicTangentKernel(double scale, double offset)
Construct the hyperbolic tangent kernel with custom scale factor and offset.
void serialize(Archive &ar, const unsigned int)
Serialize the kernel.
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
The core includes that mlpack expects; standard C++ includes and Armadillo.