pub mod algorithms;
pub mod gpu;
pub mod metrics;
pub mod prelude;
pub mod scientific;
pub use prelude::*;
#[derive(Debug, thiserror::Error)]
pub enum ClusteringError {
#[error("Invalid parameter: {0}")]
InvalidParameter(String),
#[error("Convergence failed after {0} iterations")]
ConvergenceFailure(usize),
#[error("Shape mismatch: expected {expected}, got {actual}")]
ShapeMismatch { expected: String, actual: String },
#[error("Numerical error: {0}")]
NumericalError(String),
#[error("GPU error: {0}")]
GpuError(String),
}
pub type Result<T> = std::result::Result<T, ClusteringError>;