pub enum MpccStage {
Exact,
Continuation,
Penalty,
Branch,
Polish,
}Expand description
The stages, in the order the driver tries them.
Variants§
Exact
Two solves from the model’s own start, each a candidate: a relaxed
path (G·H <= EXACT_STAGE_TAU, one warm step to the
continuation’s last τ, then its exact finish), and the exact product
G·H = 0 solved cold (G·H <= 0 where the equality would leave the
model with more equalities than variables).
Continuation
G·H <= τ for τ down SCHOLTES_SCHEDULE, each stage warm-started
from the last, then one G·H = 0 solve from the end of it
(G·H <= 0 where the equality would leave the model with more
equalities than variables).
Penalty
G·H = 0 through the ℓ₁ exact-penalty barrier.
Branch
A branch NLP: each pair with one side held at zero, the other kept
non-negative — run from a reported point that is not B-stationary,
along the branch its B-stationarity check found a descent on
(check_b_stationarity). Not in STAGES.
Polish
The polish: the reported point re-solved on the branch that holds
each pair’s smaller side at zero, when its pairs are complementary
only to more than POLISH_TRIGGER · tol (natural_residual).
A branch NLP like Self::Branch, but a refinement of the answer
rather than a move off it, so it is recorded apart. Not in STAGES.
Implementations§
Trait Implementations§
impl Copy for MpccStage
impl Eq for MpccStage
impl StructuralPartialEq for MpccStage
Auto Trait Implementations§
impl Forget for MpccStage
impl Freeze for MpccStage
impl RefUnwindSafe for MpccStage
impl Send for MpccStage
impl Sync for MpccStage
impl Unpin for MpccStage
impl UnsafeUnpin for MpccStage
impl UnwindSafe for MpccStage
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