Convex - a Maple package for convex geometry
Current version: 1.2.0 (2016-06-07)
Copyright © 1999-2016
Convex is a Maple package for convex geometry.
It can deal with polytopes, cones 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 — see the list of papers citing Convex.
On the other hand, if you want to
break the current record for dualizing polytopes,
you will probably choose a different program.
The main design principles of Convex are:
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.
Easy to use
One quickly learns how to use it.
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).
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
Separate treatment of polyhedra and cones
Though cones are special kinds of polyhedra, they are implemented as
a separate type. One reason is that internally polyhedra
are reduced to cones (by homogenization). 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").
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,
volumes and distances,
drawing polytopes (up to dimension 3). Moreover, one can apply a given
function to all faces of a polyhedron, or to all pairs of faces
is a facet of
This is analogous to the Maple function
which applies a given function to all elements of a list or set.
For cones, there are "linear" analogs 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
function to transverse a fan or polyhedral complex,
integral and rational homology computation of polyhedral complexes.
The Convex package comes with an extensive
You can download the documentation along with the package.
The current version of the package is available in mla format
as well as in lib/ind format
The source code is available here.
You can download the documentation as
All versions are distributed under the
GNU General Public License.
Maple packages based on Convex
by Florian Berchtold, Jürgen Hausen and Marcel Widmann
Divisors on toric varieties
by Matthias Franz
Homology of real and complex toric varieties
by Florian Schwerteck
Homology of real Viro hypersurfaces of projective toric varieties
by Jürgen Hausen and Simon Keicher
Mori dream spaces
by Janko Böhm
connects Maple/Convex with
to see a list of publications using the Convex package.