X-Git-Url: https://scm.cri.ensmp.fr/git/linpy.git/blobdiff_plain/ba15f3f33f837b1291f74bc94081e99b860d3228..1551132d8878c3cec4609ec9b47cb30f72df5350:/doc/reference.rst diff --git a/doc/reference.rst b/doc/reference.rst index e0efdde..ae82aca 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -1,7 +1,12 @@ +.. _reference: + Module Reference ================ + +.. _reference_symbols: + Symbols ------- @@ -67,6 +72,8 @@ This is achieved using ``Dummy('x')``. True +.. _reference_linexprs: + Linear Expressions ------------------ @@ -172,7 +179,6 @@ For example, if ``x`` is a :class:`Symbol`, then ``x + 1`` is an instance of :cl >>> x < y Le(x - y + 1, 0) - .. method:: scaleint() Return the expression multiplied by its lowest common denominator to make all values integer. @@ -203,7 +209,7 @@ For example, if ``x`` is a :class:`Symbol`, then ``x + 1`` is an instance of :cl .. classmethod:: fromsympy(expr) Create a linear expression from a :mod:`sympy` expression. - Raise :exc:`ValueError` is the :mod:`sympy` expression is not linear. + Raise :exc:`TypeError` is the :mod:`sympy` expression is not linear. .. method:: tosympy() @@ -227,6 +233,9 @@ They are implemented by the :class:`Rational` class, that inherits from both :cl See the documentation of :class:`fractions.Fraction` for more information and examples. + +.. _reference_polyhedra: + Polyhedra --------- @@ -278,10 +287,20 @@ This space can be unbounded. The tuple of constraints, i.e., equalities and inequalities. This is semantically equivalent to: ``equalities + inequalities``. + .. method:: convex_union(polyhedron[, ...]) + + 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. + In its current implementation, this method is slow and should not be used on large polyhedra. + .. data:: Empty @@ -291,11 +310,14 @@ This space can be unbounded. The universe polyhedron, whose set of constraints is always satisfiable, i.e. is empty. + +.. _reference_domains: + Domains ------- A *domain* is a union of polyhedra. -Unlike polyhedra, domains allow exact computation of union and complementary operations. +Unlike polyhedra, domains allow exact computation of union, subtraction and complementary operations. .. class:: Domain(*polyhedra) Domain(string) @@ -473,6 +495,8 @@ Unlike polyhedra, domains allow exact computation of union and complementary ope Convert the domain to a sympy expression. +.. _reference_operators: + Comparison and Logic Operators ------------------------------ @@ -493,7 +517,7 @@ The following functions create :class:`Polyhedron` or :class:`Domain` instances .. function:: Ne(expr1, expr2[, expr3, ...]) Create the domain such that ``expr1 != expr2 != expr3 ...``. - The result is a :class:`Domain`, not a :class:`Polyhedron`. + The result is a :class:`Domain` object, not a :class:`Polyhedron`. .. function:: Ge(expr1, expr2[, expr3, ...]) @@ -505,19 +529,21 @@ The following functions create :class:`Polyhedron` or :class:`Domain` instances The following functions combine :class:`Polyhedron` or :class:`Domain` instances using logic operators: -.. function:: Or(domain1, domain2[, ...]) - - Create the union domain of the domains given in arguments. - .. function:: And(domain1, domain2[, ...]) Create the intersection domain of the domains given in arguments. +.. function:: Or(domain1, domain2[, ...]) + + Create the union domain of the domains given in arguments. + .. function:: Not(domain) Create the complementary domain of the domain given in argument. +.. _reference_geometry: + Geometric Objects ----------------- @@ -677,7 +703,7 @@ Geometric Objects .. method:: cross(vector) Compute the cross product of two 3D vectors. - If either one of the vectors is not tridimensional, a :exc:`ValueError` exception is raised. + If either one of the vectors is not three-dimensional, a :exc:`ValueError` exception is raised. .. method:: dot(vector)