summaryrefslogtreecommitdiffstats log msg author committer range
diff options
 context: 12345678910152025303540 space: includeignore mode: unifiedssdiffstat only
-rw-r--r--src/distance.rs12
1 files changed, 9 insertions, 3 deletions
 diff --git a/src/distance.rs b/src/distance.rsindex 070bac7..e44ed03 100644--- a/src/distance.rs+++ b/src/distance.rs@@ -14,8 +14,8 @@ impl Value for T {} /// /// An implementation may be an actual numerical distance, or an [order embedding] of the true /// distance. This allows for optimizations whenever distances can be compared more efficiently-/// than their exact values can be computed, as is the case for [Euclidean distance]. Implementors-/// must satisfy, for all distances $x$ and $y$:+/// than their exact values can be computed. Implementors must satisfy, for all distances $x$ and+/// $y$: /// /// math /// \begin{aligned}@@ -25,8 +25,14 @@ impl Value for T {} /// \end{aligned} ///  ///+/// Any monotonically increasing function can be used to create an order embedding. For example,+/// [EuclideanDistance] holds a squared distance, rather than the distance itself. Comparisons+/// still behave correctly because $x \mapsto x^2$ is an increasing function. This lets us avoid+/// computing relatively expensive square roots until we need the value() itself, at which point+/// the inverse function $x \mapsto \sqrt{x}$ must be applied.+/// /// [order embedding]: https://en.wikipedia.org/wiki/Order_embedding-/// [Euclidean distance]: crate::euclid::EuclideanDistance+/// [EuclideanDistance]: crate::euclid::EuclideanDistance pub trait Distance where Self: Copy,