From: Vivien Maisonneuve
Date: Tue, 19 Aug 2014 14:09:09 +0000 (+0200)
Subject: Add method Polyhedron.asinequalities()
X-Git-Tag: 1.0~37
X-Git-Url: https://scm.cri.ensmp.fr/git/linpy.git/commitdiff_plain/b4f536e238161d59db61f4bb5fc6e87d4b7baffe
Add method Polyhedron.asinequalities()
---
diff --git a/doc/reference.rst b/doc/reference.rst
index 83ee9d3..5c8da90 100644
--- a/doc/reference.rst
+++ b/doc/reference.rst
@@ -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.
diff --git a/linpy/polyhedra.py b/linpy/polyhedra.py
index 50af053..b88cfd1 100644
--- a/linpy/polyhedra.py
+++ b/linpy/polyhedra.py
@@ -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]):