Austin Schuh | 405fa6c | 2015-09-06 18:13:55 -0700 | [diff] [blame] | 1 | libcdd, cdd & cdd+ HISTORY file (as of April 30, 2015) |
| 2 | |
| 3 | *** libcdd version (date) / changes *** |
| 4 | |
| 5 | Version 094h (April 30, 2015) / |
| 6 | - Thanks to Mathieu Dutour, one minor bug has been fixed. |
| 7 | |
| 8 | Version 094g (March 23, 2012) / |
| 9 | - Thanks to both Anders Jensen and Mathieu Dutour |
| 10 | a few memory leaks in cddlib.c and cddlp.c have been |
| 11 | fixed. Also, some patches sent by Jerry James have |
| 12 | been applied. These were for making the library |
| 13 | shared and more compatible for C++ compilers. |
| 14 | |
| 15 | Version 094f (February 7, 2008) / |
| 16 | - Thanks to Sven Verdoolaege's fixes, |
| 17 | the "configure" script now uses "gcc" as the default |
| 18 | compiler, rather than "g++" in earlier releases, |
| 19 | and the libraries can be linked properly with |
| 20 | both C and C++ programs. |
| 21 | |
| 22 | Version 094e (January 27, 2008) / |
| 23 | - A bug of reporting a wrong (sign) certificate of |
| 24 | an infeasible LP is fixed. This bug reported by |
| 25 | Charles Geyer, occurs if the exact GMP version of |
| 26 | the dd_LPSolve is used with minimization. A bug of |
| 27 | reporting infeasibility of a feasible LP with |
| 28 | column non-full rank LP is fixed. This bug was reported |
| 29 | by Sven Verdoolaege. |
| 30 | |
| 31 | Version 094d (February 12, 2007) / |
| 32 | - A bug of reporting a wrong unbounded direction vector of |
| 33 | a dual inconsistent LP is fixed. This bug occurs only |
| 34 | if the exact GMP version of the dd_LPSolve is used. |
| 35 | For example, this error may occur in scdd_gmp. This |
| 36 | error was reported by Lars Schewe. |
| 37 | |
| 38 | Version 094c (April 23, 2006) / |
| 39 | - A bug for reading a rational number of length longer |
| 40 | than 255 characters have been fixed. This was reported |
| 41 | by Ruriko Yoshida. Now the longest |
| 42 | number is controlled by dd_wordlenmax defined in |
| 43 | cddtypes.h . The longest line is also controlled by |
| 44 | dd_linelenmax . These are currently fixed to |
| 45 | 1024 and 4096. Larger numbers and lines can be |
| 46 | handled by modifying these numbers and recompilation. |
| 47 | |
| 48 | Version 094b (August 25, 2005) / |
| 49 | - A bug for the representation conversion, reported by |
| 50 | Michal Kvasnica, was fixed. The earlier 094* versions |
| 51 | prematurely terminate the conversion when the number |
| 52 | of rows is equal to the number of columns in the input. |
| 53 | This means the earlier 094* do not compute correctly |
| 54 | for simplices, for example. |
| 55 | |
| 56 | Version 094a (August 24, 2005) / |
| 57 | - A bug of dd_LPSolve is fixed. This bug, reported by |
| 58 | Dima Pasechnik, due to a mishandling of cycling of LP |
| 59 | algorithms, is fixed. |
| 60 | |
| 61 | Version 094 (August 4, 2005) / |
| 62 | - dd_MatrixCanonicalize has been added. This reduces |
| 63 | matrix M to a minimal representation by computing |
| 64 | all implicit linearity rows and all redundant rows. |
| 65 | It applies lexicographic sorting of rows to remove |
| 66 | duplicates before applying redundancy removal. |
| 67 | This function combines the two computations together |
| 68 | in more efficient manner than before. |
| 69 | See the new redcheck.c for its use. Several basic |
| 70 | operations for matrices have been added, such as |
| 71 | dd_MatrixRowsRemove and dd_MatrixRowsRemove2. |
| 72 | |
| 73 | The representation conversion dd_DDMatrix2Poly now |
| 74 | handles the empty H-polyhedra properly, by calling |
| 75 | an LP-based emptiness checker before running the double |
| 76 | description algorithm. |
| 77 | |
| 78 | New functions finding specific points in H-polyhedra |
| 79 | are added. dd_ExistsRestrictedFace is a general inequality |
| 80 | system solver with specified equations, inequalities and |
| 81 | strict inequalities. dd_FindRelativeInterior finds |
| 82 | a point in the relative interior of a polyhedron. |
| 83 | |
| 84 | |
| 85 | Version 093d (February 27, 2005) / |
| 86 | - The problem of outputting the running log has been corrected. |
| 87 | This problem and a solution was communicated by Charles Geyer. |
| 88 | Now, a new global dd_boolean variable dd_log (= dd_FALSE by default) |
| 89 | controls log output. An scdd/lcdd bug of terminating with segmentation |
| 90 | fault when an input polyhedron is numerically delicate has been |
| 91 | corrected. This bug was reported by Stefan Volkwein. |
| 92 | |
| 93 | Version 093c (December 26, 2003) / |
| 94 | - A bug of Phase I of the dual simplex method in floating-point |
| 95 | arithmetics is fixed. The problem (bus error) occurred when input data |
| 96 | is not appropriate for floating-point arithmetics. The problem |
| 97 | occurrs even for the GMP executables as the exact LP solver first |
| 98 | tries to detect the terminal basis with float-point arithmetics. |
| 99 | |
| 100 | Version 093b (November 10, 2003) / |
| 101 | - The nonterminating problem of the LP solver has been fixed. |
| 102 | This was due to a cycling of the criss-cross method in |
| 103 | floating-point arithmetics, that is extremely rare. |
| 104 | Also, the phase I of the dual simplex method has been |
| 105 | modified. The auxiliary LP is perhaps less likely to |
| 106 | be degenerate. |
| 107 | |
| 108 | Version 093a (Augst 11, 2003) / |
| 109 | - The LP basis finding procedure dd_FindLPBasis2 has been |
| 110 | updated. The functions dd_Matrix2WeakAdjacency, dd_SRedundant and |
| 111 | dd_SRedundantRows are added. The manual has been updated. |
| 112 | |
| 113 | Version 093 (July 18, 2003) / |
| 114 | - dd_LPSolve with GMP now runs fisrt with floating point arithmetics |
| 115 | and checks with GMP the correctness of the result. New functions dd_Matrix2Adjacency, |
| 116 | dd_FourierElimination, dd_BlockElimination, dd_DDMatrix2Poly2 are added. |
| 117 | Some minor memory leak problems are fixed. (Thanks to the excellent |
| 118 | memory debugger valgrind on linux.) |
| 119 | |
| 120 | Version 092b (October 19, 2002) / |
| 121 | - An illegal memory access for EqualityIndex reported by |
| 122 | Thao Dang is fixed. Another bug of lcdd_gmp which takes |
| 123 | "real" data and return a false result is fixed. It now warns |
| 124 | that input is not correct for the exact arithmetic lcdd_gmp. |
| 125 | This error was reported by Andras Salamon. |
| 126 | |
| 127 | Version 092a (December 19, 2001) / |
| 128 | - Joerg Rambau kindly created an autoconf distribution of |
| 129 | cddlib-092. This version 092a is made from Rambau's |
| 130 | version with a slight modification. For the momoment, |
| 131 | the Mathematica cdd interface, cddmathlink (in src-mathlink), |
| 132 | still needs to be handled in the conventional manner by |
| 133 | editing Makefile. |
| 134 | |
| 135 | Version 092 (December 12, 2001) / |
| 136 | - the default value of dd_almostzero is now set to 1.0E-7 |
| 137 | instead of 1.0E-6. New functions are added for checking |
| 138 | redundancy of H- and V- representations such as |
| 139 | dd_Redundant, dd_RedundantRows, dd_ImplicitLinearity, |
| 140 | dd_ImplicitLinearityRows, and dd_RayShooting. |
| 141 | Also some basic operations on dd_MatrixPtr have been added such as |
| 142 | dd_MatrixAppendTo, dd_MatrixRowRemove, dd_MatrixSubmatrix. |
| 143 | |
| 144 | The names of enumeration type variables have been modified. |
| 145 | Now all names have prefix "dd_", e.g. Rational, Integer are |
| 146 | now dd_Rational and dd_Integer. This applies to TRUE and FALSE, |
| 147 | which are now dd_TRUE and dd_FALSE. |
| 148 | |
| 149 | Version 091d (March 9, 2001) / |
| 150 | - Memory leak in dd_FreeLPData and dd_FreeLPSolution are |
| 151 | fixed. |
| 152 | |
| 153 | Version 091c (February 27, 2001) / |
| 154 | - Bug to terminate before the completion of computation |
| 155 | (to produce a segmentation fault) is fixed. This |
| 156 | bug was reported by Hugh Anderson. |
| 157 | |
| 158 | Version 091b (February 26, 2001) / |
| 159 | - Numerous memory leak bugs with GMP exact arithmetic, |
| 160 | reported by Marc Pfetsch, are fixed. Also, a minor |
| 161 | bug of cddlib to terminate with core dump, reported by |
| 162 | Hugh Anderson, is fixed. The messages printed to |
| 163 | the standard output "stdout" are now sent to "stderr". |
| 164 | This was suggested by Ingo Schurr. |
| 165 | |
| 166 | Version 091a (February 16, 2001) / |
| 167 | - Memory leak problems when GMP is used are fixed for |
| 168 | dd_InitializeAmatrix, dd_CreateMatrix and |
| 169 | dd_Larger. These bugs, reported by Marc Pfetsch, |
| 170 | can be fatal if GMP is used and the functions are |
| 171 | called many times. It has no effect for floating-point |
| 172 | arithmetic computation. |
| 173 | |
| 174 | Version 091 (Sept. 25, 2000) / |
| 175 | - Memory leak in FreeDDMemory (cddcore.c) |
| 176 | is fixed. This bug, which might cause a serious problem, |
| 177 | was reported by Shawn Rusaw. Also, a bug reported by |
| 178 | Istvan Csabai on dynamic row ordering is fixed. This |
| 179 | problem is most likely not affecting anyone, since the |
| 180 | dynamic row ordering option is not available via the |
| 181 | publicly released documentations. David Avis contributed |
| 182 | a sample cddlib code, lcdd.c, which runs like his convex |
| 183 | hull code, lrs. In particular, it is useful to generate |
| 184 | standard output stream for piping in unix. |
| 185 | |
| 186 | Version 090e (July 12, 2000) / |
| 187 | - A bug of reading very large integer values incorrectly |
| 188 | is fixed. The previous versions were truncating very large |
| 189 | integer values to a number representable by long integer. |
| 190 | |
| 191 | Version 090d (June 25, 2000) / |
| 192 | - Serious bugs of dd_CopyOutput, dd_CopyInequalities are fixed. |
| 193 | This bug is found by Istvan Csabai. Earlier versions 090* |
| 194 | output wrong H-representations whenever the RHS constants |
| 195 | are not nonnegative, even though the computation runs |
| 196 | correctly internally. |
| 197 | |
| 198 | Version 090c (June 12, 2000) / |
| 199 | - set_intialize is modified so that it allocates a smallest space even when |
| 200 | a nonpositive length is requested. |
| 201 | The bug of not outputting the origin is fixed |
| 202 | when input is homogeneous inequality system and the cone contains |
| 203 | no extreme rays. Note that cddlib does not output this vertex |
| 204 | when the homogeneous cone has extreme rays, since cddlib outputs |
| 205 | a minimal representation. |
| 206 | |
| 207 | - A new function dd_DDInputAppend is added. |
| 208 | |
| 209 | - dd_DDMatrix2Poly replaces (and combines) the two old functions |
| 210 | dd_Matrix2Poly and dd_DoubleDescription. |
| 211 | |
| 212 | - dd_LPSolutionLoad is renamed as dd_CopyLPSolution. |
| 213 | |
| 214 | Version 090b (June 2, 2000) / |
| 215 | - Thanks to Shawn Rusaw's great help, I could detect and fix many |
| 216 | memory related problems (memory leak, out-of-bounds, etc). |
| 217 | Also, when input is not regular (nonfull or containing line), |
| 218 | cddlib did not generate adjacency/incidence properly and |
| 219 | this version should work more correctly. |
| 220 | |
| 221 | Version 090a (May 30, 2000) / |
| 222 | - a small bug fix in cddarith.c. The bug is reported by Shawn Rusaw. |
| 223 | |
| 224 | Version 090 (May 28, 2000) / |
| 225 | - Major revision over the previous versions. It can be now compiled |
| 226 | with GMP rational (-DGMPRATIONAL) as well as the standard C double. |
| 227 | cdd and lp codes are merged and easily called together. Many functions |
| 228 | and data types are modified and renamed. It comes with a simple |
| 229 | cdd/cdd+-type standalne program scdd which does the standard |
| 230 | representation conversion (*.ine <-> *.ext) and outputs all four |
| 231 | types of auxiliary files (*.icd, *.iad, *.ecd, *ead). Although it |
| 232 | lacks some functions such as preprojection of cdd+, scdd is potentially |
| 233 | the most powerful cdd ever since it runs in the two arithmetics and |
| 234 | it can handle any input. |
| 235 | |
| 236 | Because of the better readability and the overhead of employing |
| 237 | function calls to do GMP arithmetic, the speed is little slower than |
| 238 | cdd+-076 on both arithmetics C double and GMP rational. |
| 239 | |
| 240 | Version 086 (Jan 22, 2000) / |
| 241 | - A bug fixed in dd_LexSmaller that affercted the lexicographic |
| 242 | ordering of input data. This fix is essential for efficiency. |
| 243 | Also several memory leaks have been fixed. Many of these bugs |
| 244 | were found by Mr. Masanori Sato of Tokyo Institute of Technology. |
| 245 | Never released. |
| 246 | |
| 247 | Version 085 (October 4, 1999) / |
| 248 | - It can read rational data. Several minor bugs have been fixed. |
| 249 | The new makefile creates cdd and dplex library archives |
| 250 | libcdd.a and libdplex.a for unix systems. |
| 251 | |
| 252 | Version 080 (March 24, 1999) / |
| 253 | - The first C-library version of cdd. It is stilll very primitive |
| 254 | and has no documentation. See README.libcdd. Unlike the existing |
| 255 | versions of cdd/cdd+, cddlib can deal with essentially any input, |
| 256 | namely, non-full-dimensional convex hull problems and |
| 257 | vertex-free extreme point (i.e. generator) listing problems. Also |
| 258 | it comes with MathLink program cddmathlink that can be called from |
| 259 | Mathematica to perform cdd operations. |
| 260 | |
| 261 | |
| 262 | *** cdd version (date) / changes *** |
| 263 | |
| 264 | Version 0.61a (December, 1997) / |
| 265 | Few minor corrections over 0.61. |
| 266 | |
| 267 | Version 0.61 (December 1, 1997) / |
| 268 | It accepts "H-representation" and "V-representation" statements |
| 269 | which are added to a Polyhedra format (1997). |
| 270 | dp_FindInteriorPoint is added to dplex. Some small bugs are |
| 271 | fixed in dplex. |
| 272 | |
| 273 | Version 0.60 (August 27, 1996) / |
| 274 | The following changes are equivalent to ones that had been made |
| 275 | for cdd+-074. |
| 276 | The default output file names have been changed to be consistent |
| 277 | with the transformation. To avoid confusion, *.ine file should |
| 278 | be used only for a system of linear inequalities, and *.ext file |
| 279 | only for a set of extreme points and rays. Accordingly, |
| 280 | the files *.ead (previously *.adj) and *.ecd (previously *.icd) |
| 281 | are reserved for the adjacency and incidence files for the extremal |
| 282 | vertices/rays. |
| 283 | Similarly, *.iad (previously *.iad) and *.icd (previously none) |
| 284 | are reserved for the adjacency and incidence files for the inequality |
| 285 | data. |
| 286 | |
| 287 | The LP code is now independent of cdd, and rewritten as a C library. |
| 288 | This library is called dplex, and contains two algorithms, |
| 289 | the dual simplex and the criss-cross method. |
| 290 | |
| 291 | Version C0.56 (August 7, 1995) / |
| 292 | Some compilation problem associated with incompatible set_type |
| 293 | variables in setoper.c is fixed. Various minor bugs are fixed. |
| 294 | The output format of incidence file is slightly modified. (See |
| 295 | the Reference Manual cddman.tex). |
| 296 | |
| 297 | Version C0.55a (December 18, 1994) / |
| 298 | The broken "preprojection" option in Version 0.55 is fixed. |
| 299 | |
| 300 | Version C0.55 (December 5, 1994) / |
| 301 | Set operation library setoper has been modified to use |
| 302 | the optimized set_card function by David Bremner. It is expected |
| 303 | that cdd runs much faster for problems with large row sizes. |
| 304 | The package organization has been changed. Now the package |
| 305 | consists of four C-programs, cdd.c, cddio.c, cddarith.c and setoper.c. |
| 306 | New options verify_input, equality and strict_inequality are added. |
| 307 | Also new options, lineshelling and row_decomposition are added but |
| 308 | these options are still not in very reliable form and not |
| 309 | recommended to use. Some newly found (minor) bugs are fixed. |
| 310 | |
| 311 | Version C0.54 (October 30, 1994) / |
| 312 | The partial_enumeration option is renamed as "equality" option. |
| 313 | A new option of "strict_inequality" is added to enumerate those |
| 314 | vertices/rays satisfying some specified inequalities with strict |
| 315 | inequality. Some bugs in reporting progress of iteration is fixed. |
| 316 | |
| 317 | Version C0.53 (July 29, 1994) / |
| 318 | - Some imcompatibility of cdd and domcheck has been fixed. Namely, one can |
| 319 | write any comments after each inequality data as long as it is written in |
| 320 | the same line as the last number (i.e., a_{id}, for each i) of each ith |
| 321 | inequality data. Anything written after the last number will be ignored. |
| 322 | Also, random ordering option is added for specifying the ordering of |
| 323 | rows (inequalities). |
| 324 | |
| 325 | Version C0.52b (March 28, 1994) / |
| 326 | - The slowness problem of Version C0.52(a) is fixed. |
| 327 | |
| 328 | Version C0.51d (March 28, 1994) / |
| 329 | - Because of the slowness of Version 0.52* due to unknown reasons, this version |
| 330 | has been produced for a temporary replacement. This version fixes the bug |
| 331 | mentioned in Version C0.52 release. |
| 332 | |
| 333 | Version C0.52a (March 28, 1994) / |
| 334 | - A bug of Version C0.52 generating unnecessary information when |
| 335 | maximize, minimize and find_interior are chosen is fixed. |
| 336 | |
| 337 | Version C0.52 (March 21, 1994) / |
| 338 | - A bug of Version C0.51c generating segmentation fault when the option |
| 339 | preprojection is used is fixed. This bug was reported by Alexander Bockmayr of |
| 340 | Max-Planck Institute. |
| 341 | - Some structural changes in the programs, cdd.c and cddarith.c, have been made |
| 342 | mainly for a future planning of adding an option to decompose a problem into |
| 343 | smaller subproblems. |
| 344 | |
| 345 | Version C0.51c (March 15, 1994) / |
| 346 | - A bug of Version C0.51b (mishandling of homogeneous inputs, i.e. zero RHS) |
| 347 | is fixed. This bug was reported by Alexander Bockmayr of |
| 348 | Max-Planck Institute. |
| 349 | |
| 350 | Version C0.51b (March 9, 1994) / |
| 351 | - A bug of Version C0.51a (mishandling of non full-dimensional |
| 352 | polyhedron) is fixed. The bug was reported by Alexander Bockmayr of |
| 353 | Max-Planck Institute. |
| 354 | |
| 355 | Version C0.51a (Feb. 16, 1994) / |
| 356 | - A bug of Version C0.51 (mishandling of empty polyhedron) is fixed. |
| 357 | |
| 358 | Version C0.51 (Feb. 12, 1994) / |
| 359 | - Some bugs of Version C0.50 has been fixed. |
| 360 | - The option "algebraic" for selecting the algebraic adjacency computation |
| 361 | is deleted. The reason is the combinatorial adjacency computation |
| 362 | is almost always faster. |
| 363 | - The option "minimize" is implemented to minimize a linear function over |
| 364 | the polytope. Previously, only "maximize" was supported. |
| 365 | - The option "find_interior" has been added to compute an interior point of |
| 366 | the input polyhedron. |
| 367 | |
| 368 | Version C0.50 (Feb. 7, 1994) / |
| 369 | - Major upgrade to implement a new data structure to store adjacencies of rays. |
| 370 | The adjacency record lists, Edges(iteration), are used to store only necessary |
| 371 | adjacencies for each iteration. This version runs much faster unless |
| 372 | a dynamic ordering of rows (i.e. maxcutoff or mincutoff) is chosen. |
| 373 | The users are strongly discouraged to use these dynamic ordering options. |
| 374 | |
| 375 | Version C0.38(Jan. 31, 1994) / |
| 376 | - Bmatrix struct has been modified to store only the row pointers. Thus the program |
| 377 | does not use any 2-dim arrays, and uses mainly dynamic allocation memory as much |
| 378 | as necessary irrespective of the declared maximum size MMAX times NMAX. |
| 379 | Thus, even in Macintosh computers large problems can be solved. |
| 380 | - CrissCrossSolve LP solver has been updated to output dual solutions as well. |
| 381 | |
| 382 | Version C0.37(Jan. 25, 1994) / |
| 383 | - Amatrix struct has been modified to store only the row pointers. |
| 384 | |
| 385 | Version C0.36(Jan. 23, 1994) / |
| 386 | - RayRecord struct has been modified to store only a pointer for a ZeroSet so that |
| 387 | the necessary space for the set is allocated each time. This saves a space for |
| 388 | storing each RayRecord ZeroSet. For this modification, the setoper library |
| 389 | must have been changed so that set_initialize allocates the minimum space. |
| 390 | Note that this new version (Jan. 23, 1994) does not work with the older cdd |
| 391 | programs. |
| 392 | |
| 393 | Version C0.35(Jan. 23, 1994) / |
| 394 | - RayRecord struct has been modified to store only a pointer for a Ray vector so that |
| 395 | the necessary space for the vector is allocated each time. This saves a space for |
| 396 | storing each RayRecord. |
| 397 | |
| 398 | Version C0.34(Jan. 22, 1994) / |
| 399 | - adjacency option has been added to output the adjacency list of output. |
| 400 | |
| 401 | Version C0.33(Jan. 16, 1994) / |
| 402 | - partial_enumeration option has been added. By this option, one can enumerate all vertices |
| 403 | and rays which are lying on a selected set of inequalities. The input |
| 404 | ------------- |
| 405 | begin |
| 406 | m n Type |
| 407 | b -A1 -A2 |
| 408 | end |
| 409 | partial_enumeration |
| 410 | 4 1 4 6 7 |
| 411 | ------------- |
| 412 | restricts the enumeration for those lying on the 1st, 4th, 6th & 7th hyperplanes. |
| 413 | |
| 414 | Version C0.32(Jan. 11, 1994) / |
| 415 | - "preprojection" option has been added. This option can be considered as a preprocessing |
| 416 | of orthogonal projection of the polyhedon to a subset of variables. That is, if the inequality |
| 417 | inequality system is of form A1 x1 + A2 x2 <= b, and the variable indices for x2, say 1, 4, 6, 7, |
| 418 | are listed in the input file as |
| 419 | ------------- |
| 420 | begin |
| 421 | m n Type |
| 422 | b -A1 -A2 |
| 423 | end |
| 424 | preprojection |
| 425 | 4 1 4 6 7 |
| 426 | ------------- |
| 427 | Then, cdd will output the inequality system, A1 x1 <= b, together with the list R of extremal |
| 428 | rays of the homogeneous cone {z: z >=0 and z A2 = 0 }. Consequently, the inequality system |
| 429 | {r A1 x1 <= r b for each r in R} represents the projection of the original polyhedron onto |
| 430 | x1-space with possible redundancy. The supplementary C program (written by F. Margot) |
| 431 | will be used to obtain a minimal system from these two outputs. |
| 432 | |
| 433 | Version C0.31(December 20, 1993) / |
| 434 | - The main program cdd.c has been divided into two parts, cdd.c and cddarith.c, the latter |
| 435 | contains all the procedures dealing with floating point numbers and operations. |
| 436 | - LP solver CrissCrossSolve has been added. Now the option "maximize" can be used to |
| 437 | optimize any linear function over the polyhedron. |
| 438 | - The setoper library has been updated to accomodate set_card(set) function. |
| 439 | |
| 440 | Version C0.27(December 8, 1993) / |
| 441 | - It uses a new versions of setoper.h and setoper.c (Dec 8, 1993 version) which have |
| 442 | set complemen procedure set_compl. |
| 443 | |
| 444 | Version C0.26b(December 8, 1993) / |
| 445 | - FindBasis and ComputeRank have been replaced with new programs which do not copy |
| 446 | Amatrix (for save storage and time). Accordingly, the procedure CopyAmarix has been |
| 447 | removed. |
| 448 | |
| 449 | Version C0.26 (November 29, 1993) / |
| 450 | - FindBasis has been modified to be faster when the number of inequalities is large. |
| 451 | - addition of #incidence option for outputting the cardinality of active |
| 452 | hyperplanes instead of the set of all active hyperplanes at each vertex. |
| 453 | - InitBasisAtBottom option has been added to select the last set of rows |
| 454 | as the initial basis (determining a simplex cone/polytope). |
| 455 | This option is {\em not\/} default. See User's manual. |
| 456 | |
| 457 | |
| 458 | Version C0.25 (November 28, 1993) |
| 459 | - The bug for mishandling the empty polyhedra input is fixed. |
| 460 | Accordingly, the new variable CompStatus (Completion Status) |
| 461 | has been added. |
| 462 | |
| 463 | - The procedure AddNewHyperplane and EvaluateARay have been completely |
| 464 | changed. EvaluateARay computes A(hnew) * Ray for each Rays, and sort |
| 465 | the linked list of rays so that the hnew-infeasible rays will be |
| 466 | put consecutively from FirstRay. |
| 467 | |
| 468 | |
| 469 | Version C0.24 (November 27, 1993) / |
| 470 | - Modified to be able to deal with column size (nn) larger than 32. |
| 471 | - Bugs of LexMin, LexMax ordering options are fixed. |
| 472 | |
| 473 | Version C0.23a, b (November 23, 1993) / |
| 474 | - Few small bugs of C0.23 have been fixed. |
| 475 | - Up to this version, the program can deal with column size at most 32. |
| 476 | |
| 477 | Version C0.23 (November 22, 1993) / |
| 478 | - First release of cdd. |
| 479 | |
| 480 | Version C0.22 (November 21, 1993) / |
| 481 | - File open procedures have been updated. |
| 482 | |
| 483 | Version C0.21 (November 10, 1993) / |
| 484 | - The first version of cdd created by translating pdd.p (0.21) with |
| 485 | Dave Gillespie's p2c translator and by modifying the c-code. The set operation |
| 486 | libraries setoper.c, setoper.h (Nov.14, 1993) were created to make the code run |
| 487 | without any p2c libraries. |
| 488 | |
| 489 | *** cdd+ version (date) / changes *** |
| 490 | |
| 491 | cdd+ Version 0.77beta (April 20, 2003) / |
| 492 | This version is made so that it can be compiled with |
| 493 | newer gcc. such as gcc 3.1.*. |
| 494 | |
| 495 | cdd+ Version 0.76 (March 17, 1999) / |
| 496 | This is functionally the same as Ver. 075. This version can |
| 497 | be compiled to run with GNU's GMP rational arithmetic library using |
| 498 | Polymake's GMP-wrappers. cddr+ with GMP runs much faster than |
| 499 | the previous versions of cddr+ (with g++ Rational library). |
| 500 | |
| 501 | cdd+ Version 0.75 (November 30, 1997) / |
| 502 | This is a maintenance update of the previous version to employ the |
| 503 | new 1997 Polyhedra format (introducing H-representation and |
| 504 | V-representation statements). Three options for accuracy control |
| 505 | is added: "zero_tolerance", "round_output_off" and "output_digits". |
| 506 | |
| 507 | cdd+ Version 0.74 (June 17, 1996) / |
| 508 | Few minor bug fixes were made. |
| 509 | |
| 510 | cdd+ Version 0.74beta2 (June 5, 1996) / |
| 511 | Also "vertex_listing_external" and "facet_listing_external" |
| 512 | are added. These options do "vertex_listing" and "facet_listing" |
| 513 | against the external file which can be huge. These options are |
| 514 | useful when one has a small candidate set of vertices (or inequalities) |
| 515 | and a large set of perhaps-redundant points (or inequalities). |
| 516 | The external file must be named as "test.ext.external" (test.ine.external) |
| 517 | if the candidate input file is test.ext (test.ine). |
| 518 | |
| 519 | cdd+ Version 0.74beta (June 4, 1996) / |
| 520 | The option "vertex_listing" is added. |
| 521 | The dual simplex method uses the standard Phase I instead of |
| 522 | the criss-cross method. Consequently the LP code is faster. |
| 523 | |
| 524 | cdd+ Version 0.74alpha (March 30, 1996) / |
| 525 | The default output file names have been changed to be consistent |
| 526 | with the transformation. To avoid confusion, *.ine file should |
| 527 | be used only for a system of linear inequalities, and *.ext file |
| 528 | only for a set of extreme points and rays. Accordingly, |
| 529 | the files *.ead (previously *.adj) and *.ecd (previously *.icd) |
| 530 | are reserved for the adjacency and incidence files for the extremal |
| 531 | vertices/rays. |
| 532 | Similarly, *.iad (previously *.iad) and *.icd (previously none) |
| 533 | are reserved for the adjacency and incidence files for the inequality |
| 534 | data. |
| 535 | |
| 536 | Also, when a file with default file name exists in the current |
| 537 | directory, the default extension name will be doubled. For instance, |
| 538 | if test.ine is input and test.ext exists, then the extreme points |
| 539 | and rays will be written in the file test.ext.ext. The program |
| 540 | does not check "test.ext.ext" exists, and thus such a file |
| 541 | will be overwritten if exists. |
| 542 | |
| 543 | cdd+ Version 0.73 (Septembe 6, 1995) / |
| 544 | A new option "input_adjacency" has been added. |
| 545 | The output format of incidence file is slightly modified. (See |
| 546 | the Reference Manual cddman.tex). This incidence file format is compatible |
| 547 | with cdd-056 and we will try not to change the format any more. |
| 548 | |
| 549 | cdd+ Version 0.72a (April 16, 1995) / |
| 550 | Cycling bug of Version 072 of LP maximize and minimize has been |
| 551 | fixed. |
| 552 | cdd+ Version 0.72 (April 16, 1995) / |
| 553 | The option "postanalysis" is added. This option is to be used |
| 554 | after *.ext file is obtained. When this option is set |
| 555 | with adjacency and/or incidence options, one can get |
| 556 | adjacency and incidence files from both *.ine and *.ext |
| 557 | files. Thus it is not necessary to generate *.adj and *.icd |
| 558 | files together with *.ext file. |
| 559 | |
| 560 | cdd+ Version 0.71 (April 15, 1995) / |
| 561 | Two new functions (through options) are added. The option |
| 562 | "facet_listing" checks whether each input inequality determines |
| 563 | a facet or not. The second option "tope_listing" generates |
| 564 | all full-dimensional regions (topes) of the associated |
| 565 | arrangement of hyperplanes by reverse search algorithm. |
| 566 | Also, the option "show_tableau" is added to illustrate |
| 567 | how the criss-cross method works in the tableau (dictornary) |
| 568 | form. Criss-cross LP solver is now sensitive to ordering |
| 569 | options, lexmin, minindex, radom, etc. |
| 570 | |
| 571 | cdd+ Version 0.70 (April 3, 1995) / |
| 572 | The first C++ version of cdd which can run on both floating-point |
| 573 | and rational (exact) arithmetics. The basic functions are |
| 574 | identical to cdd-055. This version requires GNU gcc compilers |
| 575 | (2.6.0 or higher) and a compatible g++lib. |
| 576 | |
| 577 | |
| 578 | --- end of file: cddHISTORY --- |
| 579 | |