pub enum IntExp<Identifier> {
Show 17 variants
Const(IntVal),
Var(VarRef<Identifier>),
Neg(Box<IntExp<Identifier>>),
Abs(Box<IntExp<Identifier>>),
Add(Vec<IntExp<Identifier>>),
Sub(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>),
Mul(Vec<IntExp<Identifier>>),
Div(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>),
Mod(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>),
Sqr(Box<IntExp<Identifier>>),
Pow(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>),
Min(Vec<Exp<Identifier>>),
Max(Vec<Exp<Identifier>>),
Dist(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>),
If(BoolExp<Identifier>, Box<IntExp<Identifier>>, Box<IntExp<Identifier>>),
Bool(BoolExp<Identifier>),
Card(Box<SetExp<Identifier>>),
}Expand description
Expression resulting in an integer value or decision variable
Variants§
Const(IntVal)
Constant integer value
Var(VarRef<Identifier>)
Reference to a variable or array access
Neg(Box<IntExp<Identifier>>)
Oposite (i.e., -x)
Abs(Box<IntExp<Identifier>>)
Absolute value (i.e., |x|)
Add(Vec<IntExp<Identifier>>)
Addition (i.e., x1 + … + xn)
Sub(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>)
Subtraction (i.e., x - y)
Mul(Vec<IntExp<Identifier>>)
Multiplication (i.e., x1 ∗ … ∗ xn)
Div(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>)
Division (i.e., x / y)
Mod(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>)
Remainder (i.e., x % y)
Sqr(Box<IntExp<Identifier>>)
Square (i.e., x^2)
Pow(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>)
Power (i.e., x^y)
Min(Vec<Exp<Identifier>>)
Minimum (i.e., min{x1, …, xn})
Max(Vec<Exp<Identifier>>)
Maximum (i.e., max{x1, …, xn})
Dist(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>)
Distance (i.e., |x - y|)
If(BoolExp<Identifier>, Box<IntExp<Identifier>>, Box<IntExp<Identifier>>)
Alternative (i.e., value of x, if b is true, value of y, otherwise)
Bool(BoolExp<Identifier>)
Boolean expression used as an integer expression
Card(Box<SetExp<Identifier>>)
Cardinality (i.e., |s|)
Trait Implementations§
Source§impl<'de, Identifier: FromStr> Deserialize<'de> for IntExp<Identifier>
impl<'de, Identifier: FromStr> Deserialize<'de> for IntExp<Identifier>
Source§fn deserialize<D: Deserializer<'de>>(
deserializer: D,
) -> Result<IntExp<Identifier>, D::Error>
fn deserialize<D: Deserializer<'de>>( deserializer: D, ) -> Result<IntExp<Identifier>, D::Error>
Deserialize this value from the given Serde deserializer. Read more
impl<Identifier> StructuralPartialEq for IntExp<Identifier>
Auto Trait Implementations§
impl<Identifier> Freeze for IntExp<Identifier>where
Identifier: Freeze,
impl<Identifier> RefUnwindSafe for IntExp<Identifier>where
Identifier: RefUnwindSafe,
impl<Identifier> Send for IntExp<Identifier>where
Identifier: Send,
impl<Identifier> Sync for IntExp<Identifier>where
Identifier: Sync,
impl<Identifier> Unpin for IntExp<Identifier>where
Identifier: Unpin,
impl<Identifier> UnwindSafe for IntExp<Identifier>where
Identifier: UnwindSafe,
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