From: Vivien Maisonneuve Date: Tue, 19 Aug 2014 14:32:38 +0000 (+0200) Subject: Cleaner implementation of Domain.__sub__() X-Git-Tag: 1.0~32 X-Git-Url: https://scm.cri.ensmp.fr/git/linpy.git/commitdiff_plain/62fbaa7984d8035cccc97555f1de3188e280e475?ds=inline;hp=3c9e6c7cd0631426b79a28c9b15f8d40e01cec4c Cleaner implementation of Domain.__sub__() --- diff --git a/linpy/domains.py b/linpy/domains.py index 57c08ba..9fdc7d5 100644 --- a/linpy/domains.py +++ b/linpy/domains.py @@ -363,14 +363,16 @@ class Domain(GeometricObject): """ Return the difference of two domains as a new domain. """ - symbols = self._xsymbols([self, other]) - islset1 = self._toislset(self.polyhedra, symbols) - islset2 = other._toislset(other.polyhedra, symbols) - islset = libisl.isl_set_subtract(islset1, islset2) - return self._fromislset(islset, symbols) + return self - other def __sub__(self, other): - return self.difference(other) + if isinstance(other, Domain): + symbols = self._xsymbols([self, other]) + islset1 = self._toislset(self.polyhedra, symbols) + islset2 = other._toislset(other.polyhedra, symbols) + islset = libisl.isl_set_subtract(islset1, islset2) + return self._fromislset(islset, symbols) + return NotImplemented __sub__.__doc__ = difference.__doc__ def lexmin(self):