pub enum TerminationStatus {
Show 19 variants
Optimal,
LocallyOptimal,
Feasible,
Infeasible,
Unbounded,
InfeasibleOrUnbounded,
IterationLimit,
TimeLimit,
NodeLimit,
ObjectiveLimit,
SolutionLimit,
WorkLimit,
MemoryLimit,
LocallyInfeasible,
LicenseError,
Interrupted,
NumericError,
NotSolved,
Other(String),
}Expand description
Why a solver stopped, independent of whether a usable point was returned.
Variants§
Optimal
Proven globally optimal.
LocallyOptimal
A local optimum.
Feasible
Stopped with a feasible point, without any optimality claim.
Infeasible
Proven infeasible.
Unbounded
Proven unbounded.
InfeasibleOrUnbounded
Infeasible or unbounded, the backend can’t differentiate.
IterationLimit
Stopped at an iteration limit.
TimeLimit
Stopped at a time limit.
NodeLimit
Stopped at a branch-and-bound node limit.
ObjectiveLimit
Stopped after reaching an objective cutoff or target.
SolutionLimit
Stopped after finding the requested number of solutions.
WorkLimit
Stopped at a solver-defined work limit.
MemoryLimit
Stopped because the solver exhausted its memory limit.
LocallyInfeasible
Converged to a locally infeasible point.
LicenseError
The solver could not run because no usable license was available.
Interrupted
Stopped by a genuine user or external interrupt.
NumericError
The solver hit a numerical problem (singular basis, presolve error, …).
NotSolved
No solve has been attempted yet.
Other(String)
A backend status with no direct mapping. Carries the raw label.
Implementations§
Source§impl TerminationStatus
impl TerminationStatus
Sourcepub fn admits_primal(&self) -> bool
pub fn admits_primal(&self) -> bool
Whether a solver that stopped for this reason may still return a usable
primal point. true for optimality, plain feasibility, and the various
limits (which keep the best incumbent found so far), false for
infeasible/unbounded/error/unsolved states.
Sourcepub fn is_infeasible(&self) -> bool
pub fn is_infeasible(&self) -> bool
Whether this status proves the model infeasible, so a conflict/IIS
diagnosis is meaningful. Treats the ambiguous InfeasibleOrUnbounded
as infeasible.
Trait Implementations§
Source§impl Clone for TerminationStatus
impl Clone for TerminationStatus
Source§fn clone(&self) -> TerminationStatus
fn clone(&self) -> TerminationStatus
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 TerminationStatus
impl Debug for TerminationStatus
impl Eq for TerminationStatus
Source§impl PartialEq for TerminationStatus
impl PartialEq for TerminationStatus
impl StructuralPartialEq for TerminationStatus
Auto Trait Implementations§
impl Freeze for TerminationStatus
impl RefUnwindSafe for TerminationStatus
impl Send for TerminationStatus
impl Sync for TerminationStatus
impl Unpin for TerminationStatus
impl UnsafeUnpin for TerminationStatus
impl UnwindSafe for TerminationStatus
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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