avx_clustering/
lib.rs

1//! # avx-clustering
2//!
3//! State-of-the-art clustering algorithms for Rust, designed to surpass
4//! scikit-learn, HDBSCAN, and RAPIDS cuML in performance and capabilities.
5//!
6//! ## Features
7//!
8//! - **Partitional Clustering**: KMeans, KMedoids, Fuzzy C-Means, Mean Shift
9//! - **Density-Based**: DBSCAN, HDBSCAN, OPTICS, DENCLUE
10//! - **Hierarchical**: Agglomerative, Divisive, BIRCH
11//! - **Model-Based**: GMM, Bayesian GMM, Dirichlet Process GMM
12//! - **Graph-Based**: Spectral Clustering, Louvain, Leiden
13//! - **Scientific**: 4D clustering, curved manifolds, streaming, GPU acceleration
14
15pub mod algorithms;
16pub mod gpu;
17pub mod metrics;
18pub mod prelude;
19pub mod scientific;
20
21pub use prelude::*;
22
23/// Common error type for clustering operations
24#[derive(Debug, thiserror::Error)]
25pub enum ClusteringError {
26    #[error("Invalid parameter: {0}")]
27    InvalidParameter(String),
28
29    #[error("Invalid input: {0}")]
30    InvalidInput(String),
31
32    #[error("Convergence failed after {0} iterations")]
33    ConvergenceFailure(usize),
34
35    #[error("Shape mismatch: expected {expected}, got {actual}")]
36    ShapeMismatch { expected: String, actual: String },
37
38    #[error("Numerical error: {0}")]
39    NumericalError(String),
40
41    #[error("GPU error: {0}")]
42    GpuError(String),
43}
44
45pub type Result<T> = std::result::Result<T, ClusteringError>;
46
47
48
49
50