Add license to examples
[linpy.git] / doc / domain.rst
index b85b2d0..06eec6e 100644 (file)
@@ -1,8 +1,21 @@
 Domains Module
 ==============
 
 Domains Module
 ==============
 
+This module provides classes and functions to deal with polyhedral
+domains, i.e. unions of polyhedra.
+
 .. py:class :: Domain
 
 .. py:class :: Domain
 
+    This class represents polyhedral domains, i.e. unions of polyhedra.
+
+    .. py:method:: __new__(cls, *polyhedra)
+    
+       Create and return a new domain from a string or a list of polyhedra. 
+
+    .. attribute:: polyhedra
+    
+       The tuple of polyhedra which constitute the domain. 
+    
     .. attribute:: symbols
 
         Returns a tuple of the symbols that exsist in a domain.
     .. attribute:: symbols
 
         Returns a tuple of the symbols that exsist in a domain.
@@ -14,6 +27,10 @@ Domains Module
     .. py:method:: isempty(self)
 
         Return ``True`` is a domain is empty.
     .. py:method:: isempty(self)
 
         Return ``True`` is a domain is empty.
+        
+    .. py:method:: __bool__(self)
+    
+        Return ``True`` if the domain is non-empty.
 
     .. py:method:: isuniverse(self)
 
 
     .. py:method:: isuniverse(self)
 
@@ -23,9 +40,9 @@ Domains Module
 
         Return ``True`` if a domain is bounded.
 
 
         Return ``True`` if a domain is bounded.
 
-    .. py:method:: disjoint(self)
+    .. py:method:: make_disjoint(self)
 
 
-        It is not guarenteed that a domain is disjoint. If it is necessary, this method will return a domain as disjoint.
+        It is not guarenteed that a domain is disjoint. If it is necessary, this method will return an equivalent domain, whose polyhedra are disjoint.
 
     .. py:method:: isdisjoint(self, other)
 
 
     .. py:method:: isdisjoint(self, other)
 
@@ -63,7 +80,18 @@ Domains Module
     .. py:method:: complement(self)
                    ~self
 
     .. py:method:: complement(self)
                    ~self
 
-        Return the complement of a domain.
+        Return the complementary domain of a domain.
+        
+    .. py:method:: coalesce(self)
+    
+       Simplify the representation of the domain by trying to combine pairs of
+        polyhedra into a single polyhedron. 
+        
+        
+    .. py:method:: detect_equalities(self)
+    
+        Simplify the representation of the domain by detecting implicit
+        equalities.
 
     .. py:method:: simplify(self)
 
 
     .. py:method:: simplify(self)
 
@@ -106,18 +134,38 @@ Domains Module
 
     .. py:method:: lexmin(self)
 
 
     .. py:method:: lexmin(self)
 
-        Return a new set containing the lexicographic minimum of the elements in the set.
+        Return a new domain containing the lexicographic minimum of the elements in the domain.
 
     .. py:method:: lexmax(self)
 
 
     .. py:method:: lexmax(self)
 
-        Return a new set containing the lexicographic maximum of the elements in the set.
+        Return a new domain containing the lexicographic maximum of the elements in the domain.
+
+    .. py:method:: subs(self, symbol, expression=None):
+
+        Subsitute symbol by expression in equations and return the resulting
+        domain.
 
 
+    .. py:method:: fromstring(cls, string)
+        
+        Convert a string into a domain.
+        
+    .. py:method:: fromsympy(cls, expr)
+    
+        Convert a SymPy expression into a domain.
+        
+    .. py:method:: tosympy(self)
+    
+        Convert a domain into a SymPy expression.
 
 A 2D or 3D domain can be plotted using the :meth:`plot` method. The points, vertices, and faces of a domain can be inspected using the following functions.
 
     .. py:method:: points(self)
 
 
 A 2D or 3D domain can be plotted using the :meth:`plot` method. The points, vertices, and faces of a domain can be inspected using the following functions.
 
     .. py:method:: points(self)
 
-        Return a list of the points contained in a domain as :class:`Points` objects.
+        Return a list of the points with integer coordinates contained in a domain as :class:`Points` objects.
+        
+    .. py:method:: __contains__(self, point)
+    
+       Return ``True`` if point if contained within the domain. 
 
     .. py:method:: vertices(self)
 
 
     .. py:method:: vertices(self)
 
@@ -129,4 +177,4 @@ A 2D or 3D domain can be plotted using the :meth:`plot` method. The points, vert
 
     .. py:method:: plot(self, plot=None, **kwargs)
 
 
     .. py:method:: plot(self, plot=None, **kwargs)
 
-        Return a plot of the given domain or add a plot to a plot instance.
+        Return a plot of the given domain or add a plot to a plot instance, using matplotlib.