12 #ifndef MLPACK_CORE_KERNELS_LAPLACIAN_KERNEL_HPP 13 #define MLPACK_CORE_KERNELS_LAPLACIAN_KERNEL_HPP 60 template<
typename VecTypeA,
typename VecTypeB>
61 double Evaluate(
const VecTypeA& a,
const VecTypeB& b)
const 78 return exp(-t / bandwidth);
91 return exp(-t / bandwidth) / -bandwidth;
100 template<
typename Archive>
double Gradient(const double t) const
Evaluation of the gradient of the Laplacian kernel given the distance between two points...
This is a template class that can provide information about various kernels.
Linear algebra utility functions, generally performed on matrices or vectors.
FirstShim< T > CreateNVP(T &t, const std::string &name, typename boost::enable_if< HasSerialize< T >>::type *=0)
Call this function to produce a name-value pair; this is similar to BOOST_SERIALIZATION_NVP(), but should be used for types that have a Serialize() function (or contain a type that has a Serialize() function) instead of a serialize() function.
double Bandwidth() const
Get the bandwidth.
The core includes that mlpack expects; standard C++ includes and Armadillo.
static VecTypeA::elem_type Evaluate(const VecTypeA &a, const VecTypeB &b)
Computes the distance between two points.
double & Bandwidth()
Modify the bandwidth.
LaplacianKernel()
Default constructor; sets bandwidth to 1.0.
void Serialize(Archive &ar, const unsigned int)
Serialize the kernel.
LaplacianKernel(double bandwidth)
Construct the Laplacian kernel with a custom bandwidth.
double Evaluate(const double t) const
Evaluation of the Laplacian kernel given the distance between two points.
The standard Laplacian kernel.
static const bool IsNormalized
If true, then the kernel is normalized: K(x, x) = K(y, y) = 1 for all x.
double Evaluate(const VecTypeA &a, const VecTypeB &b) const
Evaluation of the Laplacian kernel.
static const bool UsesSquaredDistance
If true, then the kernel include a squared distance, ||x - y||^2 .