-*- M2 -*- Title: convex hulls Description: Write a new package, to be called ConvexHulls, that uses the package FourierMotzkin to implement general purpose routines for computing with convex polytopes. The package should not simply duplicate the functionality of "polymake", but instead should explore the links between polyhedral geometry and algebra, playing to the existing strengths of Macaulay 2. For example, many aspects of Gelfand-Kapranov-Zelevinsky's or Sturmfels' work would naturally fit in this context. The package could include functions that: - compute the convex hull of a set of points in R^n, returning a polytope. Maybe that should be a new type of object (behind the scenes the points span rays in R^(n+1) but we keep that always hidden (hidden how?, that could be an interesting design decision)) - provide the vertices of a polytope. Maybe that should be a new type of object. - provide the degree of a vertex - provide the bounding hyperplanes of a convex polytope. - provide the facets of a polytope as polytopes. For 2-dimensional faces, alternatively provide the facets as polygons, i.e., as correctly ordered cyclic lists of vertices, suitable for input into a graphics program - provide interfaces to 5 or so graphics programs that could be used to display polytopes - provide the incidence relation between the vertices and the facets - for any k, provide the complete list of faces of codimension k - given a point and a polytope, determine the smallest facecontaining the point, if any - compute the Newton polytope of a polynomial in several variables (a one liner that starts with "exponents f" where f is the polynomial) ============================================================================= Proposed by: Dan Grayson Potential Advisor: Project assigned to: unassigned, but various people have worked on parts of this Current status: almost done, see below. ============================================================================= Progress log: See the packages: FourTiTwo Polyhedra StatePolytope gfanInterface Birkner continues to develop the package Polyhedra, which seems to implement a lot of what is asked for. March, 2009: Birkner says his package almost completes the project. Further work might include implementing the degree of a vertex (there are various candidates) and interfaces to graphics programs. The first graphics program to interface to might be sage, via python embedded in Macaulay 2.