From 997e3c68590b274c372a6785cda5a69887683891 Mon Sep 17 00:00:00 2001 From: Danielle Bolan Date: Fri, 8 Aug 2014 17:47:55 +0200 Subject: [PATCH 1/1] Update plot examples --- doc/domain.rst | 15 +-------------- doc/examples.rst | 31 +++++++++++++++++++++++++++---- doc/images/union.jpg | Bin 0 -> 24624 bytes doc/linexpr.rst | 6 ++++++ doc/polyhedra.rst | 4 +--- 5 files changed, 35 insertions(+), 21 deletions(-) create mode 100644 doc/images/union.jpg diff --git a/doc/domain.rst b/doc/domain.rst index 4cd79d9..edf8934 100644 --- a/doc/domain.rst +++ b/doc/domain.rst @@ -3,8 +3,6 @@ Domains Module .. py:class :: Domain - The properties of a domain can be are found using the following - .. py:method:: symbols Returns a tuple of the symbols that exsist in a domain. @@ -21,8 +19,6 @@ Domains Module Returns ``True`` if a domain depends on the given dimensions. - The unary properties of a domain can be inspected using the following methods. - .. py:method:: isempty(self) Return ``True`` is a domain is empty. @@ -39,8 +35,6 @@ Domains Module It is not guarenteed that a domain is disjoint. If it is necessary, this method will return a domain as disjoint. - The following methods compare two domains to find the binary properties. - .. py:method:: isdisjoint(self, other) Return ``True`` if the intersection of *self* and *other* results in an empty set. @@ -74,9 +68,6 @@ Domains Module Test whether every element in *other* is in a domain. - - The following methods implement unary operations on a domain. - .. py:method:: complement(self) ¬self @@ -98,8 +89,6 @@ Domains Module Return a single sample subset of a domain. - The following methods implement binary operations on two domains. - .. py:method:: intersection(self, other) self | other @@ -120,8 +109,6 @@ Domains Module Return the sum of two domains. - The following methods use lexicographical ordering to find the maximum or minimum element in a domain. - .. py:method:: lexmin(self) Return a new set containing the lexicographic minimum of the elements in the set. @@ -131,7 +118,7 @@ Domains Module Return a new set containing the lexicographic maximum of the elements in the set. - A 2D or 3D domain can be plotted using the :meth:`plot` function. The points, verticies, and faces of a domain can be inspected using the following functions. +A 2D or 3D domain can be plotted using the :meth:`plot` function. The points, verticies, and faces of a domain can be inspected using the following functions. .. py:method:: points(self) diff --git a/doc/examples.rst b/doc/examples.rst index 62a7dfd..13c59fc 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -18,16 +18,16 @@ Basic Examples >>> #test equality >>> square1 == square2 False - >>> # find the union of two polygons - >>> square1 + square2 + >>> # compute the union of two polygons + >>> square1 | square2 Or(And(Ge(x, 0), Ge(-x + 2, 0), Ge(y, 0), Ge(-y + 2, 0)), And(Ge(x - 2, 0), Ge(-x + 4, 0), Ge(y - 2, 0), Ge(-y + 4, 0))) >>> # check if square1 and square2 are disjoint >>> square1.disjoint(square2) False - >>> # find the intersection of two polygons + >>> # compute the intersection of two polygons >>> square1 & square2 And(Eq(y - 2, 0), Eq(x - 2, 0)) - >>> # find the convex union of two polygons + >>> # compute the convex union of two polygons >>> Polyhedron(square1 | sqaure2) And(Ge(x, 0), Ge(-x + 4, 0), Ge(y, 0), Ge(-y + 4, 0), Ge(x - y + 2, 0), Ge(-x + y + 2, 0)) @@ -39,6 +39,7 @@ Basic Examples (x, y) >>> square1.inequalities (x, -x + 2, y, -y + 2) + >>> # project out the variable x >>> square1.project([x]) And(Ge(-y + 2, 0), Ge(y, 0)) @@ -70,4 +71,26 @@ Plot Examples [Point({x: Fraction(0, 1), y: Fraction(1, 1)}), Point({x: Fraction(-1, 1), y: Fraction(0, 1)}), Point({x: Fraction(1, 1), y: Fraction(0, 1)}), Point({x: Fraction(0, 1), y: Fraction(-1, 1)})] >>> diamond.points() [Point({x: -1, y: 0}), Point({x: 0, y: -1}), Point({x: 0, y: 0}), Point({x: 0, y: 1}), Point({x: 1, y: 0})] + + The user also can pass another plot to the :meth:`plot` method. This can be useful to compare two polyhedrons on the same axis. This example illustrates the union of two squares. + + >>> from linpy import * + >>> import matplotlib.pyplot as plt + >>> from matplotlib import pylab + >>> x, y = symbols('x y') + >>> square1 = Le(0, x) & Le(x, 2) & Le(0, y) & Le(y, 2) + >>> square2 = Le(1, x) & Le(x, 3) & Le(1, y) & Le(y, 3) + >>> fig = plt.figure() + >>> plot = fig.add_subplot(1, 1, 1, aspect='equal') + >>> square1.plot(plot, facecolor='red', alpha=0.3) + >>> square2.plot(plot, facecolor='blue', alpha=0.3) + >>> squares = Polyhedron(square1 + square2) + >>> squares.plot(plot, facecolor='blue', alpha=0.3) + >>> pylab.show() + + .. figure:: images/union.jpg + :align: center + + + diff --git a/doc/images/union.jpg b/doc/images/union.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7d14ae8e22e6f46e425b1d79fc75a275743794e6 GIT binary patch literal 24624 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 b&!Ls0zOv#ZsmTD&OVfJ&i^vuTy8nLxur$`D literal 0 HcmV?d00001 diff --git a/doc/linexpr.rst b/doc/linexpr.rst index 4101252..2aab652 100644 --- a/doc/linexpr.rst +++ b/doc/linexpr.rst @@ -3,6 +3,9 @@ Linear Expression Module This class implements linear expressions. +.. py:class:: Expression + + .. py:method:: coefficient(self, symbol) Return the coefficient value of the given symbol. @@ -38,6 +41,9 @@ This class implements linear expressions. .. py:method:: tosympy(self) Return an expression as a sympy object. + +.. py:class:: Symbol(Expression) + .. py:class:: Dummy(Symbol) diff --git a/doc/polyhedra.rst b/doc/polyhedra.rst index 736cff6..47462a7 100644 --- a/doc/polyhedra.rst +++ b/doc/polyhedra.rst @@ -3,7 +3,7 @@ Polyhedra Module .. py:class:: Polyhedron - Polyhedron class allows users to build and inspect polyherons. The following methods provide the properties of a polyhedron. + Polyhedron class allows users to build and inspect polyherons. .. py:method:: equalities(self) @@ -17,8 +17,6 @@ Polyhedra Module Return ta list of the constraints of a polyhedron. - The following unary operations can be used to inspect a polyhedron. - .. py:method:: disjoint(self) Returns a polyhedron as a disjoint. -- 2.20.1