Skip to main content

uncertain_numerics/
kernel_error.rs

1use core::fmt;
2
3/// Errors raised while constructing covariance kernels.
4#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5pub enum KernelError {
6    /// The RBF signal variance is not finite.
7    NonFiniteSignalVariance,
8    /// The RBF signal variance is zero or negative.
9    NonPositiveSignalVariance,
10    /// The RBF length scale is not finite.
11    NonFiniteLengthScale,
12    /// The RBF length scale is zero or negative.
13    NonPositiveLengthScale,
14}
15
16impl fmt::Display for KernelError {
17    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
18        match self {
19            Self::NonFiniteSignalVariance => write!(f, "signal variance must be finite"),
20            Self::NonPositiveSignalVariance => {
21                write!(f, "signal variance must be strictly positive")
22            }
23            Self::NonFiniteLengthScale => write!(f, "length scale must be finite"),
24            Self::NonPositiveLengthScale => write!(f, "length scale must be strictly positive"),
25        }
26    }
27}
28
29impl std::error::Error for KernelError {}