1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! Distributional Distance Metrics
//!
//! This module provides distance metrics between probability distributions,
//! including optimal transport distances, time-warping distances, and
//! kernel-based distances.
//!
//! # Modules
//!
//! - [`wasserstein`]: Wasserstein (Earth Mover's) distance
//! - [`sinkhorn`]: Sinkhorn divergence and entropic optimal transport
//! - [`dtw`]: Dynamic Time Warping distance
//! - [`energy`]: Energy distance and Maximum Mean Discrepancy
//!
//! # Quick Example
//!
//! ```
//! use scirs2_metrics::distributional::wasserstein::wasserstein_1d;
//! use scirs2_metrics::distributional::dtw::{dtw_distance, DtwConfig};
//! use scirs2_metrics::distributional::energy::energy_distance;
//!
//! // Wasserstein distance between two 1D distributions
//! let a = vec![1.0, 2.0, 3.0];
//! let b = vec![2.0, 3.0, 4.0];
//! let w1 = wasserstein_1d(&a, &b, 1).expect("should succeed");
//!
//! // DTW distance between two time series
//! let ts1 = vec![1.0, 2.0, 3.0, 2.0, 1.0];
//! let ts2 = vec![1.0, 2.0, 3.0, 2.0, 1.0];
//! let dtw = dtw_distance(&ts1, &ts2, &DtwConfig::default()).expect("should succeed");
//!
//! // Energy distance between two sample sets
//! let x = vec![1.0, 2.0, 3.0];
//! let y = vec![1.5, 2.5, 3.5];
//! let ed = energy_distance(&x, &y).expect("should succeed");
//! ```
// Re-export key types for convenience
pub use ;
pub use ;
pub use ;
pub use ;