pub struct WarmStartDiagnostics {
pub primal_residual: Number,
pub dual_residual: Number,
pub complementarity: Number,
pub mu_in: Number,
pub mu_out: Number,
pub bound_duals: BlockVerdict,
pub eq_duals: BlockVerdict,
pub bound_duals_reconstructed: usize,
pub bound_duals_rejected: usize,
pub eq_duals_rejected: bool,
pub stationarity_split: bool,
pub recentering_disabled: bool,
}Expand description
What the warm-start initializer accepted, reconstructed, or discarded, and the residuals it based those calls on (gh#606).
Written once per solve, at initialization. mu_in is what
mu_init / warm_start_target_mu asked for; mu_out is what the
iterate actually starts at.
Fields§
§primal_residual: Number‖c(x)‖_∞ of the supplied primal point, measured before any
dual reconstruction (it does not depend on the duals).
dual_residual: Number‖∇_x L‖_∞ after reconstruction.
complementarity: NumberAverage complementarity after reconstruction.
mu_in: Number§mu_out: Number§bound_duals: BlockVerdict§eq_duals: BlockVerdict§bound_duals_reconstructed: usizeBound-multiplier entries that arrived unseeded and were filled
from μ̂ / slack rather than from the constant floor.
bound_duals_rejected: usizeBound-multiplier entries that arrived seeded and were refused as incoherent with the primal point, taking the pre-gh#606 constant fill instead (gh#617).
eq_duals_rejected: booltrue when the seeded equality multipliers were refused as
incoherent with the primal point, so the stationarity split was
not run off them (gh#617). The y block itself is left where
the caller put it — that is what the pre-gh#606 path does with a
supplied y — but it stops being an input to anything.
stationarity_split: booltrue when the unseeded bound multipliers were re-derived from
the stationarity identity rather than left at μ̂ / slack. That
needs a caller-supplied y; see
[refine_bound_duals_from_stationarity].
recentering_disabled: booltrue when warm_start_recentering=none turned all of the
above off and the fields are the legacy constants.
Trait Implementations§
Source§impl Clone for WarmStartDiagnostics
impl Clone for WarmStartDiagnostics
Source§fn clone(&self) -> WarmStartDiagnostics
fn clone(&self) -> WarmStartDiagnostics
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for WarmStartDiagnostics
impl Debug for WarmStartDiagnostics
Auto Trait Implementations§
impl Freeze for WarmStartDiagnostics
impl RefUnwindSafe for WarmStartDiagnostics
impl Send for WarmStartDiagnostics
impl Sync for WarmStartDiagnostics
impl Unpin for WarmStartDiagnostics
impl UnsafeUnpin for WarmStartDiagnostics
impl UnwindSafe for WarmStartDiagnostics
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