pub struct KktDebug {
pub iter: i32,
pub dim: i32,
pub n_neg: i32,
pub provides_inertia: bool,
pub status: String,
pub matrix: Option<(i32, Vec<i32>, Vec<i32>, Vec<f64>)>,
pub l_factor: Option<FactorPattern>,
}Expand description
KKT-factorization diagnostics captured for the interactive debugger
after a search-direction solve. Only populated when a debugger is
installed (see IpoptAlgorithm); inspected via DebugCtx::kkt.
Fields§
§iter: i32The outer iteration this factorization was assembled at. Lets the
debugger label viz kkt / viz L with the iteration the system
actually came from — at an iter_start pause that’s the previous
iteration (the step that produced the current point), not the
iterate you’re standing on.
dim: i32Dimension of the augmented system (n + m).
n_neg: i32Negative eigenvalues reported by the factorization (-1 if the backend doesn’t provide inertia).
provides_inertia: boolWhether the backend reports inertia at all.
status: StringDebug string of the last factorization status.
matrix: Option<(i32, Vec<i32>, Vec<i32>, Vec<f64>)>Assembled KKT triplets (dim, irn, jcn, vals), 1-based lower
triangle — for viz kkt. Captured when a debugger is attached.
l_factor: Option<FactorPattern>LDLᵀ factor pattern (+ values) — for viz L. Captured only
after the debugger opts in (it’s the expensive piece).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for KktDebug
impl RefUnwindSafe for KktDebug
impl Send for KktDebug
impl Sync for KktDebug
impl Unpin for KktDebug
impl UnsafeUnpin for KktDebug
impl UnwindSafe for KktDebug
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