Current version: 1.2.0 (2016-06-07)

Copyright © 1999-2016 Matthias Franz

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:

- Easy to 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
- 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
`(f1, f2)`
where
`f1`
is a facet of
`f2`.
This is analogous to the Maple function
`map`,
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
`map`-like
function to transverse a fan or polyhedral complex,
integral and rational homology computation of polyhedral complexes.

- 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
- ViroHS by Florian Schwerteck
- Homology of real Viro hypersurfaces of projective toric varieties
- MDSpackage by Jürgen Hausen and Simon Keicher
- Mori dream spaces

- ConvexInterface by Janko Böhm
- connects Maple/Convex with Macaulay2

- Using computer algebra systems in mathematics (Michael Nüsken, Universität Paderborn)
- IMMERSE 2007 algebra course (University of Nebraska)

Matthias Franz, 2019-10-17