pub struct IterRecord {}Expand description
One row of per-iteration data — same numbers that
IpoptAlgorithm prints to stdout each iteration (the “iter
objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls”
line). Captured into SolveStatistics::iterations when a
JSON / programmatic consumer needs the trajectory rather than
just the final state.
Field semantics mirror upstream IpOrigIterationOutput.cpp:152
(Snprintf block) so a row in JSON round-trips back into the
same console table verbatim.
Fields§
§iter: i32Iteration index, starting at 0.
objective: f64Unscaled objective f(x_k) at the start of iter k.
inf_pr: f64Primal infeasibility exactly as the console table prints it in
the inf_pr column: under the default inf_pr_output=original,
the unscaled constraint violation of the user’s model (for
restoration rows, of the original NLP at the restoration
iterate’s x). See Self::inf_pr_internal for the residual
the filter and the convergence test read (gh#979).
inf_pr_internal: f64The algorithm’s internal primal infeasibility ‖(c(x), d(x) − s)‖∞
in the scaled slack form, with the slack pushed off its bound —
what the filter, the convergence test and the intermediate
callback’s inf_pr see. On restoration rows it is the
restoration NLP’s own residual. Differs from Self::inf_pr
whenever a slack sits away from d(x) or scaling is active.
inf_du: f64Dual infeasibility (max-norm of grad-Lagrangian).
mu: f64Barrier parameter μ.
d_norm: f64||d_xs||_∞ of the search step. 0.0 on iter 0 (no step yet).
regularization: f64Hessian regularization δ_w applied this iter; 0.0 when
no regularization was needed (printed as - in the console).
alpha_dual: f64Dual step length.
alpha_primal: f64Primal step length.
alpha_primal_char: charSingle-character tag for the alpha-primal column (f, h,
r for restoration etc.) — matches upstream’s per-iter tag.
ls_trials: i32Number of backtracking line-search trials this iter.
phase: IterPhaseWhich phase printed this row: the main IPM, or the restoration
sub-solve (the console’s r-suffixed rows). A restoration row’s
iter is the restoration solver’s counter, which continues the
outer count, so the outer row that leaves restoration repeats the
last restoration row’s index — exactly as the console does.
Trait Implementations§
Source§impl Clone for IterRecord
impl Clone for IterRecord
Source§fn clone(&self) -> IterRecord
fn clone(&self) -> IterRecord
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 IterRecord
impl Debug for IterRecord
Source§impl Default for IterRecord
impl Default for IterRecord
Source§fn default() -> IterRecord
fn default() -> IterRecord
Source§impl<'de> Deserialize<'de> for IterRecord
impl<'de> Deserialize<'de> for IterRecord
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<IterRecord, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<IterRecord, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for IterRecord
impl Serialize for IterRecord
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for IterRecord
impl RefUnwindSafe for IterRecord
impl Send for IterRecord
impl Sync for IterRecord
impl Unpin for IterRecord
impl UnsafeUnpin for IterRecord
impl UnwindSafe for IterRecord
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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