nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
distance.hpp
Go to the documentation of this file.
1
3// toolboxes/stats/include/nk/stats/cluster/distance.hpp
4//
5// Pairwise distance utilities. These primitives feed every clustering
6// algorithm in the toolbox (kmeans, kmedoids, linkage, knnsearch, …).
7
8#pragma once
9
10#include <memory_resource>
11#include <nk/value/value.hpp>
12
13#include <string>
14
15namespace nk::stats {
16
19
20
47Value pdist(const Value &X, const std::string &metric, double p,
48 std::pmr::memory_resource *mr = nullptr);
49
63Value pdist2(const Value &X, const Value &Y, const std::string &metric, double p,
64 std::pmr::memory_resource *mr = nullptr);
65
76 std::pmr::memory_resource *mr = nullptr);
77
88Value mahal(const Value &Y, const Value &X,
89 std::pmr::memory_resource *mr = nullptr);
90
91
93} // namespace nk::stats
Core MATLAB-compatible multidimensional array and scalar value type.
Definition value.hpp:61
Value pdist2(const Value &X, const Value &Y, const std::string &metric, double p, std::pmr::memory_resource *mr=nullptr)
Cross-set pairwise distances (D = pdist2(X, Y, metric, p)).
Value mahal(const Value &Y, const Value &X, std::pmr::memory_resource *mr=nullptr)
Mahalanobis distance squared (d² = mahal(Y, X)).
Value squareform(const Value &d, std::pmr::memory_resource *mr=nullptr)
Pack / unpack the pdist row form (Y = squareform(d)).
Value pdist(const Value &X, const std::string &metric, double p, std::pmr::memory_resource *mr=nullptr)
Pairwise distances between rows of X (d = pdist(X, metric, p)).