KeysWithOffset

Struct KeysWithOffset 

Source
pub struct KeysWithOffset<T> {
    offset: usize,
    keys: Vec<T>,
}
Expand description

Corresponding variables for a constraint along with the row offset in the solution

Fields§

§offset: usize

Row offset in the solver’s row ordering corresponding to the first key in keys.

This offset is used to index into the solver duals vector when mapping dual values back to the stored keys.

§keys: Vec<T>

Keys for each constraint row. The number of keys equals the number of rows covered starting at offset.

Implementations§

Source§

impl<T> KeysWithOffset<T>

Source

pub fn zip_duals<'a, U>( &'a self, duals: &'a [f64], ) -> impl Iterator<Item = (&'a T, U)>
where U: UnitType,

Zip the keys with the corresponding dual values in the solution, accounting for the offset.

The returned iterator yields pairs of (key, dual) where dual is wrapped in the unit type U: UnitType. The method asserts that the provided duals slice contains at least offset + keys.len() elements.

Auto Trait Implementations§

§

impl<T> Freeze for KeysWithOffset<T>

§

impl<T> RefUnwindSafe for KeysWithOffset<T>
where T: RefUnwindSafe,

§

impl<T> Send for KeysWithOffset<T>
where T: Send,

§

impl<T> Sync for KeysWithOffset<T>
where T: Sync,

§

impl<T> Unpin for KeysWithOffset<T>
where T: Unpin,

§

impl<T> UnwindSafe for KeysWithOffset<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.