pub struct ModelMaps {
pub n_full_x: usize,
pub var_x_to_full_x: Vec<usize>,
pub full_g_to_c: Vec<Option<usize>>,
pub full_g_to_d: Vec<Option<usize>>,
}Expand description
How an engine’s variables and rows correspond to the model’s.
An engine may drop variables whose bounds coincide, and it splits the
model’s rows into equality rows, the y_c block, and inequality rows, the
s and y_d blocks, so neither numbering is the model’s. Every result a
caller reads in the model’s indices goes through these maps.
Fields§
§n_full_x: usizeThe number of variables the model declares, counting any the engine removed because their bounds coincide.
var_x_to_full_x: Vec<usize>The model’s index of each variable the engine kept.
full_g_to_c: Vec<Option<usize>>For each of the model’s rows, its position among the equality rows,
or None for an inequality row.
full_g_to_d: Vec<Option<usize>>For each of the model’s rows, its position among the inequality rows,
or None for an equality row.
Implementations§
Trait Implementations§
impl StructuralPartialEq for ModelMaps
Auto Trait Implementations§
impl Freeze for ModelMaps
impl RefUnwindSafe for ModelMaps
impl Send for ModelMaps
impl Sync for ModelMaps
impl Unpin for ModelMaps
impl UnsafeUnpin for ModelMaps
impl UnwindSafe for ModelMaps
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
Mutably borrows from an owned value. Read more
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> ⓘ
Converts
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> ⓘ
Converts
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