rcdd (C Double Description) package for R

University of Minnesota, Twin Cities     School of Statistics     Rweb

This web page provides an interface from the R statistical computing environment to the cddlib library writen by Komei Fukuda.


New! Now at version 1.1 (2008-04-12). Fixes major bug in linear programming code in version 1.0-1 and earlier (gave error when negative Lagrange multipler in correctly posed problem).

Now at CRAN.

The package is installed on our Rweb server and can be tried out there.

If you don't know how to use Rweb, here is a web page with some Rweb examples for a paper.


The package vignette has many examples of using the package.

The R help files (HTML version) for the package are the real documentation.

Start with the help for

All of these functions use either the usual computer floating point arithmetic (which causes problems because of inexactness) or exact infinite-precision rational arithmetic. Hence even the linear programming provided by the lpcdd function is unlike that done by other R packages.


To use the package you need to get and install

R statistical computing environment

Obtain from http://www.r-project.org/ or from one of the CRAN mirrors listed there. Either obtain and install binaries for your particular OS, or compile from source.

the GNU Multiple Precision arithmetic library

Obtain from http://gmplib.org/ or from your operating system vendor. This is a standard GNU package and comes with many Linux distributions and may be found at the web sites of other vendors that distribute free software.

The source code for the library is found at


To satisfy the distribution requirements of the LGPL here is a copy of the source code for GMP version 4.2.2, but don't download it from here, go to gmplib.org to get the current version.

the cddlib library

This library (found at http://www.ifor.math.ethz.ch/~fukuda/cdd_home/cdd.html), although it does all the real work for the rcdd package, is no longer required.

Due to difficulties in building cddlib, we have simply incorporated version 0.94d of it into the code of rcdd.

the rcdd package

If the GMP libraries are found in standard places, then either do in R


or obtain right here (rcdd_1.1.tar.gz) and install from the unix command line as follows

R CMD INSTALL rcdd_1.1.tar.gz

Otherwise (if the GMP libraries are in a nonstandard place) something like

export CPPFLAGS="-I/APPS/include"
export LDFLAGS="-L/APPS/lib"
R CMD INSTALL rcdd_1.1.tar.gz

works, where /APPS/include is the directory where the include files for these libraries are found and /APPS/lib is the directory where the libraries themselves are found.

It seems that when the libraries are in /usr/local one still needs this

export CPPFLAGS="-I/usr/local/include"
export LDFLAGS="-L/usr/local/lib"
R CMD INSTALL rcdd_1.1.tar.gz