pub struct BoundRow {
pub row: usize,
pub var_row: usize,
pub lower: bool,
}Expand description
One bound-multiplier row of the compound KKT vector, resolved to the primal quantity it constrains.
Fields§
§row: usizeRow of the compound KKT vector holding the multiplier.
var_row: usizePrimal KKT row of the quantity that bound constrains: a
row of the x block for a variable bound (z_l / z_u), and
a row of the s block for a constraint’s limit (v_l /
v_u), which bounds the slack rather than a variable.
The field is named for the case it had when only variable
bounds were reported, and below dims[0] the two spaces
coincide, so a var-x reader that never sees a slack row is
still correct. That is not an accident to rely on quietly:
a consumer that indexes a var-x-length vector with this must
first check var_row < dims[0], because a slack row’s value
is a valid index into nothing. Solver::weakly_active_bounds
and step_along_path’s base-activity table both carry that
check explicitly.
lower: booltrue for a lower bound (z_l / v_l), false for an upper
(z_u / v_u). The primal row carries the two with opposite
signs.
Trait Implementations§
impl Copy for BoundRow
impl Eq for BoundRow
impl StructuralPartialEq for BoundRow
Auto Trait Implementations§
impl Freeze for BoundRow
impl RefUnwindSafe for BoundRow
impl Send for BoundRow
impl Sync for BoundRow
impl Unpin for BoundRow
impl UnsafeUnpin for BoundRow
impl UnwindSafe for BoundRow
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