pub struct WatchedRow {
pub coefficients: Vec<(usize, f64)>,
pub limit: f64,
pub base_value: f64,
pub active: Option<(usize, f64)>,
}Expand description
One watched limit: a sparse row Σ coef·x[col] ≤ limit, and the
KKT row of its multiplier when the base system already enforces it.
Fields§
§coefficients: Vec<(usize, f64)>The row’s nonzeros as (column, coefficient), in the x
block’s index space.
limit: f64The row’s right-hand side, which becomes the observer’s upper
bound. A row written ≥ must be negated by the caller before
it gets here; this type is one-sided on purpose, because a
two-sided row is two watched rows and pretending otherwise
hides which side a breakpoint belongs to.
base_value: f64The value of Σ coef·x[col] at the base point.
active: Option<(usize, f64)>Some((multiplier_row, base_multiplier)) when the base system
carries this row in its active set, where multiplier_row is
in the base index space. None for an inactive row, which
the walk can then only reach and hold, never release.
Trait Implementations§
Source§impl Clone for WatchedRow
impl Clone for WatchedRow
Source§fn clone(&self) -> WatchedRow
fn clone(&self) -> WatchedRow
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for WatchedRow
impl RefUnwindSafe for WatchedRow
impl Send for WatchedRow
impl Sync for WatchedRow
impl Unpin for WatchedRow
impl UnsafeUnpin for WatchedRow
impl UnwindSafe for WatchedRow
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,
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