For compilation of cdd+, one needs a recent (2.6.0 or higher) gcc compiler and g++-library. Once gcc and g++-library are installed, please edit Makefile according to the setup of a GNU gcc compiler and g++-library, and type
% make allwhich creates two executables, cddr+ and cddf+. The executable cddr+ computes with rational (exact arithmetic) and cddf+ computes with floating-point arithmetic. If you want to create only one of them, use ''make cddf+'' or ''make cddr+''. Once these executables are created one might want to remove all object files *.o by
% rm *.o
We experienced some problems with older versions of gcc. Also, be aware that gcc and g++-library that come with NEXTSTEP 3.2 have bugs in the Rational library. Please use gcc and g++lib on the newest version NEXTSTEP 3.3, or build a recent gcc and g++library on older systems. Generally, cdd+ seems to be most stable when compiled with gcc-2.6.3 or higher with compatible libg++.
Note that cddr+ reads Polyhedra data in integer or rational number type, while cddf+ reads data in integer, rational and real number type. When cddf+ reads integer or rational numbers, it first converts them to floating point numbers and computes with floating-point arithmetic.
#define MMAX 5002 /* USER'S CHOICE: max row size of A plus one */ #define NMAX 101 /* USER'S CHOICE: max column size of A plus one */If this input data has m rows and d+1 columns, then in the program, MMAX should be at least m+1 and NMAX should be at least d+1. Although it has no sense to set the sizes MMAX and NMAX much larger than necessary, the program only creates spaces for MMAX+NMAX pointers and uses only necessary storage space for each input, and thus large MMAX and NMAX won't be too harmful.
Unlike the pascal version pdd, one can set the size MMAX as large as one wants. It is no more restricted by the SET TYPE element sizes of usual Pascal compilers.