pub enum MpccStage {
Exact,
Continuation,
Penalty,
Branch,
}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.
Implementations§
Trait Implementations§
impl Copy for MpccStage
impl Eq for MpccStage
impl StructuralPartialEq for MpccStage
Auto Trait Implementations§
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