Convex - a Maple package for convex geometry

Current version: 1.1.3 (2009-03-07)

Copyright © 1999-2009 Matthias Franz

Convex is a Maple package for convex geometry. It can deal with polytopes and, more generally, with all kinds of polyhedra of (in principle) arbitrary dimension. The only restriction is that all coordinates must be rational.

The integration into the computer algebra system Maple makes Convex particularly suited for "applied" problems where polyhedra arise together with other mathematical structures. Examples we had in mind while writing the package were toric varieties (which are defined by fans) and moment polytopes related to representation theory. But of course the package is not restricted to these kinds of applications. On the other hand, if you want to break the current record for dualising polytopes, you will probably choose a different program.

The main design principles of Convex are as follows:

Ease of use
One quickly learns how to use it. (See the example.) Part of this strategy is some kind of "object-oriented approach": functions accept different types as input and automatically choose the right subroutine. Moreover, Convex is very easy to install (if you have already installed Maple).
Full generality
No restrictions are imposed on the polyhedra (apart from being rational). They may be unbounded or even contain lines. They may also be empty or not full-dimensional or live in 0-dimensional space. This is important in applications where one wants to apply functions to (many) polyhedra that are the result of previous calculations.
Separate treatment of polyhedra and cones
Although cones are special kinds of polyhedra, they are implemented as a separate type. One reason is that internally polyhedra are reduced to cones (by homogenisation). Another reason is that some results depend on whether a cone is considered as cone or as polyhedron. For example, the minimal face of a polyhedron is always the empty face, while the minimal face of a cone is the largest linear subspace it contains (its so-called "lineality space").
The basic functions provided by the package are of course those for convex hull computations, and dually, to compute the vertices and rays of a polyhedron given as the intersection of finitely many halfspaces. Convex uses an implementation of the double description method.

Other functions for polyhedra include: image and preimage under affine maps, Cartesian products and joins, tests for containment and other elementary properties, computations in the face lattice, drawing polytopes (up to dimension 3). One can apply a given function to all faces of a polyhedron, or to all pairs of faces (f1, f2) where f1 is a facet of f2. (Cf. the Maple function map, which applies a given function to all elements of a list or set.)

For cones, there are "linear" analogues of many functions for polyhedra, as well as others.

Convex can also deal with polyhedral complexes (in particular, with simplicial complexes) and with fans. Here functions include: test whether a fan is polytopal, again some map-like function to transverse a fan or polyhedral complex, integral and rational homology computation of polyhedral complexes.

Documentation

The Convex package comes with an extensive online documentation. You can download the documentation along with the package.

Download

The current version requires Maple 7 (or higher). Earlier versions as well as the latest unstable version are available in the download area. All versions are distributed under the GNU General Public License.

Applications

Maple packages based on Convex

TorDiv by Florian Berchtold, Jürgen Hausen and Marcel Widmann
Divisors on toric varieties
Torhom by Matthias Franz
Homology of real and complex toric varieties

Interfaces

ConvexInterface, a program by Janko Böhm to connect Maple/Convex with Macaulay2

Research

The Convex package was used for the following papers:

Teaching


Matthias Franz, 2010-01-10