def __hash__(self):
return hash((self._coefficients, self._constant))
- def _canonify(self):
+ def _toint(self):
lcm = functools.reduce(lambda a, b: a*b // gcd(a, b),
[value.denominator for value in self.values()])
return self * lcm
@_polymorphic_method
def _eq(self, other):
- return Polyhedron(equalities=[(self - other)._canonify()])
+ return Polyhedron(equalities=[(self - other)._toint()])
@_polymorphic_method
def __le__(self, other):
- return Polyhedron(inequalities=[(other - self)._canonify()])
+ return Polyhedron(inequalities=[(other - self)._toint()])
@_polymorphic_method
def __lt__(self, other):
- return Polyhedron(inequalities=[(other - self)._canonify() - 1])
+ return Polyhedron(inequalities=[(other - self)._toint() - 1])
@_polymorphic_method
def __ge__(self, other):
- return Polyhedron(inequalities=[(self - other)._canonify()])
+ return Polyhedron(inequalities=[(self - other)._toint()])
@_polymorphic_method
def __gt__(self, other):
- return Polyhedron(inequalities=[(self - other)._canonify() - 1])
+ return Polyhedron(inequalities=[(self - other)._toint() - 1])
def constant(numerator=0, denominator=None):