pub struct DensePolyhedron {
pub A: DenseIntegerMatrix,
pub b: Vec<i64>,
pub columns: Vec<String>,
pub integer_columns: Vec<String>,
}
Expand description
Dense representation of a polyhedron defined by linear constraints.
Represents the constraint system Ax >= b where:
- A is the constraint matrix
- b is the right-hand side vector
- columns maps matrix columns to variable names
Fields§
§A: DenseIntegerMatrix
Constraint matrix A
b: Vec<i64>
Right-hand side vector b
columns: Vec<String>
Variable names corresponding to matrix columns
integer_columns: Vec<String>
Subset of columns that represent integer variables
Implementations§
Source§impl DensePolyhedron
impl DensePolyhedron
Sourcepub fn assume(&self, values: &HashMap<String, i64>) -> DensePolyhedron
pub fn assume(&self, values: &HashMap<String, i64>) -> DensePolyhedron
Creates a new polyhedron by fixing certain variables to specific values.
This operation eliminates the specified variables from the polyhedron by substituting their fixed values into the constraints and removing their columns.
§Arguments
values
- Map of variable names to their fixed values
§Returns
A new DensePolyhedron
with the specified variables eliminated
Sourcepub fn evaluate(&self, assignments: &IndexMap<String, Bound>) -> Bound
pub fn evaluate(&self, assignments: &IndexMap<String, Bound>) -> Bound
Evaluates the polyhedron constraints against variable bounds.
Tests whether the lower and upper bounds of the given variables satisfy all constraints in the polyhedron.
§Arguments
assignments
- Map of variable names to their bounds (min, max)
§Returns
A bound where:
- .0 is 1 if lower bounds satisfy all constraints, 0 otherwise
- .1 is 1 if upper bounds satisfy all constraints, 0 otherwise
Trait Implementations§
Source§impl From<DensePolyhedron> for SparsePolyhedron
impl From<DensePolyhedron> for SparsePolyhedron
Source§fn from(dense: DensePolyhedron) -> SparsePolyhedron
fn from(dense: DensePolyhedron) -> SparsePolyhedron
Converts to this type from the input type.
Source§impl From<SparsePolyhedron> for DensePolyhedron
impl From<SparsePolyhedron> for DensePolyhedron
Source§fn from(sparse: SparsePolyhedron) -> DensePolyhedron
fn from(sparse: SparsePolyhedron) -> DensePolyhedron
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for DensePolyhedron
impl RefUnwindSafe for DensePolyhedron
impl Send for DensePolyhedron
impl Sync for DensePolyhedron
impl Unpin for DensePolyhedron
impl UnwindSafe for DensePolyhedron
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> 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