Any packages for vertex enumeration on Mathematica?

Instead of using cddlib you can use the nicely packaged version in polymake, which certainly installs without problems on OS X, and you can just call by an external function call from Mathematica (no mathlink interface necessary). polymake has a lot of other functionality too.


Glancing through your last posts, it seems to me that you are still looking for a library under Mathematica that enumerates all vertices of a polytope. But you are very close to the answer. It is the C-implementation of the cddlib library for Mathematica by Komei Fukuda. This also works fine under Mathematica. There, the library is called Cddmathlink and you have to compile it by yourself. Under Linux (SLES11) I have to impose the following compiler flags

MLFLAGS = -lML64i4 -lpthread -lrt -luuid -ldl

to successfully compile cddmathlink, cddmathlink2gmp and cddmathlink2 under Mathematica 10.x (see also my comment from Dec. 7 2014 above). However, you have to download cddlib-094f.tar.gz and cddlib-094h.tar.gz. The former you use to copy the directories src-mathlink and src-mathlink2 in the root directory of cddlib-094h. Edit the Makefiles in src-mathlink and src-mathlink2 folders, and then call the commands "./configure && make all" in the root directory of cddlib-094h. After the compilation has terminated successful, you need to change in src-mathlink and src-mathlink2 to call again the make command.

I use these libraries for years with success for my Mathematica package TuGames (download tugames-v2.3.7z), that can be found here

TuGames Version 2.3

To have an idea how I use these libraries, I recommend to have a look on the third answer of the following question

How to plot a core of a cooperative game.

or for doing the same even in parallel have a look at

How to run an external program in parallel with a Mathematica package?

After you have compiled the libraries successfully, copy them in a bin-directory. Then call from a Mathematica session the following commands to open the links to Mathematica.

SetDirectory["/where/cddmathlink/is/located/bin64"]

cddml=Install["./cddmathlink"];
cddmlgmp = Install["./cddmathlink2gmp"];
cddml2=Install["./cddmathlink2"];

Alternatively, glance through the Mathematica file TuGames.m to get more ideas how to build up or close links with this library. You will also find in the README files some further instructions. If you need my Makefiles as templates, let it me know. I hope this helps.

Update 29.05.2016

Due to a private conversation, I saw some need to update my answer in order to overcome possible pitfalls which might occur during a compilation of the Cddmathlink binaries. My remarks are related to a Linux OS, but I am sure that with some small modification those are also applicable for Mac and Windows users.

First of all, do not use the mathlink.h header file that ships with the cddlib-094f.tar.gz archive file. This version is too old for Mathematica 8.x or higher. Instead of that use the mathlink.h and libML library that ship with your Mathematica version, and that should be located relatively to the Mathematica root directory, for instance, at

./10.3/SystemFiles/Links/MathLink/DeveloperKit/Linux-x86-64/CompilerAdditions

We see that we have to use the 64-bit version of the libML library. Do not try to link it against the 32-bit version. This will not work.

Furthermore, if the compilation of the libcdd libraries have been successfully terminated, the libcdd.a can be found relatively to the root directory cddlib-094h at

./lib-src/.libs/libcdd.a

Now, one has to adjust the following lines in the Makefile located in the src-mathlink directory to

ml : cddmathlink

     cddmathlink : cddmathlinktm.o cddmathlink.o cddmlio.o

        ${CC} -O3 -I${MLINCDIR} cddmlio.o cddmathlinktm.o cddmathlink.o -L${MLLIBDIR} ${MLFLAGS} $(LFLAGS) ../lib-src/.libs/libcdd.a -o cddmathlink

Similar for the src-mathlink2 directory, we have to adjust the Makefile to

ml : cddmathlink2 cddmathlink2gmp

    cddmathlink2 : cddmathlinktm.o cddmathlink.o cddmlio.o
         ${CC} $(LIFLAGS) -I${MLINCDIR} cddmlio.o cddmathlinktm.o cddmathlink.o -L${MLLIBDIR} ${MLFLAGS} ../lib-src/.libs/libcdd.a -o cddmathlink2

    cddmathlink2gmp : cddmathlinktm.o cddmathlink_gmp.o cddmlio_gmp.o
         ${CC} $(LIFLAGS) -I${MLINCDIR} cddmlio_gmp.o cddmathlinktm.o cddmathlink_gmp.o -L${MLLIBDIR} ${MLFLAGS} -lgmp ../lib-src-gmp/.libs/libcddgmp.a -o cddmathlink2gmp

If you still get some errors like "undefined reference to" invoke first a "make clean" in the folders above, and then rebuild it again. If the "undefined reference to" errors are still present, then change in the Makefiles the compiler to

#CC=/usr/local/bin/mcc
CC=/usr/bin/gcc

Execute again a "make clean", and then again a "make all". This should build clean and fine Cddmathlink binaries.