Skip to main content

use_eigen/
error.rs

1use core::fmt;
2
3/// Errors returned by validated eigen primitives.
4#[derive(Debug, Clone, PartialEq, Eq)]
5pub enum EigenError {
6    /// The provided eigenvector coordinates were empty.
7    EmptyEigenvector,
8    /// The provided eigensystem contained no eigenpairs.
9    EmptyEigensystem,
10    /// The provided eigenspace basis contained no eigenvectors.
11    EmptyEigenspace,
12}
13
14impl fmt::Display for EigenError {
15    fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
16        match self {
17            Self::EmptyEigenvector => {
18                formatter.write_str("eigenvector coordinates must not be empty")
19            },
20            Self::EmptyEigensystem => {
21                formatter.write_str("eigensystem must contain at least one eigenpair")
22            },
23            Self::EmptyEigenspace => {
24                formatter.write_str("eigenspace basis must contain at least one eigenvector")
25            },
26        }
27    }
28}
29
30impl std::error::Error for EigenError {}