#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("error in optimization: {0}")]
Optimize(#[from] argmin::core::Error),
#[error("no best parameter found")]
NoBestParameter,
#[error("no min-max found: {0:?}")]
MinMaxNotFound(augurs_core::NanMinMaxResult<f64>),
#[error("transform has not been fitted yet")]
NotFitted,
#[error("input data is empty, or contains only NaN values")]
EmptyData,
#[error("data contains non-positive values")]
NonPositiveData,
#[error("input values must not be NaN")]
NaNValue,
#[error("input lambda must be finite")]
InvalidLambda,
#[error("variance must be positive")]
VarianceNotPositive,
#[error("all data must be greater than 0")]
AllDataNotPositive,
#[error("invalid domain")]
InvalidDomain,
}
impl From<augurs_core::NanMinMaxResult<f64>> for Error {
fn from(e: augurs_core::NanMinMaxResult<f64>) -> Self {
Self::MinMaxNotFound(e)
}
}