projects
/
linpy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Raise TypeError if Polyhedron.widen() is called on a non-polyhedral argument
[linpy.git]
/
linpy
/
polyhedra.py
diff --git
a/linpy/polyhedra.py
b/linpy/polyhedra.py
index
8426d32
..
e5e2523
100644
(file)
--- a/
linpy/polyhedra.py
+++ b/
linpy/polyhedra.py
@@
-173,9
+173,12
@@
class Polyhedron(Domain):
def widen(self, other):
"""
Compute the standard widening of two polyhedra, à la Halbwachs.
def widen(self, other):
"""
Compute the standard widening of two polyhedra, à la Halbwachs.
+
+ In its current implementation, this method is slow and should not be
+ used on large polyhedra.
"""
if not isinstance(other, Polyhedron):
"""
if not isinstance(other, Polyhedron):
- raise
Valu
eError('argument must be a Polyhedron instance')
+ raise
Typ
eError('argument must be a Polyhedron instance')
inequalities1 = self._asinequalities()
inequalities2 = other._asinequalities()
inequalities = []
inequalities1 = self._asinequalities()
inequalities2 = other._asinequalities()
inequalities = []
@@
-303,8
+306,6
@@
class EmptyType(Polyhedron):
The empty polyhedron, whose set of constraints is not satisfiable.
"""
The empty polyhedron, whose set of constraints is not satisfiable.
"""
- __slots__ = Polyhedron.__slots__
-
def __new__(cls):
self = object().__new__(cls)
self._equalities = (Rational(1),)
def __new__(cls):
self = object().__new__(cls)
self._equalities = (Rational(1),)
@@
-333,8
+334,6
@@
class UniverseType(Polyhedron):
i.e. is empty.
"""
i.e. is empty.
"""
- __slots__ = Polyhedron.__slots__
-
def __new__(cls):
self = object().__new__(cls)
self._equalities = ()
def __new__(cls):
self = object().__new__(cls)
self._equalities = ()
@@
-400,15
+399,15
@@
def Ne(left, right):
return ~Eq(left, right)
@_polymorphic
return ~Eq(left, right)
@_polymorphic
-def G
t
(left, right):
+def G
e
(left, right):
"""
"""
- Create the polyhedron with constraints expr1 >
expr2 >
expr3 ...
+ Create the polyhedron with constraints expr1 >
= expr2 >=
expr3 ...
"""
"""
- return Polyhedron([], [left - right
- 1
])
+ return Polyhedron([], [left - right])
@_polymorphic
@_polymorphic
-def G
e
(left, right):
+def G
t
(left, right):
"""
"""
- Create the polyhedron with constraints expr1 >
= expr2 >=
expr3 ...
+ Create the polyhedron with constraints expr1 >
expr2 >
expr3 ...
"""
"""
- return Polyhedron([], [left - right])
+ return Polyhedron([], [left - right
- 1
])