"""
Return True if two domains are equal.
"""
- symbols = self._xsymbols([self, other])
- islset1 = self._toislset(self.polyhedra, symbols)
- islset2 = other._toislset(other.polyhedra, symbols)
- equal = bool(libisl.isl_set_is_equal(islset1, islset2))
- libisl.isl_set_free(islset1)
- libisl.isl_set_free(islset2)
- return equal
+ if isinstance(other, Domain):
+ symbols = self._xsymbols([self, other])
+ islset1 = self._toislset(self.polyhedra, symbols)
+ islset2 = other._toislset(other.polyhedra, symbols)
+ equal = bool(libisl.isl_set_is_equal(islset1, islset2))
+ libisl.isl_set_free(islset1)
+ libisl.isl_set_free(islset2)
+ return equal
+ return NotImplemented
def isdisjoint(self, other):
"""
Return True if two domains have a null intersection.
"""
+ if not isinstance(other, Domain):
+ raise TypeError('other must be a Domain instance')
symbols = self._xsymbols([self, other])
islset1 = self._toislset(self.polyhedra, symbols)
islset2 = self._toislset(other.polyhedra, symbols)
"""
Report whether another domain contains the domain.
"""
- symbols = self._xsymbols([self, other])
- islset1 = self._toislset(self.polyhedra, symbols)
- islset2 = self._toislset(other.polyhedra, symbols)
- equal = bool(libisl.isl_set_is_subset(islset1, islset2))
- libisl.isl_set_free(islset1)
- libisl.isl_set_free(islset2)
- return equal
+ return self < other
def __le__(self, other):
- return self.issubset(other)
+ if isinstance(other, Domain):
+ symbols = self._xsymbols([self, other])
+ islset1 = self._toislset(self.polyhedra, symbols)
+ islset2 = self._toislset(other.polyhedra, symbols)
+ equal = bool(libisl.isl_set_is_subset(islset1, islset2))
+ libisl.isl_set_free(islset1)
+ libisl.isl_set_free(islset2)
+ return equal
+ return NotImplemented
__le__.__doc__ = issubset.__doc__
def __lt__(self, other):
"""
Report whether another domain is contained within the domain.
"""
- symbols = self._xsymbols([self, other])
- islset1 = self._toislset(self.polyhedra, symbols)
- islset2 = self._toislset(other.polyhedra, symbols)
- equal = bool(libisl.isl_set_is_strict_subset(islset1, islset2))
- libisl.isl_set_free(islset1)
- libisl.isl_set_free(islset2)
- return equal
+ if isinstance(other, Domain):
+ symbols = self._xsymbols([self, other])
+ islset1 = self._toislset(self.polyhedra, symbols)
+ islset2 = self._toislset(other.polyhedra, symbols)
+ equal = bool(libisl.isl_set_is_strict_subset(islset1, islset2))
+ libisl.isl_set_free(islset1)
+ libisl.isl_set_free(islset2)
+ return equal
+ return NotImplemented
def complement(self):
"""