cvx_index/metrics/
mod.rs

1//! SIMD-accelerated distance metrics.
2//!
3//! All metrics use [`pulp`] for portable SIMD: a single implementation
4//! dispatches to AVX-512, AVX2, NEON, or scalar at runtime.
5//!
6//! # Example
7//!
8//! ```
9//! use cvx_core::DistanceMetric;
10//! use cvx_index::metrics::CosineDistance;
11//!
12//! let metric = CosineDistance;
13//! let a = vec![1.0, 0.0, 0.0];
14//! let b = vec![0.0, 1.0, 0.0];
15//!
16//! let dist = metric.distance(&a, &b);
17//! assert!((dist - 1.0).abs() < 1e-5); // orthogonal → cosine distance = 1.0
18//! ```
19
20mod cosine;
21mod dot_product;
22mod l2;
23mod simd_ops;
24
25pub use cosine::CosineDistance;
26pub use dot_product::DotProductDistance;
27pub use l2::L2Distance;