Struct Constraint

Source
pub struct Constraint {
    pub coefficients: Vec<Coefficient>,
    pub bias: Bound,
}
Expand description

Represents a linear constraint in the form: sum(coeff_i * var_i) + bias >= 0.

Fields§

§coefficients: Vec<Coefficient>

Vector of (variable_name, coefficient) pairs

§bias: Bound

Bias/constant term with potential bounds

Implementations§

Source§

impl Constraint

Source

pub fn dot(&self, values: &IndexMap<String, Bound>) -> Bound

Computes the dot product of the constraint coefficients with variable bounds.

This calculates the range of possible values for the linear combination of variables in this constraint, excluding the bias term.

§Arguments
  • values - Map of variable names to their bounds
§Returns

A bound representing the min and max possible values of the dot product

Source

pub fn evaluate(&self, values: &IndexMap<String, Bound>) -> Bound

Evaluates the constraint against variable bounds.

Computes whether the constraint (dot product + bias >= 0) is satisfied for the given variable bounds.

§Arguments
  • values - Map of variable names to their bounds
§Returns

A bound where:

  • .0 is 1 if the constraint is satisfied with lower bounds, 0 otherwise
  • .1 is 1 if the constraint is satisfied with upper bounds, 0 otherwise
Source

pub fn negate(&self) -> Constraint

Creates the negation of this constraint.

Transforms the constraint from (ax + b >= 0) to (-ax - b - 1 >= 0), which is equivalent to (ax + b < 0).

§Returns

A new Constraint representing the negation of this constraint

Auto Trait Implementations§

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.