pub enum HermitianEigenError {
Empty,
NonSquare {
nrows: usize,
ncols: usize,
},
InvalidTolerance {
tolerance: f64,
},
NonHermitian {
row: usize,
col: usize,
difference: f64,
tolerance: f64,
},
DType {
output: &'static str,
expected: String,
actual: String,
},
Shape {
output: &'static str,
expected: Vec<usize>,
actual: Vec<usize>,
},
NonRealEigenvalue {
index: usize,
imaginary: f64,
tolerance: f64,
},
Backend {
source: Box<dyn Error + Send + Sync + 'static>,
},
}Expand description
Error returned by lowest_hermitian_eigenpair.
The eigensolver is intended for small Rayleigh-Ritz projected matrices; it validates shape and Hermitian structure before calling the backend Hermitian eigendecomposition, symmetrizing only roundoff that is within the requested tolerance. Non-Hermitian effective operators are rejected explicitly instead of silently taking a real part.
Variants§
Empty
The matrix has zero rows and columns, so it has no eigenpair.
NonSquare
The input is not square.
InvalidTolerance
The Hermitian validation tolerance was negative or not finite.
NonHermitian
A matrix entry violates A[i, j] = conj(A[j, i]) within tolerance.
Fields
DType
The backend returned an output with an unexpected dtype.
Fields
Shape
The backend returned an output with an unexpected shape.
Fields
NonRealEigenvalue
A Hermitian backend eigenvalue had a non-negligible imaginary part.
Fields
Backend
The tenferro backend rejected or failed the eigendecomposition.
Trait Implementations§
Source§impl Debug for HermitianEigenError
impl Debug for HermitianEigenError
Source§impl Display for HermitianEigenError
impl Display for HermitianEigenError
Source§impl Error for HermitianEigenError
impl Error for HermitianEigenError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl !RefUnwindSafe for HermitianEigenError
impl !UnwindSafe for HermitianEigenError
impl Freeze for HermitianEigenError
impl Send for HermitianEigenError
impl Sync for HermitianEigenError
impl Unpin for HermitianEigenError
impl UnsafeUnpin for HermitianEigenError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more