pub struct ComplementarityInfo {
pub strategy: String,
pub accepted_by: Option<String>,
pub fallback: Option<String>,
pub reported: String,
pub summary: String,
pub solves: Vec<ComplementaritySolveInfo>,
pub total_iterations: usize,
pub max_abs_product: Option<f64>,
pub certificate: Option<ComplementarityCertificateInfo>,
pub b_stationarity: Option<ComplementarityBStationarityInfo>,
pub escapes: usize,
}Expand description
The complementarity driver’s record: which formulation answered, every
lowered solve it ran, and the stationarity certificate of the reported
point. Keyed like Python’s info["complementarity"].
statistics.iteration_count is the iteration count of the one lowered
solve whose point was reported; the driver runs several, and
Self::total_iterations is what the solve cost — the same honesty rule
as SecondOpinionInfo::total_iteration_count.
Fields§
§strategy: Stringcomplementarity_strategy: both, exact or continuation.
accepted_by: Option<String>The formulation whose strongly stationary answer was reported, or
None when no formulation answered.
fallback: Option<String>The formulation whose weakly stationary point was reported when no formulation answered, if that is what was reported.
reported: StringWhat was reported and on what grounds: answer, weak_fallback,
feasible_uncertified or verdict.
summary: StringThe driver’s one-line account, as printed on the console.
solves: Vec<ComplementaritySolveInfo>Every lowered solve, in order.
total_iterations: usizeIterations summed over every lowered solve.
max_abs_product: Option<f64>The reported point’s complementarity violation – the largest |G·H|
over one-sided pairs, the largest positive part of a mixed pair’s
products – or null when it has no point (a solve refused before
iteration 0).
certificate: Option<ComplementarityCertificateInfo>The stationarity certificate of the reported point; None only if the
model could not be evaluated there.
b_stationarity: Option<ComplementarityBStationarityInfo>The B-stationarity check of the reported point: run when it is
feasible and not certified S (S implies B). None when it did not
run. Additive; older reports without the field deserialize unchanged.
escapes: usizeBranch NLPs that moved the reported point off a non-B-stationary
one. Additive; reads 0 on reports written before the field existed.
Trait Implementations§
Source§impl Clone for ComplementarityInfo
impl Clone for ComplementarityInfo
Source§fn clone(&self) -> ComplementarityInfo
fn clone(&self) -> ComplementarityInfo
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 ComplementarityInfo
impl Debug for ComplementarityInfo
Source§impl<'de> Deserialize<'de> for ComplementarityInfo
impl<'de> Deserialize<'de> for ComplementarityInfo
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ComplementarityInfo, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ComplementarityInfo, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for ComplementarityInfo
impl Serialize for ComplementarityInfo
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 ComplementarityInfo
impl RefUnwindSafe for ComplementarityInfo
impl Send for ComplementarityInfo
impl Sync for ComplementarityInfo
impl Unpin for ComplementarityInfo
impl UnsafeUnpin for ComplementarityInfo
impl UnwindSafe for ComplementarityInfo
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