Added cddlib-094h from http://www.inf.ethz.ch/personal/fukudak/cdd_home/

Change-Id: I64519509269e434b1b9ea87c3fe0805e711c0ac9
diff --git a/third_party/cddlib/README b/third_party/cddlib/README
new file mode 100644
index 0000000..9e2b18e
--- /dev/null
+++ b/third_party/cddlib/README
@@ -0,0 +1,149 @@
+2012-04-30 (April 30, 2015)
+-----------------------------------------------
+C-Library cddlib (version 0.94h) README FILE
+-----------------------------------------------
+1. The C-library  cddlib is a C implementation of the Double Description 
+Method of Motzkin et al. for generating all vertices (i.e. extreme points)
+and extreme rays of a general convex polyhedron in R^d given by a system 
+of linear inequalities:
+
+   P = { x=(x1, ..., xd)^T :  b - A  x  >= 0 }
+
+where  A  is a given m x d real matrix, b is a given m-vector 
+and 0 is the m-vector of all zeros.
+
+The program can be used for the reverse operation (i.e. convex hull
+computation).  This means that  one can move back and forth between 
+an inequality representation  and a generator (i.e. vertex and ray) 
+representation of a polyhedron with cdd.  Also, cdd can solve a linear
+programming problem, i.e. a problem of maximizing and minimizing 
+a linear function over P.
+
+The version 0.94 is the seventh release of libcdd. New functions
+added in this release include dd_MatrixCanonicalize,
+dd_FindRelativeInterior and dd_ExistsRestrictedFace.  These
+functions are LP-based and should be reasonably efficient.
+The sample programs such as redcheck.c, testlp1.c and allfaces.c
+show how these functions can be used to remove redundancies,
+to compute the dimension and all faces of an H-polyhedron.
+
+In addition to the new functionalities, many small bugs have
+been fixed.  For example, the mishandling of empty H-polyhedra
+has been fixed for the representation conversion.
+
+If you find some problems or bugs, please kindly report them to
+fukuda@ifor.math.ethz.ch.  Please read README.whatsnew for the changes 
+over the last release.
+
+The documentation (cddlibman.tex) is still incomplete but contains 
+descriptions of the most important functions. Please look at the examples,
+testcdd*.c, testlp*.c, simplecdd.c, lcdd.c, redcheck,c for how 
+the library functions can be used in user's C-codes.
+
+2. One convenient feature of cddlib is the ability
+to handle essentially any data.  More precisely, it can
+generate an H-representation of a V-polyhedron which is not
+full-dimensional, and it can generate a V-representation
+of an H-polyhedron which has no extreme points.
+
+3. A little caution is in order.  Many people have seen 
+numerical problems when the floating version of cddlib
+is used.   As we all know, floating-point computation
+might not give a correct answer, especially when an input
+data is very sensitive to a small perturbation.  When
+some strange behavior is observed, it is always wise
+to create a rational approximation of the input
+(for example, one can replace 0.3333333 with 1/3)
+and to compute it with cddlib compiled with gmp rational
+to see what a correct behavior should be.  Whenever the time
+is not important, it is safer to use gmp rational arithmetic.
+
+If you need speedy computation with floating-point arithmetic, 
+you might want to "play with" the constant "dd_almostzero" defined 
+in cdd.h:
+
+   #define dd_almostzero  1.0E-6
+
+This number is used to recognize whether a number is zero: 
+a number whose absolute value is smaller
+than dd_almostzero is considered zero, and nonzero otherwise.
+You might want to change this to modify the behavior of cddlib.
+Another thing one can do is scaling.  If the values in one column of
+an input is of smaller magnitude than those in another column, 
+scale one so that they become comparable.
+
+4. The cddlib package is in "tar"ed and "gzip"ed format with name
+cddlib-***.tar.gz, where *** is the version number.  The standard
+download site for the package is
+
+     web site : http://www.ifor.math.ethz.ch/~fukuda/cdd_home/index.html
+     file name: cddlib-***.tar.gz
+
+In order to unpack the package in a standard unix environment, type 
+   
+     % tar xvfz cddlib-***.tar.gz
+
+where *** must be replaced by the appropriate version number, and
+% is a unix prompt. 
+
+For compilation of libcdd, go to the cddlib top directorycddlib
+and follow the general instruction of autoconf.  In generic
+unix/linux environment, use "./configure" and "make".
+To enforce a certain compiler to be used, specify it as
+
+   CXX=g++ ./configure
+
+The default compiler is gcc.
+Note that one must install GMP-4.* (or higher) first.
+
+For compilation of MathLink programs,
+you need a binary "mprep", MathLink library "libML.a" and include file
+"mathlink.h" which come with Mathematica.   I have tested for Mathematica 4.1
+and 3.* on MacOSX and Linux.  This part is not "autoconf"igured
+and thus one needs to edit Makefile in the src-mathlink and src-mathlink2 subdirectories. 
+
+To install the library in public directory of unix environment, 
+just type "make install".  The default installation directory
+is /usr/local.  If you want to select other places, use
+"./configure --prefix=<DIRNAME>" to configure with your favorite
+<DIRNAME>. 
+
+One might have to make the files publicly readable by chmod.
+Once the files are properly installed, any user can use compile
+one's own code (e.g. testcdd1.c) and link it with libcdd by
+  
+   % gcc -I/usr/local/include -L/usr/local/lib testcdd1.c -lcdd
+
+or (with GMP rational arithmetic)
+
+   % gcc -I/usr/local/include -L/usr/local/lib -DGMPRATIONAL testcdd1.c -lcddgmp -lgmp
+
+
+5. cddlib comes with a MathLink version of cddlib that can be
+called from Mathematica (tested for Mathematica 2.2, 3.0, 4.1, 5.1).
+A few Mathematica notebooks are included to explain how one can 
+use this program "cddmathlink" from Mathematica
+to manipulate polytopes.  Please check the files, 
+cddml-notbook.ma, cddml-PolytopeSkeleton.ma, cddml-DietProblem.ma,
+and cddml-Zonotope.ma, in the mma subdirectory.  I could 
+compile cddmathlink.c for Macintosh and Windows.  Please use
+gcc instead of g++ to compile cddlib.  I have put 
+binaries for different platforms in 
+http://www.cs.mcgill.ca/~fukuda/download/cdd/cddlibml_binary/  .
+
+
+6. The library cddlib is free software, but if cddlib turns out to be useful, 
+please kindly send me (at the address below) a note or a paper mentioning 
+what purpose and how cdd has been used for. The most powerful support 
+for free software development is user's appreciation.   
+
+For more information, contact
+
+Komei Fukuda <fukuda@math.ethz.ch>
+Institute of Theoretical Computer Science
+ETH Zentrum, CH-8092 Zurich, Switzerland
+Tel +41-1-632-4023, Fax +41-1-632-1063
+http://www.ifor.math.ethz.ch/staff/fukuda/
+
+// END of README 
+