Polymake is a (more and more versatile) tool for the algorithmic
treatment of convex polyhedra and finite simplicial complexes.

As one of its many new features polymake now also deals with
tight spans: This is the bounded subcomplex of a certain
unbounded polyhedron associated to a finite metric space.

The system offers access to a wide variety of algorithms and
packages within a common framework. polymake is flexible and
continuously expanding. The software supplies C++ and perl
interfaces which make it highly adaptable to individual needs.

This is a trivial wrapper for the wonderful polymake package.
Note that this is rather a proof of concept, so if you think
you've got a better design idea, go ahead and comment below.
So far, only little of the polymake functionality is covered,
but it's mostly very easy to extend.

Usage

You can find some simple examples in SandBox polymake. There, you can also try it out online!

Design

I've decided to communicate with polymake for a start via file I/O, but would be easy to change this if necessary. Every polymake object created is stored with a "canonical" name: For example, if you ask for a cube of dimension 4, axiom will issue the shell command cube cube4.poly 4. Then, when you ask for a property of this cube, for example, the hvector, then the shell command polymake cube4.poly H_VECTOR > tmp.poly is issued. Finally axiom reads the contents of tmp.poly and converts it to the appropriate type. Thus, the only thing that really has to be programmed is a conversion routine for every polymake type. Some of these are trivial, like the Boolean, vector or matrix types, some others need more thought.

Currently there are only two domains: Polytope and SimplicialComplex. If you want a particular polymake property or construction supported, or want to have a new domain like Graph, go ahead and change the contents of this file. If you need help, you can always ask me.

fricas

)lib STRCNV READFILE
StringConversions is now explicitly exposed in frame initial
StringConversions will be automatically loaded when needed from
/var/aw/var/LatexWiki/STRCNV.NRLIB/STRCNV
ReadFile is now explicitly exposed in frame initial
ReadFile will be automatically loaded when needed from
/var/aw/var/LatexWiki/READFILE.NRLIB/READFILE