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.mines-paristech.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]):