22 #ifndef __MLPACK_CORE_KERNELS_EPANECHNIKOV_KERNEL_HPP
23 #define __MLPACK_CORE_KERNELS_EPANECHNIKOV_KERNEL_HPP
58 template<
typename Vec1Type,
typename Vec2Type>
59 double Evaluate(
const Vec1Type& a,
const Vec2Type& b)
const;
65 double Evaluate(
const double distance)
const;
77 template<
typename VecType>
111 #include "epanechnikov_kernel_impl.hpp"
double ConvolutionIntegral(const VecType &a, const VecType &b)
Obtains the convolution integral [integral of K(||x-a||) K(||b-x||) dx] for the two vectors...
This is a template class that can provide information about various kernels.
Linear algebra utility functions, generally performed on matrices or vectors.
EpanechnikovKernel(const double bandwidth=1.0)
Instantiate the Epanechnikov kernel with the given bandwidth (default 1.0).
std::string ToString() const
double inverseBandwidthSquared
Cached value of the inverse bandwidth squared (to speed up computation).
double bandwidth
Bandwidth of the kernel.
The Epanechnikov kernel, defined as.
double Normalizer(const size_t dimension)
Compute the normalizer of this Epanechnikov kernel for the given dimension.
double Evaluate(const Vec1Type &a, const Vec2Type &b) const
Evaluate the Epanechnikov kernel on the given two inputs.
static const bool IsNormalized
If true, then the kernel is normalized: K(x, x) = K(y, y) = 1 for all x.