-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathChangeLog
309 lines (305 loc) · 15.7 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
version 1.1.2: added support for height ouput even in cases where all
triangulations are regular; supported transformation to full rank
also in checkregularity and points2placingtriang; completed
IntegerSet64 with missing functions available for IntegerSet;
fixed template overload with identical types on 32-bit systems by
making parameter_type signed; fixed output of heights in
checkregularity client; made murmur hash function 32bit-safe; some
more technical bugfixes for 32bit compatibility
version 1.1.1: first bug fixes based on reports; configure script now
allows to use system-wide gmp installation
version 1.1.0: upgraded version for first distribution of the new TOPCOM
version 1.0.19: many general corrections and improvements;
corrected a determinant calculation in VirtualChiro for the case
of --memopt
version 1.0.18: supported a prescribed cardinality for the enumeration of
all triangulations; fully supported the lazy evaluation of
chirotope determinant values (not only the signs)
version 1.0.17: excluded flips on positive circuits in order to provide a
sensible result for totally cyclic point configurations; shifted
the output of heights to the same output stream where the
triangulations are output
version 1.0.16: added an option to utilize Permlib for symmetry
computations (temporary and only for testing)
version 1.0.15: implemented a novel canonicity-check combined from switch
tables and the Pech-Reichard algorithm, which is suitable when the
order of the symmetry group is much larger than the degree
version 1.0.14: implemented construction of switch tables directly from
generators; fixed some indexing and memory management bugs
version 1.0.13: upgraded to c++17 standard; drastically improved the
cocircuit enumeration by better pruning
version 1.0.12: improved some memory management details
version 1.0.11: improved the implementation of switch tables including
renaming them to the original name "switch table"; improved the
symmetry check for subsets (can be deactivated with --memopt);
added a more cache coherent representation of symmetries for the
enumeration of all triangulations
version 1.0.10: added an alternative algorithm for cocircuit enumeration
version 1.0.9: added non-sophisticated support to compute all vertices of
a point configuration via circuits;
added a graphics module to generate graphics output for the
graphics language "asymptote"
version 1.0.8: used lex-comparison of integer sets only for sets of equal
cardinality; in the lex-order enumeration case of all
triangulations now the processing of admissibles in a partial
triangulation is stopped as soon as the lex-minimal interior facet
is lex-smaller than the lex-minimal facet of the new simplex
because all further admissible simplices will have the same
property
version 1.0.7: added the Cayley embedding of two hypersimplices to the
example clients as an extension to the "hypersimplex" client;
exchanged the parameters to the order "dimension", "sum"[,
"sum2"]; a minimal triangulations is now output in
points2mintriang and chiro2mintriang
version 1.0.6: introduced an extendability check relying on the lex-order
of all simplices; bug fixes
version 1.0.5: improved RegularityCheck by enhancing the chirotope by the
rational values of all determinants, which have always been
computed anyway but have never been used; supported usage of GKZ
vectors as a proxy for detection of an old symmetry class; improved
the order of extendability and symmetry checks in enumeration of
all triangulations
version 1.0.4: fixed a bug where the report_progress function was totally
enclosed in a critical section, where only the actual output is
critical; all waits of conditional variables are now enclosed in
appropriate while loops
version 1.0.3: encapsulated TOPCOM into the name space "topcom"
version 1.0.2: updated the interface to the soplex LP solver
version 1.0.1: implemented a more capable node type with symmetry support
for the enumeration of (co-)circuits to be used in
SymmetricSubsetGraph; used the same concept for the enumeration of
triangulations using a representation of symmetries in terms of
permutations of simplex indices
version 1.0.0: implemented a simple version of the mts principle by Avis &
Jordan ("A parallel framework for reverse search using mts")
for the clients to enumerate all triangulations and (co)circuits,
resp.; introduced classification tables for symmetries to speed up
the check for the existence of lex-decreasing symmetries;
implemented multithreading into symmetry orbit processing;
implemented an interface to QSopt_ex; upgraded to gmp-6.2.0 and to
cddlib-0.94j;
remark:
the general code cleanup and the major technical changes can make
hidden errors more likely; if in doubt wait for bug-fixed releases
with larger minor version numbers
version 0.19.3: improved the enumeration algorithms for (co)circuits by
checking for old symmetry class by the existence of
colex-increasing permutations
version 0.19.2: reorganized the code by calling the flip graph enumeration
structure SymmetricFlipGraph instead of SymmetricBFS and
the extension graph structure SymmetricExtensionGraph instead of
SymmetricDFS because both can be explored by both BFS and DFS;
adapted the old chiro2mintriang client to the new
SymmetricExtensionGraph methods; added a matching points2mintriang
client; corrected an error in the extendability obstruction: two
free facets might be covered by the same simplex, in which case
that simplex as an extension at one freefacet is not admissible to
itself as an extension to the other freefacet.
version 0.19.1: replaced the simplistic enumeration of all triangulations
in the client points/chiro2(n)alltriangs by a more sophisticated
preprocessing structure and a modified algorithm that uses a
certificate for non-extendability of a partial triangulation (a
drastic improvement); moreover, at last, it supports symmetries.
version 0.19.0: added a new implementation of circuit enumeration
utilizing symmetries; reorganized the code for enumeration of all
triangulations so that the algorithm uses symmetries as well;
added a class IntegerSet64 that can be used instead of
IntegerSet for subsets of {0, 1, 2, ..., 63}. No check is
performed; instead all element numbers are considered modulo 64;
using this structure for simplices can be switched on by a
compiler define
version 0.18.0: added more efficient clients "<points|chiro>2<n>circuits"
for computing/counting all circuits of a point
configuration/chirotope using symmetries
version 0.17.9: issue an error message when "--regular" is given but all
triangulations shall be computed
version 0.17.8: pure bugfix: the wrong version of gmp was packaged;
must be 6.1.1 by now
version 0.17.7: fixed a bug in SPXinterface.cc where a new[] had a
non-matching delete
modernized autoconf/automake initialization
updated gmp to version 6.1.1
version 0.17.6: added a command line option that allows only balanced flips
version 0.17.5: renamed the static "nullptr()" method for SmartPtr<T>
to "smartnullptr()" because the standard literal "nullptr" is
implemented as a macro in gcc-4.2.1 such that the declaration of
"nullptr()" in class SmartPtr<T> gets corrupted
forced "$libdir" in "external" to "lib" in order to avoid problems
with autoconf installations that use lib64 on 64-bit systems and
multi-binary systems (no harm here because the installation of
externals is done only local inside the TOPCOM build tree)
removed usage of unordered_set/map altogether because of differing
include paths of different compilers
for that same reason, the profiling tool "bench" was removed from
the distribution
version 0.17.4: gmpxx.h is now overloaded by a version that canonicalizes
all rational input data right away
version 0.17.3: updated to gmp-5.0.5
since "0/5 != 0" in mpq_class (gmp),
introduced a special "is_zero" test for Rationals
that only uses the numerator
version 0.17.2: correction of a syntax issue with gcc 4.7
update of the address of the FSF in COPYING and README
(thanks to the Fedora team for the report!)
version 0.17.1: correction of read from input stream in Facets.hh
ID for triangulations allowing for an option to output flip edges
version 0.17.0: new function to construct Birkhoff subpolytopes
new function to transform point configuration to full rank
representation (carefull: this may change normalized volumes)
version 0.16.4: updated alternative STL structures to modern gcc
added command line option "--reportfrequency [n]" with the meaning
that every [n]th new triangulation triggers a report to stderr
version 0.16.3: changed shell command for external builds from csh to sh
output heights in terms of exact fractions not doubles
version 0.16.2: external includes/libs are now allways taken from
external/include resp. external/lib
version 0.16.1: improved automatic build of external packages gmp and cdd
vanilla-cdd function "dd_free_global_constants" is now used
instead of "dd_clear_global_constants"
version 0.16.0: dumped polymake wrappers and switched to gmpxx wrappers
version 0.15.4: updated documentation
version 0.15.3: fixed dump file processing
version 0.15.2: removed extra qualification "__is_const_iterator::" and similar
fixed dump support by adding "clear()" at the beginning of parsing hash tables
version 0.15.1: patched cdd because of memory leak
version 0.15.0: new commandline option "--nonregular": it triggers an output filter
so that only the nonregular triangulations are output. As opposed to
"--regular" it does not reduce the number of triangulations explored;
provided some new clients for points that have been there already for chirotopes
updated to gmp-4.2.1 and cddlib-0.94b
version 0.14.0: first version that compiles on gcc4
chiro2* returns an error now if --regular is given as an option
(regularity is not a well-defined concept without coordinates)
version 0.13.3: corrections in template specializations
new generator for hypersimplices
new examples
version 0.13.2: corrections in the usage message
automake 1.7 adaptions
corrected a bug that made the computation of the closure
of the symmetry generators slow (gcc should not have compiled
the old code since it contained a const bug)
version 0.13.1: automated the installation of external packages
gmp and cddlib in external by the configure script
automatic detection of soplex and addition to the set
of libraries in LIBS
version 0.13.0: new command line options
--soplex : use soplex for regularity check (unstable)
--nosym : ignore symmetries
--heights: output height vector for every regular triangulation
(requires --regular as well)
corrected a bug causing regularity check being called
unnecessarily often
patched gmp wrappers so that there is some chance that
the package compiles under gcc 2.95 (only checked on PPC)
version 0.12.1: new interface to soplex
(be aware that regularity checks using soplex
maybe incorrect because of numerical problems)
version 0.12.0b: bug fix release: 0.12.0 mistakenly required soplex
version 0.12.0: compatibility to gcc3.2
version 0.11.1: correction of an error in the distribution (tweaks.h was missing)
default is again to use uncompressed integer sets
version 0.11.0: new gmp wrappers from the polymake team
added commandline options to reduce the number of points
and to check regularity in fixed frequencies
added support for the use of a compressed integer set
stucture in simplicial complexes
version 0.10.2: added new commandline options for
checking regularity at a fixed frequency
reducing flips to vertex-removing flips
forbidding vertex-inserting flips
upgraded to automake 1.5
version 0.10.1: Replaced the use of HashSet by STL set for relatively small sets
hash function uses multiplication instead of xor again
(reduces chaining in large sets considerably).
Introduced an invariant for bitsets to speed up negative equality check
and pseudo-lexicographic comparison.
Simplified hash function for IntegerSets and SimplicialComplexes by exploiting
the invariant.
Accellerated the IntegerSet iterator by using byte tables for
first set bit and nunber of set bits.
Introduced compiler flags to replace some container structures by STL standard
containers; fastest setting at the time being is `-DSTL_SYMMETRIES' since the
only relevant operations for symmetries are
constant iteration and iterator dereferencing, which is faster in
ordered sets than in HashSets.
version 0.10.0: Incorporated cddlib and a commandline option to count only
regular triangulations.
version 0.9.3: Updated for gcc3: mainly additions of `std::'.
Replaced lrand48() by random() for the universal randomized
hashing because MacOSX-gcc-stdlib does not contain lrand48().
Removed explicit template instantiation because that does not work
on all systems (thanks Ulrich Kortenkamp for reports on installing
TOPCOM on MacOSX).
version 0.9.2: Bug fixes: removed and attempt to overload `xor'.
Removed some offending friend declarations in definitons
of internal classes. Added a commandline parameter `-no <n>'
specifying that only triangulations with exactly n simplices
are considered.
version 0.9.1: Added a program `lattice m n' to compute the point
configuration of all lattice points in the rectangle [0,0], [m,0],
[0,n], [m,n]. Added `chiro2[n]allfinetriangs'. Added `triangs'
with new command line parameters in order to eventually reduce the
number of binaries in the TOPCOM package
version 0.9.0: Adapted to gmp-3.1 with the help of polymake.
Field is now a synonym of Rational, i.e.,
the possibility of choosing double arithmetic
was removed.
Fixed a bug in cyclic.cc that produced too large coordinates
(submitted by Julian Pfeifle).
version 0.5.6: Fixed a bug in wrap-gmp/Makefile.am:
include path pointed to wrong version of gmp.
version 0.5.5:
Fixed a bug in VirtualChiro.cc that caused
segfaults in chiro2[n]triangs
Version 0.5.4:
Minor changes in the documentation files and comments.
For details concerning the Santos triangulation see
Francisco Santos' paper
``A Point Set whose Space of Triangulations is Disconnected''
Journal of the American Mathematical Society, to appear.
Version 0.5.3:
Minor changes in the documentation files and comments
Version 0.5.2:
Bugfix in santos_triang
Version 0.5.1:
added points2flips, points2nflips:
computes only the flips of the seed triangulation.
The commands
{chiro,points}2{[n][fine]triangs}
accept a seed triangulation given by the user.
added some command line options
-m: try to comsume less memory
-c: check the seed triangulation given by the user
-cc <n>: set the chirotope cache size to <n> bases.
-v: verbose
The famous brandnew triangulation without flips constructed
recently by Francisco Santos is now included in the examples
directory
(courtesy of Francisco Santos).
Moreover, there is a program `santos_triang' that computes the
input data of the Santos triangulation for TOPCOM. With this
equipment everybody should be able to check that spectacular
result by typing the command santos_triang | points2nflips -v -c
-m and waiting like ten minutes.
Version 0.4.0:
added points2triangs, points2ntriangs,
points2finetriangs, points2nfinetriangs,
points2placingtriang, points2finetriang:
commands computing the data from the point set
by constructing its chirotope on the fly (lazy evaluation).
Version 0.3.0:
added chiro2finetriang, chiro2finetriangs, chiro2nfinetriangs:
commands providing only triangulations using all vertices
verbosity is controlled via commandline option -v
Version 0.2.0:
changed representation of flips
Version 0.1.3:
replaced libg++ arithmetics by libgmp plus polymake wrappers
(courtesy of E. Gawrilov and M. Joswig)
Version 0.1.2:
removed dfschiro2ntriangs from the distribution
Version 0.1.1:
the point [0, ..., 0] is now rejected
added dfschiro2ntriangs; might save memory over chiro2ntriangs
Version 0.1:
first distributed version