next up previous
Next: Source Files and Compilation Up: cdd/cdd+ Reference Manual Previous: How to Use


Source Files and Compilation for cdd

(1)
[Files and Compilation] The source files for distribution are

cdd.c C main source file
cddarith.c C sub source file
cddio.c C sub source file
cdd.h header file for cdd.c
cdddef.h cdd definition file (whose two lines are to be edited by user)
dplex.c dual simplex library
dplex.h header file for dplex
dplexdef.h additional header file for dplex
dplex_test.c sample main program for dplex
setoper.c C library for set operation
setoper.h header file for setoper.c
cddman.tex Latex source of this manual itself
makefile makefile for cdd+ compilation
HISTORY.cdd brief description of changes made at each updates
README.cdd+ cdd+ readme file
ine A subdirectory containing sample inequality files
ext A subdirectory containing sample points files for hull computation
COPYING GNU GENERAL PUBLIC LICENSE

To compile the code in a standard unix environment (with GNU gcc compiler), type

  make all
to obtain an optimized executable file cdd and dplex_test. If this does not work, modify the file, Makefile. The GNU compiler gcc can be replaced by cc, if aother ANSI C compiler cc is available. Since the program includes some standard ANSI library headers such as stdlib.h and time.h at compilation, the compiler must know the locations of the standard ANSI libraries. Also, the files cdd.c, cdd.h, cdddef.h, cddarith.c, cddio.c, dplex.c, dplexdef.h, dplex.h, setoper.c and setoper.h are supposed to be in the current directory.

(2)
[Recompilation] The first two constants in the program dplexdef.h are to be changed by the user if necessary, and the program must be recompiled each time after any change is made. These constants are simply to specify the largest size of acceptable input data $(b, -A)$:
#define dp_MMAX   5002  /* USER'S CHOICE: max row size of A plus two */
#define dp_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, dp_MMAX should be at least $m+1$ and dp_NMAX should be at least $d+1$. Although it has no sense to set the sizes dp_MMAX and dp_NMAX much larger than necessary, the program only creates spaces for dp_MMAX+dp_NMAX pointers and uses only necessary storage space for each input, and thus large dp_MMAX and dp_NMAX won't be too harmful.

(3)
[TURBO/THINK C Users] The program cdd.c is written in ANSI C, and thus it should run on personal computers without any changes if one uses a compliler supporting ANSI standard. I have been using THINK C without any problems if ANSI library is added to the project together with cdd.c, cddarith.c, cddio.c, dplex.c and setoper.c. I could also compile it with some old version of TURBO C. Due to limited memory capacities of these compilers, it is perhaps necessary to reduce the constants MMAX and NMAX to, say 2001 and 51.


next up previous
Next: Source Files and Compilation Up: cdd/cdd+ Reference Manual Previous: How to Use
Komei Fukuda 2004-11-24