Polyhedra has been rewritten by Lars Kastner for improved performance. Many bugs have been fixed, and there are now a large number of tests. Some changes are not backward compatible. Some changes include:
-
Fan, is no longer a collection of Cone objects, but contains a matrix of rays (over ZZ), and a list of lists of integer indices, indicating the maximal cones. Well-defined-ness is no longer automatically checked. Use isWellDefined(Fan)
-
Polyhedron, is now a wrapper for the homogenized cone.
-
PolyhedralComplex, is now a wrapper for the homogenized fan.
-
Cone, has basically the same functionality, except that not everything is computed ahead of time.
-
faces, now returns a list of lists of integer indices. There are two new functions for recovering the old behavior: facesAsCones (for fans and cones), and facesAsPolyhedra for polyhedra and polyhedral complexes.
An important difference is that objects of these classes can no longer be used as keys into hash tables, since these objects are implemented as mutable hash tables. In particular === no longer works on cones. Instead, use a sorted list of e.g. vertices and lineality space. If you need the old behavior, load the package OldPolyhedra. However, if possible, change your code to run with the new package.