cdd HISTORY file

cdd version (date) / changes

Version C0.21 (November 10, 1993) /
 - The first version of cdd created by translating pdd.p (0.21) with 
   Dave Gillespie's p2c translator and by modifying the c-code.  The set operation
   libraries setoper.c, setoper.h (Nov.14, 1993) were created to make the code run
   without any p2c libraries.

Version C0.22 (November 21, 1993) /
 - File open procedures have been updated.

Version C0.23 (November 22, 1993) /
 - First release of cdd.

Version C0.23a, b (November 23, 1993) /
 - Few small bugs of C0.23 have been fixed.
 - Up to this version, the program can deal with column size at most 32.

Version C0.24 (November 27, 1993) /
 - Modified to be able to deal with column size (nn) larger than 32.
 - Bugs of LexMin, LexMax ordering options are fixed.

Version C0.25 (November 28, 1993)
 - The bug for mishandling the empty polyhedra input is fixed.  
   Accordingly, the new variable CompStatus (Completion Status) 
   has been added.
   
 - The procedure AddNewHyperplane and EvaluateARay have been completely 
   changed.  EvaluateARay computes A(hnew) * Ray for each Rays, and sort
   the linked list of rays so that the hnew-infeasible rays will be 
   put consecutively from FirstRay.

Version C0.26 (November 29, 1993) / 
 - FindBasis has been modified to be faster when the number of inequalities is large.
 - addition of #incidence option for outputting the cardinality of active 
   hyperplanes instead of the set of all active hyperplanes at each vertex.
 - InitBasisAtBottom option has been added to select the last set of rows
   as the initial basis (determining a simplex cone/polytope). 
   This option is {\em not\/} default. See User's manual.

Version C0.26b(December 8, 1993) / 
 - FindBasis and ComputeRank have been replaced with new programs which do not copy
   Amatrix (for save storage and time).  Accordingly, the procedure CopyAmarix has been
   removed.

Version C0.27(December 8, 1993) / 
 - It uses a new versions of setoper.h and setoper.c  (Dec 8, 1993 version) which have
   set complemen procedure   set_compl.

Version C0.31(December 20, 1993) /
 - The main program cdd.c has been divided into two parts, cdd.c and cddarith.c, the latter
   contains all the procedures dealing with floating point numbers and operations.
 - LP solver CrissCrossSolve has been added.  Now the option "maximize" can be used to
   optimize any linear function over the polyhedron.
 - The setoper library has been updated to accomodate set_card(set) function.

Version C0.32(Jan. 11, 1994) /
 - "preprojection" option has been added.  This option can be considered as a preprocessing
   of orthogonal projection of the polyhedon to a subset of variables.  That is, if the inequality
   inequality system is of form  A1 x1 + A2 x2 <= b, and the variable indices for x2, say 1, 4, 6, 7,
   are listed in the input file as
 -------------
  begin
    m   n   Type
    b  -A1  -A2
  end
  preprojection
    4  1  4  6  7
 -------------
   Then, cdd will output the inequality system,  A1 x1  <= b, together with the list R of extremal
   rays of the homogeneous cone  {z:  z >=0  and   z A2 = 0 }.  Consequently, the inequality system
   {r A1  x1  <=  r b  for  each r  in  R} represents the projection of the original polyhedron onto
   x1-space with possible redundancy.   The supplementary  C program (written by F. Margot) 
   will be used to obtain a minimal system from these two outputs.

Version C0.33(Jan. 16, 1994) /
 - partial_enumeration option has been added.  By this option, one can enumerate all vertices
   and rays which are lying on a selected set of inequalities.  The input
 -------------
  begin
    m   n   Type
    b  -A1  -A2
  end
  partial_enumeration
    4  1  4  6  7
  -------------
   restricts the enumeration for those lying on the 1st, 4th, 6th & 7th hyperplanes.
 
Version C0.34(Jan. 22, 1994) /
 - adjacency option has been added to output the adjacency list of output.
 
Version C0.35(Jan. 23, 1994) /
 - RayRecord  struct has been modified to store only a pointer for a Ray vector so that
   the necessary space for the vector is allocated each time.  This saves a space for
   storing each RayRecord.

Version C0.36(Jan. 23, 1994) /
 - RayRecord  struct has been modified to store only a pointer for a ZeroSet  so that
   the necessary space for the set is allocated each time.  This saves a space for
   storing each RayRecord ZeroSet.  For this modification, the setoper library
   must have been changed so that set_initialize allocates the minimum space.
   Note that this new version (Jan. 23, 1994) does not work with the older cdd
   programs.

--- end of file: cddHISTORY ---
