#[derive(Debug, thiserror::Error)]
pub enum ComputeError {
#[error("dimension mismatch: expected {expected}, got {got}")]
DimensionMismatch {
expected: usize,
got: usize,
},
#[error("singular matrix: cannot solve linear system")]
SingularMatrix,
#[error("insufficient data: need at least {min} points, got {got}")]
InsufficientData {
min: usize,
got: usize,
},
#[error("invalid parameter: {name} = {value} — {reason}")]
InvalidParameter {
name: &'static str,
value: String,
reason: &'static str,
},
#[error("numerical instability: {0}")]
NumericalInstability(String),
#[error("internal error: {0}")]
Internal(String),
}