X-Git-Url: https://svn.cri.ensmp.fr/git/linpy.git/blobdiff_plain/4ae512f39c14835badbfab6fc1ce877f601d104e..e27fd6a18fd36b8ec81f37cd800399703bf7ef4f:/pypol/domains.py?ds=sidebyside diff --git a/pypol/domains.py b/pypol/domains.py index c844e55..6060dc9 100644 --- a/pypol/domains.py +++ b/pypol/domains.py @@ -5,7 +5,7 @@ import re from . import islhelper from .islhelper import mainctx, libisl, isl_set_basic_sets -from .linexprs import Expression +from .linexprs import Expression, Symbol, symbolnames __all__ = [ @@ -154,6 +154,7 @@ class Domain: def project_out(self, symbols): # use to remove certain variables + symbols = symbolnames(symbols) islset = self._toislset(self.polyhedra, self.symbols) # the trick is to walk symbols in reverse order, to avoid index updates for index, symbol in reversed(list(enumerate(self.symbols))): @@ -240,6 +241,7 @@ class Domain: self._dimension = len(self._symbols) return self + @classmethod def _toislset(cls, polyhedra, symbols): polyhedron = polyhedra[0] islbset = polyhedron._toislbasicset(polyhedron.equalities, @@ -336,6 +338,7 @@ class Domain: def tosympy(self): raise NotImplementedError + def And(*domains): if len(domains) == 0: from .polyhedra import Universe