pub enum Checkpoint {
IterStart,
AfterBarrierUpdate,
AfterSearchDirection,
AfterStep,
StepRejected,
PreRestoration,
PostRestoration,
Terminated,
}Expand description
Where in the main loop a checkpoint fired.
Variants§
IterStart
Top of an outer iteration — after the intermediate callback, before this iteration’s Newton step is computed. The iterate, multipliers, and μ all reflect the accepted point from the previous iteration.
AfterBarrierUpdate
After the barrier parameter μ was updated for this iteration (before the search direction is computed).
AfterSearchDirection
After the primal-dual Newton step was computed — the search
direction δ (data.delta), the applied regularization, and the
KKT factorization are available.
AfterStep
After the line search chose a step length and the trial point was
accepted — α (info_alpha_*) and the new iterate are in place.
StepRejected
The line search rejected this iteration’s step — it hit the tiny-step
floor or exhausted its backtracks without an acceptable point, and the
solver is about to fall into restoration. The search direction δ and
the un-accepted current iterate are intact for inspection. The “why did
the line search give up here?” stop, distinct from the restoration entry
that follows.
PreRestoration
Just before the algorithm switches into the restoration phase — the iterate that tripped restoration is intact. The most-requested “why did this go to restoration?” stop.
PostRestoration
Just after the restoration phase returns, so its effect on the iterate can be inspected.
Terminated
The solve has finished (or is about to): fired once before
optimize returns, at the final iterate, carrying the outcome
via DebugCtx::status. Lets a debugger drop in for a
post-mortem at the failing (or final) point. The DebugAction
returned at this checkpoint is ignored — the solve is already
over, so there is nothing left to resume or stop.
Implementations§
Source§impl Checkpoint
impl Checkpoint
Sourcepub fn as_str(self) -> &'static str
pub fn as_str(self) -> &'static str
The stable wire/CLI protocol name for this checkpoint. These strings
are intentionally not the variant identifiers (AfterBarrierUpdate
→ "after_mu", PreRestoration → "pre_restoration_entry") — they’re
the names the JSON protocol and stop-at use, so match on the variant,
not the string. Locked by the checkpoint_as_str_is_stable test.
Sourcepub fn is_sub_iteration(self) -> bool
pub fn is_sub_iteration(self) -> bool
Sub-iteration checkpoints (everything between IterStart and the
next IterStart).
Trait Implementations§
Source§impl Clone for Checkpoint
impl Clone for Checkpoint
Source§fn clone(&self) -> Checkpoint
fn clone(&self) -> Checkpoint
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for Checkpoint
Source§impl Debug for Checkpoint
impl Debug for Checkpoint
impl Eq for Checkpoint
Source§impl PartialEq for Checkpoint
impl PartialEq for Checkpoint
Source§fn eq(&self, other: &Checkpoint) -> bool
fn eq(&self, other: &Checkpoint) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for Checkpoint
Auto Trait Implementations§
impl Freeze for Checkpoint
impl RefUnwindSafe for Checkpoint
impl Send for Checkpoint
impl Sync for Checkpoint
impl Unpin for Checkpoint
impl UnsafeUnpin for Checkpoint
impl UnwindSafe for Checkpoint
Blanket Implementations§
impl<T> Boilerplate for T
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