mlpack 3.4.2
cosine_distance.hpp
Go to the documentation of this file.
1
13#ifndef MLPACK_CORE_KERNELS_COSINE_DISTANCE_HPP
14#define MLPACK_CORE_KERNELS_COSINE_DISTANCE_HPP
15
16#include <mlpack/prereqs.hpp>
18
19namespace mlpack {
20namespace kernel {
21
32{
33 public:
41 template<typename VecTypeA, typename VecTypeB>
42 static double Evaluate(const VecTypeA& a, const VecTypeB& b);
43
45 template<typename Archive>
46 void serialize(Archive& /* ar */, const unsigned int /* version */) { }
47};
48
50template<>
52{
53 public:
55 static const bool IsNormalized = true;
56
58 static const bool UsesSquaredDistance = false;
59};
60
61} // namespace kernel
62} // namespace mlpack
63
64// Include implementation.
65#include "cosine_distance_impl.hpp"
66
67#endif
The cosine distance (or cosine similarity).
static double Evaluate(const VecTypeA &a, const VecTypeB &b)
Computes the cosine distance between two points.
void serialize(Archive &, const unsigned int)
Serialize the class (there's nothing to save).
This is a template class that can provide information about various kernels.
static const bool UsesSquaredDistance
If true, then the kernel include a squared distance, ||x - y||^2 .
static const bool IsNormalized
If true, then the kernel is normalized: K(x, x) = K(y, y) = 1 for all x.
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.