Iterate over the coefficient values in the expression, and the constant
term.
"""
- for coefficient in self._coefficients.values():
- yield coefficient
+ yield from self._coefficients.values()
yield self._constant
def __bool__(self):
"""
Test whether two linear expressions are equal.
"""
- return isinstance(other, LinExpr) and \
- self._coefficients == other._coefficients and \
- self._constant == other._constant
+ if isinstance(other, LinExpr):
+ return self._coefficients == other._coefficients and \
+ self._constant == other._constant
+ return NotImplemented
def __le__(self, other):
from .polyhedra import Le
Return the expression multiplied by its lowest common denominator to
make all values integer.
"""
- lcm = functools.reduce(lambda a, b: a*b // gcd(a, b),
+ lcd = functools.reduce(lambda a, b: a*b // gcd(a, b),
[value.denominator for value in self.values()])
- return self * lcm
+ return self * lcd
def subs(self, symbol, expression=None):
"""
return True
def __eq__(self, other):
- return self.sortkey() == other.sortkey()
+ if isinstance(other, Symbol):
+ return self.sortkey() == other.sortkey()
+ return NotImplemented
def asdummy(self):
"""