What is Convex?

Convex is a Maple package for computations in rational convex geometry. Here "rational" means that all coordinates must be rational numbers. The package provides functions for "linear" as well as "affine" convex geometry.

In the affine setting, the basic objects are polyhedra, which are intersections of finitely many (affine) halfspaces. Polyhedra can also be described as the convex hull of finitely many points and rays. A bounded polyhedron is also called a polytope. In the Convex package, polyhedra are represented by the type POLYHEDRON and polytopes by the subtype POLYTOPE. A POLYHEDRON may contain lines and may not be full-dimensional. The most important functions to define a POLYHEDRON are convhull and intersection.

The linear setting is based on cones, which are intersections of finitely many linear halfspaces (i.e., whose boundary contains the origin). Cones are generated by finitely many rays. In the Convex package, cones are represented by the type CONE. They may contain lines and may not be full-dimensional. A CONE can be created from either description with the functions poshull and intersection, respectively.

The Convex package can deal with polyhedral complexes (simplicial complexes, for example) and fans. See the types PCOMPLEX and FAN. It also provides functions to do calculations in the face lattice of a cone or polyhedron, see the types CFACE and PFACE. The functions traverse and traverse2 are some kind of map for faces: One can apply a given function to all faces of a cone or polyhedron, or to all pairs (f1, f2), where f1 is a facet of f2. See CONE[traverse], CONE[traverse2] and POLYHEDRON[traverse], POLYHEDRON[traverse2]. More generally, these functions can be used with fans and polyhedral complexes.


Convex was written by Matthias Franz, based on work of others as indicated. Copyright © 1999-2016 Matthias Franz. It is distributed under the GNU General Public License.

How to cite Convex

If you publish a mathematical result that has been partly obtained using the Convex package, please cite the package, just as you would cite any other work. Specifically, please refer to: Matthias Franz: Convex - a Maple package for convex geometry, version 1.2 (2016), available at I would also appreciate if you could inform me about such a paper.


Convex uses an implementation of the double description method adapted from Doran Wilde's polyhedral library. Implementing the function POLYHEDRON[proximum] was the topic of an NSERC USRA project with Craig Sinnamon.

The author thanks Annette A'Campo-Neuen, Gottfried Barthel, Florian Berchtold, Frédéric Béringer, René Birkner, Marion Dieudonné, Jürgen Hausen, Simon Keicher, Michael Nüsken, Bruno Salvy, David Swinarski, Thorsten Theobald, Ferenc Wettl and Marcel Widmann for helpful suggestions and bug reports.