def drop_dims(self, dims):
# use to remove certain variables use isl_set_drop_constraints_involving_dims instead?
- from .polyhedra import Polyhedron
+ from .polyhedra import Polyhedron
dims = list(dims)
symbols = list(self.symbols)
+ print(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)
+ first = symbols.index(dim)
+ islbset = libisl.isl_set_project_out(islset, libisl.isl_dim_set, first, 1)
+ symbols.__delitem__(first)
+ else:
+ islbset = libisl.isl_set_project_out(islset, libisl.isl_dim_set, 0, 0)
+ return Polyhedron._fromislset(islbset, symbols)
def sample(self):
from .polyhedra import Polyhedron