- def project(self, symbols):
- # not sure what isl_set_project_out actually does…
- # use isl_set_drop_constraints_involving_dims instead?
- raise NotImplementedError
-
+ def drop_dims(self, dims):
+ # use to remove certain variables use isl_set_drop_constraints_involving_dims instead?
+ from .polyhedra import Polyhedron
+ dims = list(dims)
+ symbols = list(self.symbols)
+ islset = self._toislset(self.polyhedra, self.symbols)
+ for dim in dims:
+ if dim in symbols:
+ num = symbols.index(dim)
+ islbset = libisl.isl_set_drop_constraints_involving_dims(islset, libisl.isl_dim_set, num, 1)
+ return Polyhedron._fromislset(islbset, self.symbols)
+