+# Copyright 2014 MINES ParisTech
+#
+# This file is part of Linpy.
+#
+# Linpy is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Linpy is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Linpy. If not, see <http://www.gnu.org/licenses/>.
+
import ast
import functools
import re
islset = libisl.isl_set_lexmax(islset)
return self._fromislset(islset, self.symbols)
- def num_parameters(self):
- """
- Return the total number of parameters, input, output or set dimensions.
- """
- islbset = self._toislbasicset(self.equalities, self.inequalities, self.symbols)
- num = libisl.isl_basic_set_dim(islbset, libisl.isl_dim_set)
- return num
- def involves_dims(self, dims):
+ def involves_vars(self, vars):
"""
- Returns true if set depends on given dimensions.
+ Returns true if a set depends on given dimensions.
"""
islset = self._toislset(self.polyhedra, self.symbols)
- dims = sorted(dims)
+ dims = sorted(vars)
symbols = sorted(list(self.symbols))
n = 0
if len(dims)>0:
Return a list of vertices for this Polygon.
"""
from .polyhedra import Polyhedron
+ if not self.isbounded():
+ raise ValueError('domain must be bounded')
islbset = self._toislbasicset(self.equalities, self.inequalities, self.symbols)
vertices = libisl.isl_basic_set_compute_vertices(islbset);
vertices = islhelper.isl_vertices_vertices(vertices)
return sorted(points, key=angles.get)
def faces(self):
+ """
+ Returns the vertices of the faces of a polyhedra.
+ """
faces = []
for polyhedron in self.polyhedra:
vertices = polyhedron.vertices()
axes.set_zlim(zmin, zmax)
return axes
+
def plot(self, plot=None, **kwargs):
"""
Display plot of this set.
return False
def subs(self, symbol, expression=None):
+ """
+ Subsitute the given value into an expression and return the resulting
+ expression.
+ """
polyhedra = [polyhedron.subs(symbol, expression)
for polyhedron in self.polyhedra]
return Domain(*polyhedra)