pub struct ConvergedState {
pub status: ApplicationReturnStatus,
pub x: Vec<Number>,
pub obj_val: Number,
pub bound_relax_factor: Number,
/* private fields */
}Expand description
State captured at convergence: the user-visible iterate plus the
PdSensBacksolver that wraps the converged KKT factor.
Read this via Solver::converged.
Fields§
§status: ApplicationReturnStatusIPM return status of the most recent solve.
x: Vec<Number>Final primal iterate x* (length n_x), in the user’s own
units: a user-scaling change of variables is undone here, so
this is x, never the algorithm’s x̃ = d ⊙ x (gh#486).
obj_val: NumberFinal objective value f(x*).
bound_relax_factor: Numberbound_relax_factor as the solve that produced this state
ran with it, not as the application’s options read today.
The bounds were relaxed (or not) once, during this solve; a
later set_numeric_value cannot change what the held slacks
were measured against, so post-solve calls whose validity
depends on unrelaxed bounds must guard on this value. See
Solver::classify_activity.
Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for ConvergedState
impl !Send for ConvergedState
impl !Sync for ConvergedState
impl !UnwindSafe for ConvergedState
impl Freeze for ConvergedState
impl Unpin for ConvergedState
impl UnsafeUnpin for ConvergedState
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<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