From b4f536e238161d59db61f4bb5fc6e87d4b7baffe Mon Sep 17 00:00:00 2001 From: Vivien Maisonneuve Date: Tue, 19 Aug 2014 16:09:09 +0200 Subject: [PATCH] Add method Polyhedron.asinequalities() --- doc/reference.rst | 4 ++++ linpy/polyhedra.py | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) 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]): -- 2.20.1