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.
.. py:method:: dimension
Returns the number of variables that exist in a domain.
.. py:method:: disjoint
Returns a domain as disjoint.
.. py:method:: involves_vars(self, dims)
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.
.. py:method:: isuniverse(self)
Return ``True`` if a domain is the Universe set.
.. py:method:: isbounded(self)
Return ``True`` if a domain is bounded.
.. py:method:: disjoint(self)
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.
.. py:method:: issubset(self, other)
Test whether every element in a domain is in *other*.
.. py:method:: __eq__(self, other)
self == other
Test whether a domain is equal to *other*.
.. py:method:: __lt__(self, other)
self < other
Test whether a domain is a strict subset of *other*.
.. py:method:: __le__(self, other)
self <= other
Test whether every element in a domain is in *other*.
.. py:method:: __gt__(self, other)
self > other
Test whether a domain is a strict superset of *other*.
.. py:method:: __ge__(self, other)
self >= other
Test whether every element in *other* is in a domain.
The following methods implement unary operations on a domain.
.. py:method:: complement(self)
¬self
Return the complement of a domain.
.. py:method:: simplify(self)
Return a new domain without any redundant constraints.
.. py:method:: project(self, dims)
Return a new domain with the given dimensions removed.
.. py:method:: aspolyhedron(self)
Return polyhedral hull of a domain.
.. py:method:: sample(self)
Return a single sample subset of a domain.
The following methods implement binary operations on two domains.
.. py:method:: intersection(self, other)
self | other
Return a new domain with the elements that are common between *self* and *other*.
.. py:method:: union(self, other)
self & other
Return a new domain with all the elements from *self* and *other*.
.. py:method:: difference(self, other)
self - other
Return a new domain with the elements in a domain that are not in *other* .
.. py:method:: __add__(self, other)
self + other
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.
.. py:method:: lexmax(self)
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.
.. py:method:: points(self)
Return a list of the points contained in a domain as :class:`Points` objects.
.. py:method:: vertices(self)
Return a list of the verticies of a domain.
.. py:method:: faces(self)
Return a list of the vertices for each face of a domain.
.. py:method:: plot(self, plot=None, **kwargs)
Return a plot of the given domain.