use thiserror::Error;
#[derive(Debug, Error)]
pub enum MultivariateError {
#[error("insufficient data: need at least {min}, got {got}")]
InsufficientData {
min: usize,
got: usize,
},
#[error("dimension mismatch: expected {expected}, got {got}")]
DimensionMismatch {
expected: usize,
got: usize,
},
#[error("cycle detected in derived series dependency graph")]
CycleDetected,
#[error("series not found: {0}")]
SeriesNotFound(String),
#[error("singular covariance matrix — data may be collinear")]
SingularMatrix,
#[error("invalid parameter: {0}")]
InvalidParameter(String),
#[error("compute error: {0}")]
Compute(String),
#[error("not fitted — call fit() before predict/detect")]
NotFitted,
}