author Vivien Maisonneuve Tue, 19 Aug 2014 14:09:09 +0000 (16:09 +0200) committer Vivien Maisonneuve Tue, 19 Aug 2014 14:09:09 +0000 (16:09 +0200)
 doc/reference.rst patch | blob | history linpy/polyhedra.py patch | blob | history

index 83ee9d3..5c8da90 100644 (file)
@@ -284,6 +284,10 @@ This space can be unbounded.

Return the convex union of two or more polyhedra.

+    .. method:: asinequalities()
+
+        Express the polyhedron using inequalities, given as a list of expressions greater or equal to 0.
+
.. method:: widen(polyhedron)

Compute the *standard widening* of two polyhedra, à la Halbwachs.
index 50af053..b88cfd1 100644 (file)
@@ -173,7 +173,11 @@ class Polyhedron(Domain):
for inequality in self.inequalities]
return Polyhedron(equalities, inequalities)

-    def _asinequalities(self):
+    def asinequalities(self):
+        """
+        Express the polyhedron using inequalities, given as a list of
+        expressions greater or equal to 0.
+        """
inequalities = list(self.equalities)
inequalities.extend([-expression for expression in self.equalities])
inequalities.extend(self.inequalities)
@@ -188,8 +192,8 @@ class Polyhedron(Domain):
"""
if not isinstance(other, Polyhedron):
raise TypeError('argument must be a Polyhedron instance')
-        inequalities1 = self._asinequalities()
-        inequalities2 = other._asinequalities()
+        inequalities1 = self.asinequalities()
+        inequalities2 = other.asinequalities()
inequalities = []
for inequality1 in inequalities1:
if other <= Polyhedron(inequalities=[inequality1]):