pub enum KktError {
NotSymmetric,
ZeroPivot {
position: usize,
},
NotFinite {
position: usize,
},
WrongInertia {
found: Inertia,
expected: Inertia,
},
Structure(SparseError),
Backend(&'static str),
}Expand description
Error raised by a crate::KktSolver (Chapter 5.14).
As in LuError, structural problems of the input are reported in a
KktError::Structure carrying the SparseError of the container
check, so Eq is not derived (the SparseError::InvalidValue
variant holds an f64).
Variants§
NotSymmetric
The pattern is not square, or it stores entries on both sides of the diagonal without being structurally symmetric (invariant (K1) of Chapter 5.14).
ZeroPivot
A pivot of the factorization is exactly zero (or not finite) and no
dynamic regularization was asked for (or it could not lift it);
position is the row of K (original numbering) whose pivot
failed.
NotFinite
The factorization produced a NaN or an infinity (an overflow of the
elimination; step K3′ and invariant (S10) of Chapter 5.14);
position is the row of K (original numbering) of the first
column of the factor holding one.
WrongInertia
The inertia of the factorization differs from the one the form requires (invariant (S6)).
Fields
expected: InertiaThe inertia crate::KktForm requires.
Structure(SparseError)
The matrix does not satisfy the container invariants (S1), its dimensions do not match the form or the analysis, or its lower triangle has an entry outside the analyzed pattern.
Backend(&'static str)
The backend ran out of memory or refused the problem.
Trait Implementations§
Source§impl Error for KktError
impl Error for KktError
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()