pub struct KktReport {
pub iter: i32,
pub dim: i32,
pub n_neg: i32,
pub n_pos: i32,
pub expected_neg: i32,
pub provides_inertia: bool,
pub inertia_correct: bool,
pub delta_w: Number,
pub delta_c: Number,
pub status: String,
}Expand description
KKT-factorization report (see DebugCtx::kkt). The inertia of a
well-posed primal-dual system is (n_pos = n, n_neg = m, n_zero = 0);
a mismatch (or nonzero regularization) is the classic signal that the
step is being stabilized.
Fields§
§iter: i32The outer iteration this factorization was assembled at — may be the
previous iteration when paused at iter_start (look-back).
dim: i32Augmented-system dimension (n + m).
n_neg: i32Negative eigenvalues reported (-1 if the backend has no inertia).
n_pos: i32Positive eigenvalues = dim − n_neg (-1 if unknown).
expected_neg: i32Expected negatives = number of equality + inequality multipliers.
provides_inertia: boolWhether the backend reports inertia.
inertia_correct: booltrue when reported inertia matches the expected (n, m, 0).
delta_w: NumberPrimal regularization δ_w applied to the (1,1) block.
delta_c: NumberDual regularization δ_c applied to the (3,3)/(4,4) blocks.
status: StringFactorization status (debug string).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for KktReport
impl RefUnwindSafe for KktReport
impl Send for KktReport
impl Sync for KktReport
impl Unpin for KktReport
impl UnsafeUnpin for KktReport
impl UnwindSafe for KktReport
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T, U> Imply<T> for U
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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