]> CRI, Mines Paris - PSL - linpy.git/commitdiff
Cleaner implementation of Domain.__sub__()
authorVivien Maisonneuve <v.maisonneuve@gmail.com>
Tue, 19 Aug 2014 14:32:38 +0000 (16:32 +0200)
committerVivien Maisonneuve <v.maisonneuve@gmail.com>
Tue, 19 Aug 2014 14:32:38 +0000 (16:32 +0200)
linpy/domains.py

index 57c08ba44bd8bcbad2cbc2dc86c2d84d30b5a166..9fdc7d5a3af5ae1ca2bb159bf01f35d45845b768 100644 (file)
@@ -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):