author Danielle Bolan Thu, 7 Aug 2014 15:17:18 +0000 (17:17 +0200) committer Danielle Bolan Thu, 7 Aug 2014 15:17:18 +0000 (17:17 +0200)
 doc/examples.rst patch | blob | history doc/index.rst patch | blob | history

index a4b0f5a..62a7dfd 100644 (file)
@@ -1,9 +1,9 @@
LinPy Examples
==============

LinPy Examples
==============

-Creating a Polyhedron
------------------
-    To create any polyhedron, first define the symbols used. Then use the polyhedron functions to define the constraints for the polyhedron. This example creates a square.
+Basic Examples
+-------------
+    To create any polyhedron, first define the symbols used. Then use the polyhedron functions to define the constraints. The following is a simple running example illustrating some different operations and properties that can be performed by LinPy with two squares.

>>> from linpy import *
>>> x, y = symbols('x y')

>>> from linpy import *
>>> x, y = symbols('x y')
@@ -11,25 +11,37 @@ Creating a Polyhedron
>>> square1 = Le(0, x) & Le(x, 2) & Le(0, y) & Le(y, 2)
>>> print(square1)
And(Ge(x, 0), Ge(-x + 2, 0), Ge(y, 0), Ge(-y + 2, 0))
>>> square1 = Le(0, x) & Le(x, 2) & Le(0, y) & Le(y, 2)
>>> print(square1)
And(Ge(x, 0), Ge(-x + 2, 0), Ge(y, 0), Ge(-y + 2, 0))
-
-Urnary Operations
------------------
-
+
+    Binary operations and properties examples:
+
+    >>> square2 = Le(2, x) & Le(x, 4) & Le(2, y) & Le(y, 4)
+    >>> #test equality
+    >>> square1 == square2
+    False
+    >>> # find 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
+    >>> square1 & square2
+    And(Eq(y - 2, 0), Eq(x - 2, 0))
+    >>> # find 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))
+
+    Unary operation and properties examples:
+
>>> square1.isempty()
False
>>> square1.isempty()
False
-    >>> square1.isbounded()
-    True
-
-Binary Operations
------------------
-
-     >>> square2 = Le(2, x) & Le(x, 4) & Le(2, y) & Le(y, 4)
-     >>> 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
-
+    >>> square1.symbols()
+    (x, y)
+    >>> square1.inequalities
+    (x, -x + 2, y, -y + 2)
+    >>> square1.project([x])
+    And(Ge(-y + 2, 0), Ge(y, 0))
+
Plot Examples
-------------

Plot Examples
-------------

@@ -51,7 +63,7 @@ Plot Examples
.. figure:: images/cube.jpg
:align:  center

.. figure:: images/cube.jpg
:align:  center

-     The user can also inspect a polygon's vertices and the integer points included in the polygon.
+     LinPy can also inspect a polygon's vertices and the integer points included in the polygon.

>>> diamond = Ge(y, x - 1) & Le(y, x + 1) & Ge(y, -x - 1) & Le(y, -x + 1)
>>> diamond.vertices()

>>> diamond = Ge(y, x - 1) & Le(y, x + 1) & Ge(y, -x - 1) & Le(y, -x + 1)
>>> diamond.vertices()
@@ -59,9 +71,3 @@ Plot Examples
>>> 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})]

>>> 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})]

-
-
-
-
-
-
index c5fe0b4..b3a9271 100644 (file)
@@ -6,12 +6,12 @@
Welcome to LinPy’s documentation!
=================================

Welcome to LinPy’s documentation!
=================================

-LinPy is a Python library for symbolic mathematics.
+LinPy is a Python wrapper for the Integer Set Library (isl) by Sven Verdoolaege. Isl ia a C library for manipulating sets and relations of integer points bounded by linear constraints.
+
If you are new to LinPy, start with the Examples.

This is the central page for all of LinPy’s documentation.

If you are new to LinPy, start with the Examples.

This is the central page for all of LinPy’s documentation.

-
Contents:

.. toctree::
Contents:

.. toctree::