Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Analysis.AlgorithmBehavior/qhull-2012.1/src/Changes.txt @ 10207

Last change on this file since 10207 was 10207, checked in by ascheibe, 11 years ago

#1886 added a unit test for volume calculation and the qhull library

File size: 82.5 KB
Line 
1
2.............This file lists all changes to qhull and rbox.....................
3
4------------
5Need help
6 - Qhull needs RPM and Debian builds (CMake's CPackRMP and CPackDeb).   
7 - Add an Autotools build for everything
8 - Set up debian build [octave-maintainers]
9   Please keep debian files in config/
10 - Qhull needs a mirror/archive site for old and new builds
11 - The C++ interface needs work.  Give it a try and make it better.
12   http://gitorious.org/qhull/
13 - Document with Qt conventions using Doxygen (//! and //!<)
14 - Produce conformant triangulations for merged facets using option 'Qt'
15
16To do
17 - Review email for doc changes before jun'10
18 - Git: Create signed tags for Qhull versions
19 - Wiki: Add FIXUP to QH11026 for known problems
20 - Notes to compgeom on conformant triangulation and Voronoi volume
21 - Set File Ver and Product Ver in dll
22 - For the C++ interface, make qh_qh a parameter instead of a global static
23   This replaces qh_QHpointer.  It simplifies multithreading.
24 - Compute the convex hull of each Voronoi or Delaunay region
25 - Performance test of qset and qhull
26
27------------
28Qhull 2012.1  2012/02/18 6.3.1.1494
29 - Fix CMakeLists for libqhull with MATCHES [P. Gajdos]
30
31------------
32Qhull 2012.1  2012/02/18 6.3.1.1490
33
34Code changes
35 - Require option 'Qz' for Delaunay triangulation/Voronoi diagram
36   of cocircular/cospherical points [D. Sheehy]
37 - qh_errexit: Do not call qh_printsummary or qh_printstats on qh_ERRinput
38 - Change error QH6227 (all degenerate) from qh_ERRinput to qh_ERRprec
39 - Change error QH6159 (ID overflow) from qh_ERRinput to qh_ERRqhull
40 - eg/q_eg, q_egtest, q_test: Run if qconvex is in $PATH [M. Atzeri]
41   
42Build changes [M. Atzeri]
43 - Install to share/doc/qhull instead of share/doc/packages/qhull
44 - On Unix systems, install to share/man/man1 instead of man/man1
45 - CMakeLists: Remove the installation of user_eg* and testqset
46 - CMakeLists: Remove VERSION from qhull executables and libraries
47 - CMakeLists: Define qhull_SOVERSION instead of qhull_MAJOR
48 - CMakeLists: Set SOVERSION for shared libraries
49 - Rename libraries to qhull, qhull_d, qhull_p, and qhull_pd
50   libqhull6_p.vcproj is now libqhull_p.vcproj
51   mingw builds as libqhull.dll
52   cygwin builds as cygqhull-6.dll
53   linux builds as libqhull.so.6.3.1 with symbolic link as libqhull.so
54 - Developers using qhull 2011:
55   libqhull6.so is now libqhull_p.so.  Do not use libqhull.so.
56   qhull6.dll is now qhull_p.dll.  Do not use qhull.dll.
57 - Merged road/ into libqhullcpp/ and qhulltest/
58   Moved RoadLogEvent.* and RoadError.* to libqhullcpp
59   Moved RoadTest.* to qhulltest (requires Qt)
60   Installed RoadTest.h in libqhullcpp
61
62Doc changes
63 - index.htm: Mathworks uses qhull for n-d
64 - qhull.htm: Fix qhull for qconvex
65 - qdelaun.htm/qvoronoi.htm: Use option 'Qz' for circular/cospherical inputs
66 - make help: Display targets
67 - Makefile: Better messaging
68
69------------
70Qhull 2012.1  2012/02/02 6.3.0.1483
71
72Bug fixes
73 - Fixed qset.c for -fno-strict-aliasing. This gcc option is no longer needed
74   (disallow two pointers of differing types to the same memory location)
75 - Fixed error in qh_setappend_set if first set full and second set empty
76 - qh_setdelnth, qh_setdelnth_sorted: fixed wording of error message
77 - qh_setcheck: error message listed size and max backwards.
78 - qh_setequal: Allow NULL set as documented
79 - qh_setindex: Allow NULL set as documented
80 - qh_settemppush: report error if NULL
81
82Code changes
83 - Add testqset: low level test of qset.c with mem.c
84 - qh_setendpointer: Implements QSet::endPointer()
85 - Assigned unique error code for qh_gethash
86
87Build changes
88 - Added qhull.dll(.so) for Octave and other Debian builds
89   The global data structure qh_qh is statically defined (no qh_QHpointer)
90   Linked user_eg2 with qhull.dll (libqhull.so) instead of qhullstatic
91   Added qh_dllimport to libqhull.h for qhull.dll with MSVC
92   Changed qhull-app-shared.pri to use libqhull (without qh_QHpointer)
93 - Renamed libqhull6.so to libqhull6_p.so
94   Renamed qhull6.dll to qhull6_p.dll
95   The _p libraries (e.g., libqhull6_p.so) require -Dqh_QHpointer
96   Renamed qhull6.vcproj to libqhull6_p.vcproj
97   Added libqhullp/libqhullp.pro for shared library (libqhull6_p.so)
98   Added qhull-app-sharedp.pri for shared libraries with qh_QHpointer
99 - Install libqhull/*.htm files into include/libqhull
100 - Removed libqhull/qhull.h-deprecated [J. Eaton]
101 - Other changes to Makefile builds
102   Added 'make qtestall' as a smoketest of each qhull program
103   src/libqhull/Makefile: Use 'ar -rs ...' instead of ranlib
104   src/libqhull/Makefile: Fixed targets for cleanall
105 - Other changes to DevStudio builds
106   Moved pdb files for qhull libraries to lib/
107   AdditionalIncludeDirectories: Removed ../src/libqhullcpp
108   Use build-cmake/ for the DevStudio CMake build
109 - Other changes to Qt builds
110   Renamed qhull-libsrc.pri to qhull-libqhull-src.pri
111 - Added explicit d2u conversions to qhull-zip.sh
112 - Fixed \n vs. \r\n issues for Windows source files
113
114 Draft of Debian/AutoConf build (untested)
115 - Adjusted the Makefile.am's for the new directory structure.
116 - Added testqset to bin_PROGRAMS
117 - config/bootstrap.sh copies program sources into src/libqhull
118 - Kept qh_QHpointer=0 (static global data structure, qh_qh).  It is faster.
119   Planning a new interface (qhull7?) which passes qh_qh as a parameter
120 - Added config/changelog from the 2003.1 Debian build
121 - Moved the debian/patches directory to config/
122   Optional patches to change smoketest message and turn on qh_QHpointer
123 - Deleted the debian directory.  It was the old Debian build from 2003.1
124   Rafael Laboissiere's config directory replaced this build..
125 - Deleted Make-conf.sh (also the old Debian build)
126 
127Doc changes
128 - FAQ: Updated notes on computing volume of a Voronoi region
129 - Added direct link to ACM Digital Library for downloading the qhull paper
130 - Added link to Qhull in R
131 - qset.c: Updated notes about NULL sets
132 - qh_setappend: clarify qh_setappend for NULL newelem
133 - qh_setdellast: Fix head note
134 - Add build/README.txt
135 - Add uninstall instructions to README.txt and CMakeLists.txt
136 - Added instructions to create build/*.vcproj to CMakeLists.txt
137 - Update copyright to 2012
138 - Updated page links.  Added Google books, patents, and blogs.
139
140-----------
141Qhull 2009.1.3 2011/12/06
142  configure: Add  -fno-strict-aliasing if $GCC,  Required for gcc 4.1+
143
144------------
145Qhull 2011.2  2011/11/29 6.2.1.1446
146
147Bug fixes
148 - qh_new_qhull: Call qh_prepare_output if !outfile [A. Aldoma]
149   No effect on qhull users since qh_prepare_output is always called.
150 - Replace Qhull-go.pif with Qhull-go.lnk for Windows 7 64-bit [lots]
151 - Error if qh_newhashtable, qh_setnew, or qh_memalloc overflows [X. Cheng]
152   For example, 'rbox 64 D32' overflows hash table for qh_matchnewfacets
153   Qhull uses 32-bit ints for identifiers, counts, and sizes. See "WARN64"
154 - q_eg, q_test: change tail +3 to tail -n +3 [N. Dubray, M. Atzeri]
155 - Qhull-go.bat: Changed 'cmd' to '%comspec%'
156
157Build changes
158 - Added src/libqhull/Makefile for simple gcc build of executables and lib
159 - qhulltest.vcproj: Replaced full path to QT with $QTDIR (e.g., c:/qt/4.7.4)
160 - Split userprintf_rbox.c from userprintf.c, 
161   Otherwise qhull brings in rboxlib and rbox brings in libqhull
162 - Makefile: qhullx target must be after LIBQHULLS_OBJS
163 - Makefile: Explicitly list rbox dependencies for qhullx target
164 - MBorland: Fixed tabs
165 - Placed $LIBQHULLS_OBJS in same order.  Frequently called ones together.
166 - Update file lists for Make-config.sh [O. Lahaye]
167 - CMakeLists: add README.txt,etc. to DOC_INSTALL_DIR [M. Atzeri]
168 - Restored qhull.h-deprecated. 
169   qhull.h conflicts with Qhull.h on Windows systems [C. Abela]
170 - make-config.sh: Add warning that it is out-of-date
171 - Remove extra space in '#! /bin/sh' in q_eg, etc. [P. Cheeseman]
172
173Source changes
174 - libqhull.h: Added qh_True and qh_False for True/False [A. Mutzel]
175   Did not remove or replace True/False since it is used everywhere
176 - Moved error message from qh_argv_to_command to caller.  Avoids dependency.
177 - user_eg3.c: Use '10 D2' as default rbox (e.g., 'user_eg3 rbox qhull d')
178 - user.c, user_eg2.c: Add test of qh_qh as done in user_eg.c
179 - q_test: Removed duplicate test of qhull C-0.02
180
181Documentation
182 - index.html: Added ACM Authorizer link to ACM Trans. Math. Software
183 - Split Delaunay and Voronoi FAQs
184 - FAQ: How to compute the volume of a Voronoi region [C, Brinch]
185 - Add 'FS' to qconvex prompt (total area and volume)
186 - Add clarification to 'Fv' about corner input sites [O. Can]
187 - Qhull-go.bat: Removed out-of-date advice.  Added title.
188 - qh-code.htm: Updated the discussion of multi-threading for C++ [I. Pirwani]
189 
190Qhull 2009.1.2 2011/11/21
191 - Revert to LF line endings [P. Cheeseman]
192 - Remove out-of-date material from qhull-go.bat
193 - Replaced QHULL-GO with a lnk file
194
195Qhull 2011.1  2011/05/23 6.2.0.1385 (exe/dll files unchanged)
196 - delaunay.vcproj: Fixed qhullstatic_d.lib for debug and minrelsize builds
197 - Did not redate the distribution
198
199Qhull 2011.1  2011/05/18 6.2.0.1385 (exe/dll files unchanged)
200 - Add 'm' library to shared and static targets on Unix [A. Bouchard]
201
202Qhull 2011.1  2011/05/14 6.2.0.1383 (exe/dll files unchanged)
203 - PointCoordinates.cpp: Add #include <iterator> [R. Richter, S. Pasko]
204 - Remove deprecated libqhull/qhull.h
205   Use libqhull/libqhull.h instead.  Avoids confusion with libqhullcpp/Qhull.h
206 - Makefile: Add LIBDIR, INCDIR, and DESTDIR to install [L.H. de Mello]
207     Separate MAN install from DOC install
208     Create install directories
209     Installs headers to include/libqhull, include/libqhullcpp, include/road
210 - CMakeLists.txt: Add MAN_INSTALL_DIR for qhull.1 and rbox.1 man pages
211     Add RoadTest.h to include/road for Qt users (road_HEADERS)
212 - Renamed md5sum files to avoid two extensions
213 - qh-get.htm: Add Readme links and 2009.1 note.
214 - qh-optf.htm: Fix link
215 - index.htm: Updated Google Scholar link
216 - qhull-zip.sh: Improved error message.
217
218------------
219Qhull 2011.1  2011/04/17 6.2.0.1373
220
221Changes to deliverables
222 - qvoronoi: Deprecated 'Qt' and 'QJn'. Removed from documentation and prompts.
223   These options produced duplicate Voronoi vertices for cospherical data.
224 - Removed doskey from Qhull-go.bat.  It is incompatible with Windows 7
225 - Added 'facets' argument to user_eg3.cpp
226 - user_eg links with shared library
227 - qhulltest.cpp: Add closing prompt.
228
229Changes to build system
230 - Reorganized source directories
231 - Moved executables to bin directory
232 - Add CMake build for all targets (CMakeFiles.txt) [M. Moll assisted]
233 - Add gcc build for all targets (Makefile)
234 - Fixed location of qhull.man and rbox.man [M. Moll]
235 - Add DevStudio builds for all targets (build/*.vcproj)
236 - Added shared library (lib/qhull6.dll)
237   Added qh_QHpointer_dllimport to work around problems with MSVC
238 - Added static libraries with and without qh_QHpointer (lib/qhullstatic.lib)
239 - Added eg/make-vcproj.sh to create vcproj/sln files from cmake and qmake
240 - Document location of qh_QHpointer
241 - Use shadow build directory
242 - Made -fno-strict-aliasing conditional on gcc version
243 - Added src/qhull-app-cpp.pri, src/qhull-app-c.pri, etc. for common settings
244 - Add .gitignore with ignored files and directories. 
245 -   Use .git/info/exclude for locally excluded files.
246 - Fixed MBorland for new directory structure
247
248Changes to documentation
249 - qvoronoi.htm: Remove quotes from qvoronoi example
250 - qhull-cpp.xml: Add naming conventions
251 - index.htm: Add Google Scholar references
252 - qh-optf.htm: Add note about order of 'Fn' matching 'Fv' order [Q. Pan]
253 - Add patch for old builds in qh-get.htm
254 - Added C++ compiling instructions to README.txt
255 - Add instructions for fixing the DOS window
256 - Changed DOS window to command window
257 - Fixed html links
258 - qh-get.htm: Dropped the Spanish mirror site.  It was disabled.
259
260Changes to C code
261 - mem.h: Define ptr_intT as 'long long' for Microsoft Windows _win64 builds.
262   On Linux and Mac, 'long' is 64-bits on a 64-bit host
263 - Added qh_QHpointer_dllimport to work around MSVC problem
264 - qconvex.c,etc.: Define prototype for _isatty
265 - Define MSG_QHULL_ERROR in user.h
266 - Move MSG_FIXUP to 11000 and updated FIXUP QH11...
267
268Changes to test code
269 - Add note to q_test than R1e-3 may error (qh-code.htm, Enhancements)
270 - Add test for executables to q_eg, etc.
271 - Fixed Qhull-go.bat.  QHULL-GO invokes it with command.com,
272
273Changes to C++ interface
274 - QhullFacet: Added isSimplicial, isTopOrient, isTriCoplanar, isUpperDelaunay
275 - Added Qhull::defineVertexFacetNeighbors() for facetNeighbors of vertices.
276   Automatically called for facet merging and Voronoi diagrams
277   Do not print QhullVertex::facetNeighbors is !facetNeighborsDefined()
278 - Add Fixup identifiers
279 - QhullError: Add copy constructor, assignment operator, and destructor
280 - Add throw() specifiers to RoadError and QhullError
281 - Renamed RoadError::defined() to RoadError::isDefined()
282 - Add #error to Qhull.h if qh_QHpointer is not defined
283
284Changes to C++ code
285 - Fixed bug reported by renangms.  Vertex output throws error QH10034
286   and defineVertexNeighbors() does not exist.
287 - Define QHULL_USES_QT for qt-qhull.cpp [renangms]
288 - Reviewed all copy constructors and copy assignments.  Updated comments.
289   Defined Qhull copy constructor and copy assignment [G. Rivet-Sabourin]
290   Disabled UsingQhullLib default constructor, copy construct, and copy assign
291 - Merged changes from J. Obermayr in gitorious/jobermayrs-qhull:next
292 -   Fix strncat limit in rboxlib.c and global.c
293 -   Changes to CMakeLists.txt for openSUSE
294 - Fixed additional uses of strncat
295 - Fixed QhullFacet::PrintRidges to check hasNextRidge3d()
296 - Removed gcc warnings for shadowing from code (src/qhull-warn.pri)
297 - Removed semicolon after extern "C" {...}
298 - Removed experimental QhullEvent/QhullLog
299 - Use fabs() instead of abs() to avoid accidental conversions to int
300 - Fixed type of vertex->neighbors in qh_printvoronoi [no effect on results]
301 - Removed unnecessary if statement in qh_printvoronoi
302
303------------
304qhull 2010.1 2010/01/14
305- Fixed quote for #include in qhull.h [U.Hergenhahn, K.Roland]
306- Add qt-qhull.cpp with Qt conditional code
307- Add libqhullp.proj
308- Add libqhull5 to Readme, Announce, download
309- Reviewed #pragma
310- Reviewed FIXUP and assigned QH tags
311- All projects compile with warnings enabled
312- Replaced 'up' glyphs with &#187;
313- Moved cpp questions to qh-code.htm#questions-cpp
314- Moved suggestions to qh-code.htm#enhance
315- Moved documentation requests to qh-code.htm#enhance
316- Add md5sum file to distributions
317- Switched to DevStudio builds to avoid dependent libraries, 10% slower
318  Removed user_eg3.exe and qhullcpp.dll from Windows build
319  Fix qhull.sln and project files for qh_QHpointer
320- Add eg/qhull-zip.sh to build qhull distribution files
321
322------------
323qhull 2010.1 2010/01/10
324- Test for NULL fp in qh_eachvoronoi [D. Szczerba]
325
326qhull 2010.1 2010/01/09
327
328Changes to build and distribution
329- Use qh_QHpointer=0 for libqhull.a, qhull, rbox, etc.
330  Use -Dqh_QHpointer for libqhullp.a, qhullcpp.dll, etc.
331  qh_QHpointer [2010, gcc] 4% time 4% space, [2003, msvc] 8% time 2% space
332- Add config/ and project/debian/ for Autoconf build [R. Laboissiere]
333  from debian branch in git and http://savannah.nongnu.org/cvs/?group=qhull
334- Add CMakeLists.txt [kwilliams]
335- Fix tabs in Makefile.txt [mschamschula]
336- Add -fno-strict-aliasing to Makefile for gcc 4.1, 4.2, and 4.3 qset segfault
337- Remove user_eg.exe and user_eg2.exe from Windows distribution
338- Order object files by frequency of execution for better locality.
339
340Changes to source
341- Remove ptr_intT from qh_matchvertices.  It was int since the beginning.
342- user.h requires <time.h> for CLOCKS_PER_SEC
343- Move ostream<<QhullFacetList from inline to compiled.
344- Removed ConvexHull/ from git.  Not used.
345
346------------
347qhull 2009.1.1 2010/01/09
348- Patch release of 2009.1.
349  qh_gethash allowed a negative result, causing overwrite or segfault
350  See git:qhull/project/patch/qhull-2003.1/poly.c-qh_gethash.patch
351  Compared results of q_test, q_eg, q_egtest with patched poly.c, qhull-2003.1
352
353------------
354qhull 2010.1 2010/01/07
355- Assign type to qh.old_qhstat and memT.tempstack [amorilia]
356- Replace tabs with spaces.
357- Fix qh_pointid in case ptr_intT is unsigned
358
359qhull 2010.1 2010/01/06
360- Fixed serious bug in qh_gethash [poly.c]
361- Documentation and build system are incomplete (see above)
362- First release of C++ interface [qh-code.htm]
363- Development moved to http://gitorious.org/qhull
364  git clone git@gitorious.org:qhull/qhull.git
365- Did not fix conformant tesselations for 'Qt'.
366  For details, see http://www.qhull.org/news#bugs of May 2007 and Dec 2006.
367- Use g++ builds for Windows distribution (10% faster than msvc2005)
368  Combined vcproj/ and qtproj/ into project/
369  vcproj will be replaced by qmake generated files
370
371------------
372qhull 2010.0.3 2010/01/05
373Fixed bugs
374- 'QJn': Fix qh.STOPcone in qh_build_withrestart().  It was not cleared.
375- qh_initqhull_outputflags [global.c]: warn about Qc only if QHULLfinished
376    otherwise set if needed
377
378qhull 2010.0.2 2010/01/04
379
380Fixed bugs
381- qh_gethash [poly.c]: fix sign conversion.
382    Previously, the result may be negative, leading to a segfault.
383    The bug is more likely with large address spaces
384    Reviewed all uses of %(modulo) for remainder with negative arguments
385- Reviewed output of q_test and compared to results from 2003.1
386
387Breaking code changes
388- Return type of qh_gethash changed from unsigned to int.  Matches 'size'
389- addhash takes a signed hash
390  qh_addhash( newelem, hashtable, hashsize, hash )
391
392Code changes
393- Test for qh_qh in qh_printf
394- Makefile.txt corrected for libqhull build [amorilia]
395- Renamed index to idx to avoid shadowing BSD strings.h [kwilliams]
396
397qhull 2010.0.1  2010/01/03
398
399New Features:
400 - Added option 'Ta' to annotate output with message codes
401
402Preliminary C++ support:
403 - C++ declarations may change without warning
404 - Preliminary documentation for Qhull's C++ interface [qh-code.htm#cpp, qhull-cpp.xml]
405 - Added user_eg3 as an example of Qhull.cpp
406 - Removed qhull_interface.cpp
407
408Changes to qhull options and results
409 - Allow 'd' and 'v' as the filename for 'TO ..' and 'TI ...' in qdelaunay [M. Jambon]
410 - 'rbox tN' requires an integer (previously allowed floats)
411 - Allow quoted filenames for 'TO ...' and 'TI ...'
412 - Prefix error messages and warnings with a message code (e.g., QH6012)
413 - Fixed rbox ignoring flags that were not separated by spaces
414 - Report all hidden options before exiting in qh_checkflags()
415 - Defined qh_OPTIONline [user.h] as max length of option line ('FO')
416 - Report error if negative arguments to rbox 'G', 'L', 'Z'
417 - Unknown rbox flag changed from a warning to an error
418 - Set error status 4 qh_ERRmem if rbox runs out of memory
419 - Removed extra spaces at end of line
420
421Breaking Code Changes:
422 - Renamed qh.coplanarset to coplanarfacetset.  Avoids conflict with facetT.coplanarset
423 - qh_restore_qhull() zeroes out qh.old_qhstat and qh.old_tempstack.  Ownership moved.
424 - Rewrote save_qhull/restore_qhull
425 - Add Ztotcheck to zzdef_ [R. Gardener]
426 - Changed qh_malloc to size_t (was unsigned long)
427 - Declare qh_PRINT instead of int [kwilliams]
428 - In qh_printafacet(), changed error output to 'qh ferr'
429
430Bug fixes to C code:
431 - Use gcc 4.4.0 or later.  gcc 4.2.1, 4.2.2, and 4.3.2 -O2 segfaults in qset.c .  gcc 4.1.1 was OK
432   See bug report http://gcc.gnu.org/ml/gcc-bugs/2007-09/msg00474.html
433 - Rewrite qh_setappend to avoid g++ 4.1, 4.2, and 4.3 strict_aliasing error.
434     Orion Poplawski (orion@cora.nwra.com)
435     http://www.rpmfind.net/linux/RPM/fedora/12/ppc/qhull-devel-2003.1-13.fc12.ppc64.html
436 - Fixed qh_findfacet_all(), "REALmin" should be "-REALmax" [L.A. Taylor].
437     Effects library users for convex hulls and halfspace intersections.
438 - qh_printfacet [io.c] Removed extra space for neighboring facets
439 - Report error if d points, Delaunay, and not Qz
440 - Fixed double-free of facet->centrum for triangulated facets
441 - Fixed mindist initialization if !testcentrum in io.c findbest_test [Ratcliff]
442 - Fixed parentheses around warning for missing 'Qc' [qh_initqhull_outputflags]
443 - Fixed rbox buffer overflow of 'command' when appending seedbuf
444 - Fixed option string for 'rbox t t999'.  Although seed was correctly set to 999,
445   a random seed was appended to the rbox comment (e.g., 'rbox t t999 t32343')
446 - Fixed upper bound of sanity check for qh_RANDOMmax in qh_initqhull_globals()
447
448Changes to C code
449 - Reordered #include from specific to general.  Move up .h for module.
450 - Removed qh.old_stat -- never used
451 - Removed qh_clearcenters from qh_freeqhull.  Duplicated by qh_delfacet
452 - qh_printcenter [io.c] removed unreachable fprintf argument
453 - qh_getarea() [geom2.c] ignored on multiple calls (qh.hasAreaVolume)
454 - qh_getarea() [geom2.c] checks facet->isarea. Set by QhullFacet.facetArea()
455 - qh_triangulate() [poly2.c] ignored on multiple calls (qh.hasTriangulation)
456 - Add statistics for vertex_visit and visit_id to buildtracing
457 - Defined scale and offset parameters for qh_randomfactor
458
459Bug fixes and changes to mem.c/mem.h
460 - Fixed qhmem.totshort (total short memory in use)
461 - Memory tracing (T5) redone for sort order by object
462 - Added full tracing for short memory allocations.
463 - Added qhmem.totfree (total short memory on freelists)
464     Increases size of qh_memalloc_ and qh_memfree_
465 - Added qhmem.totdropped (leftover freesize at end of each short buffer)
466 - Added qhmem.totunused (short size - request size)
467 - Added qhmem.totbuffer (total short memory buffer w/o links)
468 - Added memory statistics to qh_NOmem;
469 - Added qh_memtotal to track allocated memory
470 - Renamed qh_memfree parameter to 'insize' for consistency with qh_memalloc
471 - Removed qhmem.curlong.  qa_memfreeshort computes curlong from cntlong and cntfree
472 - In mem.h, changed ptr_intT to long.  qh_meminit() checks that it holds a 'void*'
473
474Fixed g++ and devstudio warnings
475 - Except for bit field conversions, compiles cleanly with
476   -Wall -Wextra -Wshadow -Wcast-qual -Wwrite-strings -Wno-sign-conversion -Wconversion
477 - Fixed warnings at VC8, level 4
478 - Fix data types to remove conversion warnings [kwilliams]
479 - Use size_t for calls to malloc,etc [kwilliams]
480   Retained int sizes for qset.h and mem.h.  Follows Qt convention
481   and is easier to work with.  int can be 64-bits if 2 billion facets
482 - Change literal strings to const char* [kwilliams]
483 - Added type casts to SETfirst and SETsecond [amorilia+alphax]
484 - getid_() returns an int [kwilliams]
485 - Add missing const annotations [kwilliams]
486 - Fixed 64-bit warnings (marked with "WARN64")
487 - Convert sizeof to (int) for int parameters
488 - In libqhull.c, added explicit casts from long to float,  Avoids warning
489 - In global.c, cast time() to int for QRandom-seed.  Avoids warning
490
491Changes to C code for C++ support
492 - Add sln, vcproj, and qtpro files for building Qhull -- add to README notes
493 - Added dim to vertexT for cpp interface. Reduced size of qh.vertex_visit
494 - qh_produce_output [io.c] may be called multiple times (C++ interface)
495 - Moved SETsizeaddr_() to qset.h for use by QhullSet.cpp
496 - Option 'Tz' sets flag qh.USEstdout for QhullPoints.cpp
497 - Added support for multiple output runs from QhullPoints.outputQhull
498 -   qh_clear_outputflags() resets the output flags
499 -   qh_initqhull_outputflags split from qh_initqhull_globals
500 - Added qh.run_id, a random identifier for this instance of Qhull (QhullPoints)
501 -   For qh.run_id, initqhull_start initializes qh_RANDOMseed to time instead of 1
502 - Extracted qh_argv_to_command (random.c) from qh_init_qhull_command and fixed a buffer overflow
503 - Moved qh_strtod/qh_strtol from global.c to random.c for use in rboxlib.c
504 - Split out random functions into random.c
505 - Added message codes to qh_fprintf().  See its definition in user.c
506 - Replaced exit, malloc, free, fprintf, and fputs with qh_malloc,...[J.W. Ratcliff]
507 - Added qh_fprintf, qh_malloc, qh_free, ph_printhelp_narrowhull to user.c
508 - Moved qh_printhelp_degenerate and qh_printhelp_singular from io.c to user.c
509 - Clear qh.ERREXITcalled at end of qh_errexit().
510
511Documentation:
512 - Fixed out-of-date CiteSeer references
513 - Renamed html/qh-in.htm to html/qh-code.htm
514 - Add reference to 'Qt' to 'i'
515 - Add reference to 'FS' to 'FA'
516 - qh-impre.htm discusses precision issues for halfspace intersection
517 - Add cross references between options 'FA' and 'FS'
518 - Added link to Wolfram Research's MathWorld site
519 - Updated Fukuda's links
520 - Changed copyright to C.B. Barber for C++, documentation, and merge.c
521 - Updated Qhull citation with page numbers.
522 - Proposed project: constructing Voronoi diagram
523 - Proposed project: computing Voronoi volumes
524 - Replaced tabs with spaces in qhull.txt and rbox.txt
525
526------------
527qhull 2009.1  2009/6/11
528
529This is a maintenance release done by Rafael Laboissiere <rafael@debian.org>.
530 - src/rbox.c (main): Avoid problems of evaluation order when
531   pre-incrementing arguments of strtod
532 - src/io.c (qh_produce_output), src/stat.c (qh_initstatistics): Use %lu
533   instead of %d in the format string for arguments of type size_t
534 - html/qhull.man, html/rbox.man: Fix several syntax, macros, and hyphen
535   problems in man pages
536 - The Autotools files have been generated with modern version of autoconf (2.63),
537   automake/aclocal (1.10.2), and libtool (2.2.6)
538 - Some character issues in the man pages are fixed
539
540------------
541qhull 2003.1  2003/12/30
542
543New Features:
544 - Add Maple output ('FM') for 2-d and 3-d convex hulls [T. Abraham]
545
546Breaking Code Changes:
547 - Annotate C code with 'const'.  An ANSI compatible compiler is required.
548
549Bug Fixes and Code Changes:
550 - Fixed qh_findbest() for upperdelaunay facets w/o better, lower neighbors
551     For library users and some qhull users [A. Cutti, E. Milloti, K. Sun]
552 - Preserved qhmem.ferr in qh_memfreeshort() for library users
553 - Removed 'static' from qh_compare... for io.h and merge.h [V. Brumberg]
554 - Split out qh_initqhull_start2() to avoid allocating qh_qh
555 - Split out qh_freeqhull2() to avoid freeing qh_qh
556 - Split out qh_produce_output2() and qh_prepare_output()
557 - qh_initstatistics() frees a previously existing qh_qhstat
558 - qh_initqhull_start2() checks that qh_initstatistics() called first
559
560Documentation:
561 - Add warning to findDelaunay() and qh_in.htm about tricoplanar facets
562 - Noted Edelsbrunner's Geometry & Topology for Mesh Generation [qh-impre.htm]
563 - Noted Gartner's Miniball algorithm [qh_impre.htm]
564 - Noted Veron and Leon's shape preserving simplification [qh_impre.htm]
565
566qhull 2003.1  2003/12/19
567
568Bug Fixes:
569 - Reversed coordinate order for qh.ATinfinity in qh_projectinput [V. Brumberg]
570   This effects:
571     Qhull library 'd' or 'v' users with 'Qz' and unequal coordinate ranges.
572     qdelaunay/qvoronoi users with 'Qbk:0Bk:0', 'Qz', and unequal coordinate ranges
573
574Changes to code:
575 - Replaced qh_VERSION with qh_version in global.c [B. Pearlmutter]
576    The previous techniques were either clumsy or caused compiler errors
577 - Removed unused variables from qh_findbest and qh_findbestnew [B. Pearlmutter]
578 - Note that qh.TESTpoints was added in 2002.1 for tsearch implementation
579
580Changes to distribution:
581 - Added Unix distribution including Debian files [R. Laboissiere]
582    The previous Unix distribution is now the source distribution
583 - Added rpm distribution [L. Mazet]
584 - Investigated generation of Win32 dll.  Need to define a C++ interface.
585
586Changes to documentation:
587 - Moved Qhull to www.qhull.org (geom.umn.edu is not available)
588 - The Geometry Center is archived at http://www.geom.uiuc.edu
589 - Reviewed introduction to each program
590    Triangulated output ('Qt') is more accurate than joggled input ('QJ')
591    qdelaunay is 'qhull d Qbb' [C. Ulbrich]
592    qvoronoi is 'qhull v Qbb'
593    Added example of non-simplicial intersection to halfspace intersections
594 - Added warning about using the Qhull library.
595 - Added qhull timings to When to use Qhull [C. Ulbrich]
596 - Reorganized the home page index and the manual index
597 - Moved qh-home.htm to index.htm
598
599Changes to examples
600 - Fixed options for eg/eg.t23.voronoi.imprecise [B. Pearlmutter]
601
602
603------------
604qhull 2002.1  2002/8/20
605
606Changes to distribution:
607 - Set up savannah.nongnu.org/projects/qhull/ [R. Laboissiere]
608 - Set up www.thesa.com as a backup
609 - Added qh-get.htm, a local copy of the download page
610 - Added Visual C++ interface to Qhull, qhull_interface.cpp [K. Erleben]
611 - Use HTTP instead of FTP for downloading Qhull
612 - Renamed qhull-1.0.sit.hqx
613
614Bug fixes:
615 - Fixed sign of coefficients for cdd halfspaces ('FD','Fd')  [T. Abraham]
616
617Changes to code:
618 - Replace qh_version with qh_VERSION in libqhull.h.
619   Allows shared libraries and single point of definition
620 - Added qh.TESTpoints for future implementation of tsearch
621
622Changes to build
623 - Makefile.txt works under cygwin
624 - Added Make-config.sh to create a Debian build [R. Laboissiere]
625 - Added .exe to Makefile.txt#clean.
626 - In README, use -fno-strict-aliasing with gcc-2.95.1 [Karas, Krishnaswami]
627 - Fixed chmod in Makefile.txt [B. Karas]
628
629Documentation updates
630 - Documented input options for each program [A. Montesinos]
631 - FAQ: "How to get the radii of the empty spheres for Voronoi vertices"
632
633URL updates:
634 - Changed official URL from locate/qhull to software/qhull
635 - Changed URLs from relative to absolute in qh-home.htm and qh-get.htm
636 - Added URL for Newsgroup: comp.soft-sys.matlab
637 - Added URL for GNU Octave
638 - Added URLs for Google and Google Groups
639 - Replaced qhull_mail.html and qhull_bug.html with mailto links.
640 - Removed URL for Computational Geometry Tribune
641 - Changed URL for locate/cglist to software/cglist
642 - Used site relative links for qh-home.htm
643
644------------
645qhull 3.1 2001/10/04
646
647New features
648 - Added option 'Qt' to triangulate non-simplicial facets
649 - Added option 'TI file' to input data from file
650 - Added option 'Q10' to prevent special processing for narrow distributions
651        e.g., RBOX 1000 L100000 s G1e-6 t1001803691 | QHULL Tv Q10
652 - Tried to compute Voronoi volumes ('Pv'). Requires dual face graph--not easy
653        See Clarkson's hull program for code.
654
655Changes to options
656 - Added numtricoplanars to 'Fs'. Number of good, triangulated facets for 'Qt'
657 - Added Zdelvertextot to 'Fs'.  If non-zero and Delaunay, input is degenerate
658 - Qhull command ('FQ') may be repeated.
659 - If 'TPn' and 'TWn' defined, trace the addition of point 'n'
660     otherwise continue tracing (previously it stopped in 4-d)
661 - Removed 'Ft' from qdelaunay.  Use 'Qt o' or 'qhull d QJ Qt' instead.
662     For non-simplicial regions, 'Ft' does not satisify the Delaunay property.
663 - If 'Po' or 'TVn', qhull checks outer planes.  Use 'Q5' to turn off.
664 - If 'T4', print facet lists and check polygon after adding each point
665
666Corrections to code
667 - rbox: allow 'c' and 'd' with 's r', meshes, etc.
668 - qh_findbest: redesigned as directed search. qh_findbesthorizon for coplanar
669      qh_findbest is faster for many distributions
670 - qh_findbestnew: redesigned to search horizon of coplanar best newfacets
671      needed for distributions with a sharp edge,
672          e.g., rbox 1000 s Z1 G1e-13 | qhull Tv
673 - qh_findbest/qh_findbestnew: search neighbors of better horizon facets
674      was needed for RBOX 1000 s Z1 G1e-13 t996564279 | qhull Tv
675      and RBOX 1000 s W1e-13 P0 t996547055 | QHULL d Qbb Qc Tv
676 - qh_findbest with noupper: could return an upperdelaunay facet if dist>qh.MINoutside.
677 - qh_findbestnew: allow facet->upperdelaunay if dist > qh.MINoutside
678 - qh_partitioncoplanar: call qh_partitionpoint if outside and perpendicular
679      for distributions with a sharp edge
680 - qh_partitionvisible: report precision error if all newfacets degenerate.
681      was needed for RBOX 1000 s W1e-13 t995138628 | QHULL d
682 - qh_createsimplex: clears qh.num_visible, may be non-zero with 'TRn QJ'
683
684Changes to prompts, warnings, and statistics
685 - For Delaunay & Voronoi, 's' reports deleted vertices due to facet merging.
686   They were incorrectly reported as nearly incident points.
687 - Warn if recompute centrum after constructing hull
688 - Simplified narrow hull warning and print all digits of cosine.
689     A narrow hull may lead to a point outside of the hull.
690 - Print total vertices deleted instead of ave. per iteration (Zdelvertextot)
691 - Improved tracing for qh_partitionpoint and qh_partitioncoplanar
692 - Added number of distance tests for checking outer planes (qh_check_maxout)
693 - Simplified "qhull precision error: Only n facets remain."
694 - Included 'TRn' in the causes of a premature exit
695
696Changes to documentation
697 - README.txt: Added quickstart instructions for Visual C++
698 - rbox: Added example of edge of narrow lens, rbox 1000 L100000 s G1e-6
699 - Added cross references between options 'o' and 'p'.
700 - qh-eg.html: added examples comparing 'Qt', 'QJ', and neither 'Qt' nor 'QJ'
701        eg.15a.surface, eg.15b.triangle, eg.17a.delaunay.2, etc.
702 - Reorganized and enhanced discussion of precision problems in qh_impre.htm
703 - Fixed spelling errors [K. Briggs]
704 - Fixed link errors, validated HTML, and spell checked [HomeSite]
705 - Removed unnecessary #TOP links
706 - Added source links to the qh-quick.htm's header and footer
707 - qh-geom.htm, qh-poly.htm: add links to Voronoi functions in io.c
708 - src/index.htm: Added how to search libqhull.h for qhull options
709 - qvoronoi.htm/qdelaun.htm: 'Fc' and 'FN' includes deleted vertices
710
711Changes to URLs
712 - Added http://www.voronoi.com and http://www.magic-software.com
713
714Changes to code
715 - qh_qhull: if 'TVn' or 'TCn' do not call qh_check_maxout and qh_nearcoplanar
716 - reviewed time profile.  Qhull is slower.  Optimized qh_findbestnew()
717 - qh_addpoint: Added warning note about avoiding a local minimum
718 - qh_checkpolygon: report qh.facet_next error if NARROWhull & dist>MINoutside
719 - qh_findbest: renamed "newfacets" parameter to "isnewfacets" since it is boolT
720 - qh_findbest/qh_findbestnew: testhorizon even if !MERGING
721        Otherwise qhull c D6 | qhull Q0 Tv assigns coplanar points
722 - qh_resetlists: add qh_RESETvisible for qh_triangulate
723 - qh_findbest: search better facets first.  Rewritten.
724 - qh_findbest: increased minminsearch, always check coplanar facets.
725        See: RBOX 1000 s Z1 G1e-13 t996564279 | QHULL Tv
726 - qh_findbestnew: report precision error for deleted cones [rare event]
727        e.g.:  RBOX 1000 s W1e-13 P0 t1001034076 | QHULL d Qbb Qc Tv
728 - qh_findbesthorizon: search horizon of qh.coplanarset.  New.
729 - qh_findbestsharp: replaced with qh_sharpnewfacets followed by qh_findbestnew
730 - qh_partitionpoint, Delaunay sites can not be inside.  Otherwise points may
731       be outside upperDelaunay facets yet not near-inside Delaunay facets
732       See: RBOX s 1000 t993602376 | QHULL C-1e-3 d  Qbb FA Tv
733 - qh_partitioncoplanar: call qh_findbest/qh_findbestnew with qh DELAUNAY
734 - qh_printlists: format long lines
735 - qh_printvertex: format long lines
736 - user.h: tightened qh_WARNnarrow and qh_MAXnarrow.  Do not see problems
737       until they are -1.0.
738 - user.h: defined qh_DISToutside, qh_SEARCHdist, and qh_USEfindbestnew
739 - qh_checkfacet: in 3-d, allow #ridges > #vertices.  Can get a vertex twice
740   in a ridge list, e.g,  RBOX 1000 s W1e-13 t995849315 D2 | QHULL d Tc Tv
741
742Changes to FAQ
743 - Recommended use of triangulated output ('Qt')
744
745Changes to distribution
746 - Recompiled in Visual C++ 5.0 with optimization (as was version 2.6)
747 - q_test: Added bad cases for Qhull and tests for new features
748
749Changes to Qhull library
750 - Added qh_triangulate() to poly2.c.  It triangulates the output.
751 - Added option 'Q11' to copy normals and recompute centrums for tricoplanar facets
752        'FP' may not print the nearest vertex for coplanar points
753        Use option 'Q11' when adding points after qh_triangulate()
754
755------------
756qhull 3.0 2001/02/11
757
758Changes to distribution
759 - added qconvex, qdelaunay, qhalf, and qvoronoi
760 - added qhull-interface.cpp on calling Qhull from C++ [K. Erleben]
761 - renamed to qhull3.0/.
762 - added eg/, html/, and src/ directories
763
764Changes to URLs
765 - MathLab6 qhull: convhulln, delaunayn, griddatan, tsearchn, vororoin [Z. You]
766 - Wolfram Research wrote a Mathematica interface for qdelaunay [Hinton]
767 - Geomview moved from www.geom.umn.edu to www.geomview.org [M. Phillips}
768 - added URLs for tcsh and cygwin to README.txt
769
770Changes to documentation
771 - reorganized table of contents and renamed qh-man.htm to index.htm
772 - wrote program documentation, dropped qh-opt.htm and qh-optv.htm
773 - added quick reference, qh-quick.htm
774 - reorganized qh-rbox.htm and renamed it to rbox.htm
775 - split up qh-c.htm for quick navigation
776
777Corrections to code
778 - fixed type of arg for error message in qh_initqhull_globals [N. Max]
779 - fixed incorrect initialization of qh MINdenom_1 for scalepoints
780 - fixed drop dim for 'H Qbk:0Bk:0'.  Added qh.feasible_point to qh_projectinput
781 - qh_WARNnarrow is angle between facet normals.  Negate for warning message.
782 -   statistics for Wangle/etc. concerns facet normals.  Reworded [E. Voth]
783 - fixed error message for 'FC v'
784 - report cospherical points if Delaunay and error in qh_scalelast()
785
786Changes to code
787 - turn on Pg if (QVn or QGn) and not (Qg or PG)
788 - turn on Qc if format option 'Fc', 'FP', or 'Gp' (removes warning)
789 - removed last good facet unless ONLYgood ('Qg').
790 - added count of non-simplicial or merged facets to 'FS'
791 - added count of non-simplicial facets to 's' (OK if #vertices==dim)
792 - added Znonsimplicial and Znowsimplicial to 'Ts'
793 - allow Mathematica output of dual polytope for halfspace intersection
794 - added qh_checkflags to globals.c for multiple front ends
795 - qh_initqhull_globals sets qh.MERGING if qh.MERGEexact
796 - removed hashentryT.  It is no longer used.
797
798Changes to prompts and warnings
799 - reorganized prompts
800 - reorganized synopsis for rbox.c
801 - print warning if 'Fc' or 'FP' with 'd QJ'.  Coincident points are unlikely.
802 - ignore warning if options 'v i Pp'.  qvoronoi users may need Delaunay tri.
803 - reworded warning if 'Pg' and 'QVn' is not a vertex.
804 - reworded warning for 'Qx Tv', qh_check_points() in poly2.c
805 - if 'Pp', turn off warning for 'Qbb' without 'd' or 'v'
806 - in qh_printsummary() of Voronoi and Delaunay, distinguish QVn, QGn, Pdn, PDn
807
808Changes to FAQ
809 - added FAQ item for nearly flat Delaunay triangles [Z. You]
810 - added FAQ item for area and volume [R. Konatham]
811 - added FAQ item for Voronoi diagram of a square [J. Yong]
812 - edited FAQ item on point location in Delaunay triangles [Z. You]
813 - added FAQ item on nearly flat Delaunay triangles [Dehghani]
814 - added FAQ item about halfspace intersection [V. Tyberghein]
815 - added FAQ item for missing ridges [M. Schmidt]
816 - added FAQ item about qh_call_qhull [R. Snyder]
817 - added FAQ item about memory statistics [Masi]
818 - added FAQ item on meshing non-convex objects
819 - added FAQ item on MATLAB and Mathematica interface
820
821------------
822qhull 2.6 1999/04/19
823 - fixed memory overwrite (no effect) in qh_initstatistics() [K. Ford]
824 - added zdoc11 to qh-stat.h#ZZdef for !qh_KEEPstatistics [K. Ford]
825 - enhanced qh_initqhull_globals() test of qh_RANDOMint and qh_RANDOMmax
826 - added debugging option to always return qh_RANDOMmax from qh_rand()
827 - fixed option 'Qr', qh_initialvertices(), to allow a broken qh_rand()
828   fixed option 'Qr', qh_nextfurthest(), to allow narrow hulls
829     Option 'Qr' simulates the random incremental algorithm for convex hulls
830 - added note that qh.num_outside includes coplanar points for narrow hulls
831 - added FAQ items for triangles/ridges of 3-d Delaunay triangulation[P. Kumar]
832 - added FAQ item about on-line processing with the Qhull library [O. Skare]
833 - changed name of option 'Error-roundoff' to 'Distance-roundoff'
834
835------------
836qhull 2.6 1998/12/30
837 - for the unbounded rays of the Voronoi diagram, use a large box [Schmidt]
838     e.g., 'rbox P4,4,4 P4,2,4 P2,4,4 P4,4,2 10 | qhull v Fv' fails for point 0
839     while 'rbox P4,4,4 P4,2,4 P2,4,4 P4,4,2 10 c G5 | qhull v Fv' is OK.
840 - fixed qh_new_qhull() to use outfile/errfile instead of stdout/stderr [Ford]
841 - clarified COPYING.txt for use in other programs [Archer]
842 - improved qh_readpoints() error message for incorrect point count.
843 - added FAQ item for closest triangle to a point [Sminchisescu & Heijting]
844 - added FAQ item for is a point outside of a facet [Beardsley]
845 - added FAQ item for visiting facets of the Delaunay triangulation [Heijting]
846 - added link to Erickson's Computational Geometry Software
847 - added link to Sharman's HTML version of the comp.graphics.algorithms FAQ
848 - added link to Owen's Meshing Research Corner
849 - added note to 'd' about quadratic size of 'rbox 100 l | qhull d' [Kumar]
850 - added 'about a point' to mentions of halfspace intersection
851 - added request to qh-code.htm to compute largest empty circle [Hase]
852 - the DOS window in Windows NT is better than the DOS window in Windows 95
853 - removed obsolete qh_findfacet() from qh-c.htm [Sminchisescu]
854
855------------
856qhull 2.6 1998/8/12
857 new and modified features
858 - rbox: added option Mn,m,r to generate a rotated lattice or mesh
859 - rbox: report error if more than one of 'l', 'x', 'L', 's', or 'M'
860
861 Qhull library changes
862 - added qh_new_qhull() to user.c for calling qhull() from a program [D. Zwick]
863   rewrote user_eg.c to use qh_new_qhull().  Added qh_QHpointer example.
864 - added qh_CLOCKtype 2 in user.h to call times() for CPU time [B. Hemkemeier]
865 - renamed set.c/set.h to avoid conflict with STL's set.h [G. van den Bergen]
866   can also use '#include <qhull/qhull_a.h>' for Qhull library
867
868 fixed errors
869 - fixed qh_init_B() to call qh_initqhull_mem() once only [D. Zwick]
870   This only effects Qhull library users of qh_QHpointer.
871 - fixed qh_mergecycle_all() to check for redundant vertices [J. Nagle]
872   e.g., 'rbox M3,4 64 | qhull Qc' should report 8 vertices & 48 coplanars
873 - fixed gmcoord initialization in qh_setfacetplane() for qh.RANDOMdist
874 - turn off qh.RANDOMdist during qh_printfacetheader()
875 - fixed error messages for unknown option flags
876
877 documentation changes
878 - added note to FAQ on the Voronoi diagram of cospherical points [H. Hase]
879 - added note to 'Qu' on furthest-site Delaunay triangulation via convex hull
880 - added note to 'QJ' about coplanar points on the convex hull of the input
881 - added note that 'o' and 'FN' list Voronoi regions in site id order [Arvind]
882 - added links to Fukuda's introduction to convex hulls, etc. [H. Hase]
883 - added .c and .h source files to web distribution and qh-c.htm [J. Sands]
884 - documented qh_ZEROdelaunay.  Delaunay and Voronoi diagrams do not include
885   facets that are coplanar with the convex hull of the input sites.
886
887 modified code
888 - replaced computed minnorm in qh_sethyperplane_det with distance test
889 - removed 'qh rand_seed' since random number generator is independent of qhull
890 - dropt 'qhull-PPC.sit.bin' from the distribution (out-of-date) [M. Harris]
891
892------------
893qhull 2.5 1998/5/4
894
895 fixed errors
896 - removed zero-area Delaunay triangles and furthest-site triangles [I. Beichl]
897   Zero-area triangles occur for points coplanar with the input's convex hull.
898 - replaced qh.MINnorm with computed minnorm in qh_sethyperplane_det [J. Nagle]
899   qh.MINnorm was incorrect for the convex hull of the "teapot" example.
900   Qhull runs 0-20% slower in 3-d and 4-d.
901 - allow 'Qg' with furthest-site Delaunay triangulation (may be faster)
902 - removed extra space in definition of FOREACHmerge_() for Alpha cc [R. LeRoy]
903 - fixed innerouter type in qh_printvdiagram2 [does not effect code, R. Adams]
904
905 documentation changes
906 - to browse qh-c.htm, set MIME type of .c and .h files to text/html
907 - added example of 3-d Delaunay triangulation to q-faq.htm
908 - added Delaunay and Voronoi examples to qh-optv.htm
909
910------------
911qhull 2.5 1998/2/4
912 - added option 'v Fi' for separating hyperplanes of bounded Voronoi regions
913 - added option 'v Fo' for separating hyperplanes of unbounded Voronoi regions
914 - option 'Pp' turns off the warning, "initial hull is narrow"
915 - fixed partial, 3-d Voronoi diagrams (i.e., 'v Fv QVn Tc')
916 - fixed missing statistics in qh_allstat* [T. Johnson]
917 - rearranged qh_printvdiagram.  Use qh_eachvoronoi to iterate Voronoi ridges.
918 - added qh_check_points to qh-math.c
919
920qhull 2.5 1998/1/28
921 - added option 'Fv' to print the Voronoi diagram
922 - added rbox option 'x' to generate random points in a simplex
923 - added rbox option 'y' to generate a simplex and random points
924 - added rbox option 'On' to offset the output
925 - add unpacking instructions to README.txt
926 - updated discussion of forced output, 'Po'
927 - sorted the options alphabetically
928 - removed __STDC__ check from libqhull.h for VisualC++
929 - moved qh_markvoronoi from qh_printvoronoi and cleared facet->seen flags
930 - added facet->seen2 flag for 'Fv'
931
932qhull 2.5 1998/1/16
933 - fixed initialization of qh.last_low on restart of 'd QJ'
934 - renamed qh_JOGGLEmax to qh_JOGGLEmaxincrease
935 - updated URL for Fukuda's cdd program
936
937qhull 2.5 1998/1/12
938
939New or modified features
940 - added option 'Fx' to print vertices by point id [G. Harris, T. McClendon]
941     in 2-d, the vertices are printed in counter-clockwise order
942     for Delaunay triangl., 'Fx' lists the extreme points of the input sites
943 - added option 'QJ' to randomly joggle input instead of merging facets
944 - added option 'TO file' to output results to a file.  Needed for Windows95.
945 - added option 'TRn' to rerun Qhull n times. Use to collect joggle statistics
946
947Corrections
948 - fixed 2-d facet orientation for 'i' and 'o' outputs
949 - for Mathematica 2.2 ('m') changed %10.8g to %16.8f [A. Zhaxybayev]
950 - fixed incorrect warning for 'QV0 Qg' in qh_initbuild [B. Wythoff]
951 - fixed unaccessible statistic if !qh_KEEPstatistics for Wnewvertexmax
952 - fixed overestimate of qh ONEmerge for point sets outside of
953     first quadrant and far from the origin
954 - fixed overestimate of 'Qbb' for point sets far from the origin
955 - fixed potential overestimate of qh DISTround under 'Qbb'
956 - fixed 'p' printing coplanar points of unselected facets
957 - fixed 'Ft' printing centrums unnecessarily in 2-d
958
959Changes to documentation
960 - wrote internal design documentation (qh-c.htm)
961 - started frequently asked questions (qh-faq.htm)
962 - added a section on joggled input to qh-impre.htm
963 -   added joggle example to qh-eg.htm (eg.15.joggle)
964 -   changed q_eg to use 'QJ' instead of 'Q0' were appropriate
965 - added an example to each of the main options
966 - added examples to rbox.htm
967 - added examples to the synopsis
968 - added a reference to Mucke, et al ['96], Fast randomized point location ...
969 - added code for printing Delaunay triangles to qh-code.htm [A. Tsui]
970 - options 'Pdk' and 'PDk' do not drop on equality
971
972Improvements to the code
973 - reviewed warning messages for Qhull options in qh_initflags
974 - added warning to 's' if premature exit from 'TCn' or 'TVn'
975 - 's' prints max distance above/below only if qh.MERGING
976 - reduced maxoutside in qh_check_bestdist/qh_check_points for 'Rn'
977 - in post-merging, rebuild centrums of large facets that become small
978 - lowered cutoff for coplanar facets for ischeckmax/qh_findbest
979 - removed qh_check_maxout for 'Wn Q0'
980 - reset tracing after 'TPn' adds point in 4-d and higher
981
982Changes for the Qhull library
983 - changed qh_setdelaunay to call qh_scalelast if used with 'Qbb' or 'QJ'
984     Delaunay callers to qh_findbestfacet, qh_addpoint, or qh_findfacet_all
985     should always use qh_setdelaunay as in user_eg.c
986 - defined qh.outside_err to check points against a given epsilon [E. Voth]
987 - added header to user_eg.c to avoid its incorporation into qhull [C. Begnis]
988 - added qh_nearcoplanar() calls to user_eg.c
989     only needed if use 'QJ'
990 - expanded __STDC__ warning message in libqhull.h [C. Begnis]
991 - renamed qh maxmaxcoord to qh MAXabs_coord
992 - replaced qh MAXlowcoord with qh MAXabs_coord
993 - random seed ('QR-n') is reset in qh_initqhull_globals after testing
994 - replaced 'FO' options "_max-coord/_min-coord" with "_max-width"/qh.MAXwidth
995
996Other changes to Qhull functions
997 - report error for !bestfacet in qh_findbest (it shouldn't happen) [H. Meuret]
998 - set newbest in qh_findbest only if bestfacet updated
999 - renamed facet parameter for qh_findbest
1000 - added maxdist argument to qh_checkpoint
1001 - moved 'FO' output after qh_partitionall
1002 - separated qh_initbuild from qh_qhull
1003 -   reinitialize globals modified by qh_buildhull
1004 -   moved initialization of qh.GOODvertexp & qh.GOODpointp to qh_initbuild
1005 - separated qh_nearcoplanar from qh_check_maxout
1006 - separated qh_geomplanes from qh_printfacet2geom, etc.
1007 - separated qh_freebuild from qh_freeqhull
1008 - separated qh_outerinner from io.c to return outer and inner planes
1009 - separated qh_distround and qh_detroundoff from qh_maxmin
1010
1011
1012------------
1013qhull 2.4 97/4/2
1014
1015New or modified features
1016 - made 'C-0' and 'Qx' default options.  Use 'Q0' to not handle roundoff errors
1017 - removed point-at-infinity from Delaunay/Voronoi.
1018     you no longer need to use 'Qu PDk'
1019 - added 'Qz' to add a point-at-infinity to Delaunay and Voronoi constructions
1020 - added published version of qhull article in ACM Trans Math Software
1021 - ported qhull to Windows95 under Visual C++ and Borland C++
1022 - added 'Ft' for triangulation by adding the centrums of non-simplicial facets
1023 - added 'Gt' to display 3-d Delaunay triangulations with a transparent hull
1024 - changed definition of coplanar point in output to qh min_vertex (see 'Qc')
1025     it was qh MAXcoplanar ('Un') [could make vertices non-coplanar]
1026 - automatically set 'Qi' for options 'd Qc' and 'v Qc'.
1027 - reworded summary ('s') for Delaunay/Voronoi/halfspace.
1028     use 'Fs' and 'FS' for summary statistics.
1029 - for summary 's' of Delaunay/Voronoi, display number of coplanars for facets
1030     if none, display total number of coplanars (i.e., non-vertices)
1031 - input comment is first non-numeric text (previously limited to header)
1032 - added input warning if use 'Qbb' without 'd' or 'v'
1033 - 'Q3' can not be followed with a numeric option
1034
1035Corrections
1036 - fixed qh_partitioncoplanar() to not drop interior points if 'Qi' is used
1037 - fixed 'FP d' to report distance in point set instead of paraboloid
1038 - fixed qh_findbest() to search all coplanar facets for qh_check_maxout()
1039
1040Changes to documentation
1041 - added example eg.17f.delaunay.3 to show a triangulation of cospherical sites
1042 - split up qh-opt.htm into multiple pieces
1043 - split off qh-code.htm for Qhull code
1044 - renamed .html files to .htm for Windows95
1045 - rewrote qh-optv.htm on Delaunay triangulation and Voronoi vertices
1046 - added 'man' pages qhull.txt and rbox.txt.  These list all the options
1047 - removed 'txt' versions of html files
1048 - added note to 'PDk' about avoiding a 'd' option immediately after a float
1049 - under option 'd', display the triangulation with 'GrD3', not 'GnrD3'
1050
1051Changes to the Qhull library
1052 - added 'format' argument to qh_printfacetNvertex_nonsimplicial() in io.c
1053 - removed C++ type errors [J. Stern, S. Marino]
1054 -  created SETelemt, SETfirstt, etc. for specifying data types.
1055 -  use SETelem,etc. for assignments.
1056 -  changed setT.maxsize to 'int' to prevent type conversion warnings
1057 -  changed FOREACH.. to a comma expression for better code and less warning
1058 -  changed qh.vertex_visit and .visit_id to unsigned int to prevent warnings
1059 - changed clock() to qh_CPUclock (user.h)
1060 - qh_init_B() and qh_readpoints() do not set qh.ATinfinity for Delaunay tri.
1061 - qh_setvoronoi_all() sets upper Delaunay facets if qh.UPPERdelaunay is set
1062 - qh_nearvertex() returns distance in dim-1 for qh.DELAUNAY
1063 - removed MSDOS path from qhull_command.  Spaces in Win95 tripped qh_setflags
1064 - removed memory.h from qhull_a.h.  memset,etc. should be in strings.h
1065 - split qh_prompt into pieces for Visual C++
1066 - added note to qh_addpoint that coordinates can not be deallocated
1067 - added Baker '89 to constrained Delaunay diagrams under Enhancements
1068    please let me know if you try this
1069 - added request for unbounded Voronoi rays to Enhancements
1070    please let me know if you try this
1071
1072------------
1073qhull V2.3 96/6/5
1074 - fixed total area of Delaunay triangulation. [A. Enge]
1075      It should ignore facets on the upper-envelope.
1076 - if 'd Qu FA', the total area is summed over the upper-Delaunay triangles
1077 - fixed sign of area for Delaunay triangulations.
1078 - fixed cdd input format for Delaunay triangulation. [A. Enge]
1079 - for cdd input, allow feasible point for halfspaces.
1080 - warning if cdd output format for centrums, halfspace intersections, or OFF.
1081 - print '0' for area ('Fa') if area is not computed for a facet
1082 - option 'QR-n' sets random number seed to n without rotating input
1083 - fixed qh_findbest() to retest coplanar and flipped facets after a restart
1084 - for 'd Qu Ts' collects angle statistics for upper Delaunay facets
1085
1086 Changes to the Qhull library
1087 - expanded user_eg.c for incremental constructions and Delaunay triangulation
1088 - added discussion of incremental construction to qh_man.html#library
1089 - WARNING: The default value of qh ATinfinity was changed from True to False.
1090            A new flag, qh UPPERdelaunay, was defined for 'Qu'.
1091         Please set qh ATinfinity if you explicitly add the point "at-infinity"
1092         Please set qh ATinfinity if you explicitly call qh_projectinput.
1093         Please set qh UPPERdelaunay if you explicitly cleared qh ATinfinity.
1094         Other users do not need to change their code.
1095   Now you can build a Delaunay triangulation without creating a point
1096   "at-infinity".  This removes a potential, hard-to-understand error.
1097   qh_readpoints sets qh ATinfinity for options 'd' or 'v' without 'Qu'.
1098   qh_initB sets qh ATinfinity for qh PROJECTdelaunay w/o qh UPPERdelaunay.
1099   qh_projectinput adds a point "at-infinity" only if qh ATinfinity is set.
1100 - added qh_setdelaunay to geom2.c to project points to paraboloid
1101 - added qh_findbestfacet() to poly2.c to replace qh_findfacet()
1102 - removed procedure qh_findfacet().  It does not always work.
1103 - removed NULL option for facet in qh_addpoint().  It does not always work.
1104 - added noupper parameter to qh_findbest.
1105 - added search of upperdelaunay facets to qh_findbest()
1106 - allowed qh_findbest() to start with a flipped or upperdelaunay facet
1107 - removed qh_nonupper() -- it is no longer needed
1108 - allow space at end of options
1109 - fixed qh_projectinput for furthest-site Delaunay (qh PROJECTdelaunay 'd Qu')
1110 - added voids to procedure declarations with empty parameter lists
1111
1112------------
1113qhull V2.3 96/3/25
1114 - fixed missing qh_check_maxout when coplanar points and no merged facets.
1115 - fixed qh_freeqhull/allmem (e.g., if qh_NOmem) [only custom code] [E. Voth]
1116 - fixed qh_freeqhull to free qh interior_point [E. Voth]
1117 - fixed main() to free all of memory if qh_NOmem.  Include "mem.h" [E. Voth]
1118 - reset f.newcycle link in qh_mergecycle_all [E. Voth]
1119 - fixed false error if 'Tc', coplanar points, and a narrow hull
1120 - turn off 'Rn' when computing statistics, checking code, or tracing code
1121 - removed ={0} from global.c and stat.c to reduce compiler warnings
1122 - changed Makefile dependences to $(HFILES) for all but unix.o, set.o, mem.o
1123 - pulled out qh_printpointid and reordered qh_pointid [E. Voth]
1124 - removed some compiler warnings
1125 - moved 'FO' print of options to just before qh_buildhull
1126 - changed 'FO' to list difference from -1 for _narrow-hull
1127
1128------------
1129qhull V2.2 96/2/15
1130 - detect narrow initial hulls (cosine of min angle < qh_MAXnarrow in user.h).
1131   Write warning if cosine < qh_WARNnarrow in user.h.  If narrow (qh NARROWhull),
1132   partition coplanar points as outside points and delay coplanar test to end.
1133   Needed for  RBOX 1000 L100000 s G1e-6 t995127886 | QHULL Tv
1134   See 'limitations' in qh-impre.html for further discussion.
1135 - corrected some confusions between 'FV' and 'Fv' in qh-opt.html
1136 - fixed initialization error for small Voronoi diagrams (e.g., [0,0], [1,0], [0,1]) [J. Velez]
1137  - fixed bad return from qh_mindiff in geom2.c
1138 - for initial hull, first process facet with furthest outside point (qh_furthestnext)
1139 - added facet->notfurthest flag for recomputing furthest point
1140 - added check for __STDC__ (needs ANSI C) [E. Voth]
1141 - reduced warning messages from [E. Voth].  e[1] in setT still reports a warning.
1142 - added a cube to the discussion of option 'v' (Voronoi) in qh-opt.html [J. Velez]
1143 - added notes about adjacent vertices to "Calling Qhull" in qh-man.html [R. Lewis & J. Velez]
1144 - added note about 'lines closer' when viewing 3-d Delaunay triangulations [P. Kallberg]
1145 - added option 'Q9' to always process furthest of furthest outside points.
1146 - removed option 'Pp' from q_eg and qh-eg.html.
1147
1148------------
1149qhull V2.2 95/12/28
1150 - added option 'Qbb' to scale the last coordinate to [0,m] (max prev coord).
1151   This reduces roundoff errors for Delaunay triangulations with integer coordinates.
1152 - changed option 'Qu d' to print out the furthest-site Delaunay triangulation
1153   Use options 'Qu d PD2' to compute the normal 2-d Delaunay triangulation without
1154   the point at infinity.
1155 - added notes to the documentation of option 'd'
1156 - added notes to limitations of how Qhull handles imprecision
1157 - added warning if options 'FP', 'Fc', or 'Gp' without option 'Qc' or 'Qi'
1158 - added note to options 'PDk:n' and 'Pdk:n' that closest facet is returned if none match
1159 - added check that 'Qbk' and 'QBk' does not invert paraboloid for 'd'
1160 - added notes that qh_findfacet and qh_addpoint require lifted points for Delaunay triangulations
1161 - fixed 'rbox s 5000 W1e-13 D2 | qhull d Qcu C-0 Qbb'
1162 - fixed option 'QbB' (qh SCALEpoints was not set)
1163 - fixed minor confusion between 'Gc' (print centrums) and 'Gp' (print points)
1164 - rewrote qh_findbestnew for upper convex hull, Delaunay facets
1165 - changed option name for 'Gp' from 'Gcoplanar' to 'Gpoints'
1166 - changed "nearest" facet for 'Pdk' to threshold - normal
1167 - reworked qh GOODclosest for 'Qg'
1168 - added note that 'Qg' does not always work
1169 - recorded option 'C-0' as "_zero-merge" in option 'FO'
1170 - refined qh DISTround in qh_maxmin/geom2.c for Delaunay triangulations
1171
1172qhull V2.2 95/12/4
1173 - Version 2.2 fixes an important bug in computing Delaunay triangulations
1174   and convex hulls with edges sharper than ninety degrees.  The problem
1175   occurs when processing a point at a sharp edge.  A directed search can
1176   not be used for partitioning because one side may hide facets from the
1177   other side.  The new lens-shaped distribution for rbox demonstrates the
1178   problem.  For example, 'rbox 100 L3 G0.5 s | qhull Tv' fails for Version 2.1.
1179   O. Schramm found the bug when computing the Delaunay triangulation of points
1180   near an outside edge.
1181
1182   I rewrote qh_findbest and related functions.  Qh_findbest
1183   uses an exhaustive test for sharp edges (qh_findbest_sharp).
1184   Qh_findbest avoids the upper convex hull of Delaunay triangulations.
1185
1186   Options 'd' and 'v' no longer assign coplanar points to the upper convex hull.
1187
1188   Qh_check_maxout tests near-inside points.  It ignores fully inside points.
1189   When done, it removes near-inside points from the coplanar sets.
1190
1191   If you use qh_addpoint or qh_findbest, please review the function headers.
1192   They do not work for lens-shaped hulls for arbitrary facets.  They do work for
1193   Delaunay triangulations.
1194
1195 Changes to options for V2.2
1196 - added 'Qu' for computing the furthest-site Delaunay triangulation (upper hull)
1197   and furthest-site Voronoi vertices.
1198 - added 'FP' to print nearest vertex for coplanar points
1199 - added coplanar count to 'Fs' and 's'
1200 - added number of similar points to summary for Delaunay/Voronoi
1201 - Option 'Qc' is no longer necessary when merging.
1202 - 'o' format for Voronoi vertices ('v') generates "0" lines for similar points
1203 - 'QRn' for Delaunay ('d' or 'v') now rotates about the Z axis (see qh_init_B).
1204   Otherwise Qhull does not identify the upper hull
1205 - removed option 'Qa' for "all points outside".  In V2.1 it was automatically
1206   set for 'd'.  Even though it was a bad idea, it revealed the above bug.
1207 - for option list ('FO'), added version, values for one-merge, maxpos, maxneg,
1208   and near-inside, and flags for zero-centrum
1209 - optimized 'C-0' and 'Qx'.  These options ("zero-centrum") test vertices
1210   instead of centrums for adjacent simplicial facets.
1211 - if 'Tv', report number of points that are not verified due to qh_findbest
1212 - Option 'Q8' ignores near-inside points.
1213
1214 rbox 95/12/3
1215 - added lens distribution ('Ln')  It may be used with 's', 'r', 'Wn', and 'Gn'
1216 - removed default point count except for the test case, 'Dn'
1217 - divided main() of rbox.c into sections
1218
1219 Documentation changes for V2.2
1220 - added examples for lens distribution and furthest-site Delaunay triangulation
1221   and renumbered the examples for q_eg
1222 - described facet orientation in 'data structure' section [P. Soikkonen]
1223 - added notes to qh-man.html/"What to do if something goes wrong"
1224 - added note about using 'Tv' to verify the results [O. Schramm]
1225 - expanded definition of f_r in Performance section [S. Grundmann]
1226 - noted that Geomview display of a Voronoi diagram adds extra edges
1227   for unbounded Voronoi cells
1228 - rewrote error "convexity constraints may be too strong" [D. Newland]
1229 - added limitations section to "Imprecision in Qhull"
1230 - added note about zero-area facets to 'Imprecise convex hulls' in qh-impre.html
1231 - added note to 'Qi' that it does not retain coplanar points
1232 - added note that option 'Q5' may be used if outer planes are not needed
1233 - added note to README.txt about Irix 5.1 [C. Goudeseune]
1234 - added code fragment for visiting Voronoi vertices to "Calling Qhull" [M. Downes]
1235 - added note about qh_addpoint() to "Calling Qhull" [M. Downes]
1236
1237 Errors fixed for V2.2
1238 - use qh_sethyperplane_gauss if 3-d or 4-d norm is less than qh MINnorm
1239 - count Zcentrumtests if qh_NOstat
1240 - reversed sign convention for qh_sethyperplane_gauss
1241   it was opposite to qh_sethyperplane_det
1242   this effects qh_determinant and qh_detsimplex
1243 - fixed error in qh_findgood_all with multiple restrictions, e.g., 'QVn Pdk'
1244 - fixed call to qh_clearcenters for qh_produce_output
1245 - in qh_errexit, report p0 if last furthest point
1246
1247 Changes for users of the Qhull library
1248 - user code needs to define qh_version (see user_eg.c)
1249 - merged initialization code into qh_init_A and qh_init_B [M. Mazzario]
1250   old code works as before.
1251   qh_initflags also sets qh qhull_command for qh_initthresholds
1252   redid initialization for user_eg.c
1253 - simplified user_eg.c.  It computes the convex hull of a cube.
1254 - added qh_setvoronoi_all in poly2.c to compute Voronoi centers
1255   added related note to call_qhull
1256 - added qh_findfacet to use in place of qh_findbest
1257 - added qh_nearvertex to return nearest vertex in facet to point
1258 - redid notes on multiple, concurrent calls in call_qhull/user.c
1259 - changed BoolT to unsigned int (prevent implicit enum conversion warnings)
1260 - added upperdelaunay to facetT.  It indicates a facet of the upper convex hull.
1261 - converted qhull-PPC.sit for CodeWarrior 7
1262
1263 Code changes for V2.2
1264 - simplified calls to setjmp() for Cray J916 [Salazar & Velez]
1265 - replaced fprintf(fp,string) with fputs in io.c
1266 - 'qh num_coplanar' removed (too expensive and not used).
1267 - added numcoplanars to qh_countfacets()
1268 - added min norm to qh_normalize2().  qh_normalize() wasn't changed
1269 - removed type casts from qh_point and qh_pointid [Salazar & Velez]
1270 - account for roundoff error in detecting upper convex hull (qh ANGLEround).
1271 - post merging uses qh_findbestnew for partitioning
1272 - qh_findbestnew for qh_partitioncoplanar goes to best facet
1273 - 'Qm' always processes points above the upper hull of a Delaunay triangulation
1274 - GOODvertex initialized with qh_findbestnew instead of qh_findbest
1275 - for 'v', qh_facetcenter returns furthest-neighbor vertex if 'Qu'
1276 - added test for qh feasible_point if use 'Fp' and qh_sethalfspace_all
1277 - reviewed Sugihara's algorithm for topologically robust beneath-beyond
1278 - on error, report if qhull in post-merging or has completed
1279 - if tracing, option 'FO' and qhull command always printed
1280 - added current furthest point ("during p%d") to 'T-1' events
1281 - added 'TWn' tracing for vertices of new facets (qh_setfacetplane)
1282 - added 'TWn' tracing for vertices in an output facet (qh_check_maxout)
1283 - reorganized split between poly/poly2.c and geom/geom2.c
1284 - reordered object files in Makefile
1285
1286------------
1287qhull V2.1 95/9/25
1288 - converted qhull.man to html format, many edits
1289 - referenced Shewchuk's triangle program and Schneiders' Mesh Generation page
1290 - added option 'Qa' to force all points outside
1291     automatically set for "precise" Delaunay or Voronoi [Salazar & Velez]
1292     it is turned off by merging, 'Wn', 'Qc' or 'Qi'
1293 - added coplanar points to option 'FN'
1294 - moved option 'FO' to include default precision options
1295 - changed default random number generator to qh_rand in geom2.c (user.h)
1296
1297 other code changes
1298 - fixed option comment Pdrop-facets-dim-less, Qbound-dim-low, QbBound-unit-box
1299 - defined ptr_intT for converting 64-bit ptrs to 'unsigned long' [D. Bremner]
1300 - defined setelemT to distinguish actual size from pointers [D. Bremner]
1301     use either e[...].p or e[...].i (user-level code should use set.h macros)
1302 - changed %x to %p in format statements for pointers [D. Bremner]
1303 - added test of REALmax,etc. to qh_maxmin [H. Poulard]
1304 - added type parameter to qh_memalloc_() macro for type conversion
1305 - added type conversion to qh_memalloc() calls where missing
1306 - added type conversion to calls into set.c that return void*
1307
1308 other documentation changes:
1309 - new URLs for graphics images
1310 - fixed comment for facetT.neighbors in libqhull.h [P. Soikkonen]
1311 - changed recommendations for precision errors in qh_printhelp_degenerate()
1312 -  added recommendation for 'V0' (facet is visible if distance >= 0)
1313 - added note about 'long double' to user.h [S. Grundmann]
1314 - added note about zero area Delaunay triangles for the 'v' option
1315 - added note about locating Delaunay triangles to option 'd' [A. Curtis]
1316 - added note that coplanar vertices correspond to duplicate points for 'd'
1317 - added note about option 'd' automatically setting 'PDk' (lower convex hull)
1318 - added note about precision errors to option 'd' [many users]
1319 - added note about qh_findbest() to the Qhull library section [L. Lai]
1320 - 'make install' renames qhull.man to qhull.1 for Unix [M. Phillips]
1321 - renamed README, etc. to *.txt to match WWW conventions [D. Cervone]
1322
1323------------
1324qhull V2.1 7/10/95
1325  - in 2-d, 'v o' lists the vertex at infinity in order [R. Critchlow]
1326  -   it used to always list the vertex at infinity ("0") first
1327  - rewrote description of 'v' option (Voronoi vertices and 2-d diagrams)
1328  - added 'PFn' for printing facets whose area is at least 'n' [D. Holland]
1329  - prefixed 'Q',etc. to the 'Q',etc. options in the long help prompt
1330  - fixed references to 'Fv' and 'FV' options under option 'Hn,n,n'
1331  - updated reference to cdd, <ftp://ifor13.ethz.ch/pub/fukuda/cdd/>
1332  - in set.c, added some missing type coercions for qhmem.tempstack
1333
1334qhull V2.1 6/12/95
1335  - replaced qhull.ps with qhull-2.ps (paper submitted to ACM TOMS)
1336  - use BUFSIZ for setvbuf for Power Macintosh
1337  - number of good facets printed if QVn, QGn, Pd, or PD
1338  - added Makefile for Borland C++ 4.02 with Win32 [D. Zwick]
1339  - added note to Enhancements section of qhull.1 about constrained
1340       Delaunay triangulations [T. Rasanen]
1341
1342qhull V2.1 6/7/95
1343  - fixed qh_facetarea_simplex() for non-simplicial facets [L. Schramm]
1344  - fixed cast in qh_point and qh_pointid for 64-bit architectures
1345  - fixed URL for Amenta's list of computational geometry software
1346  - fixed cast in qh_meminitbuffers for qhmem.freelists
1347  - added test for !qh half_space in qh readpoints
1348  - clarified options for qh_printhelp_singular()
1349  - discussed non-simplicial facet area under option 'Fa' in qhull.1
1350
1351qhull V2.1 6/3/95
1352  - home page for Qhull and new descriptions for the Qhull examples
1353      http://www.qhull.org
1354  - changed SIOUX buffering for Power Macintosh.   It runs fast now.
1355      added a project file for Metrowerk's C
1356  - note in README about compiling qhull on the PC
1357
1358qhull V2.1 beta 5/15/95
1359
1360                ======= main changes ========
1361  - added halfspace intersection ('Hn,n,n')
1362  - facet merging is better, especially for high dimensions
1363  -   added 'Qx' for exact merges of coplanar points and precision faults
1364  - facet merging is faster, especially for high dimensions.
1365      e.g., convex hull of the 8-d hypercube is seven times faster
1366  - added 'F' output formats for printing each aspect of the convex hull
1367  - format 'Fa' computes facet areas, total area, and total volume
1368  - format 'FO' writes a descriptive list of selected options to stderr
1369  - moved all customization options to user.h
1370  - changed the default precision to 'double' since it's needed for Delaunay.
1371      using 'float' is faster and takes less space (REALfloat in user.h)
1372  - option 'Qm' is no longer important for facet merging
1373  - removed need for 'Qs' by selecting initial simplex with pos. determinants
1374  - renamed 'Qv' to 'Q7' since virtual memory does not work well for qhull
1375  - Qhull is available for the Power Mac (no graphical output)
1376
1377                 ====== other new and modified options ===========
1378  - changed default MINvisible ('Vn') to a multiple of premerge_centrum ('C-n')
1379  - added 'Un' option to set width of facet for coplanar points.
1380       This replaces the previous rules for determining coplanar points.
1381  - changed default MINoutside ('Wn') to twice MINvisible ('Vn')
1382  - Geomview output adjusts point radii for MINvisible 'Vn'
1383  - the input format allows the number of points to precede the dimension
1384  - options 'v' 'd' 'FAn' and 'FMn' record good facets ('Pg')
1385  - added 'Fd' and 'FD' options for homogeneous coordinates in cdd format
1386  -   in rbox, added 'h' flag to generate homogeneous coordinates in cdd format
1387  - option 'PAn' prints out the n facets with the largest area
1388  - option 'PMn' prints out the n facets with the most merges
1389  - option 'Po' under tracing ('Tn') no longer tries to write erroneous facets
1390  - option 'TCn' only prints the old 'visible' facets for 'f'
1391  - 'TFn' reports intermediate results when post-merging
1392  -   option 'Ts' with option 'TFn' prints intermediate statistics
1393  - the message for 'Tv' reports if it is checking outer planes
1394  - 'Tz' sends stderr output to stdout
1395  - added 'Q1' to ignore angle when sorting merges (merges are worse)
1396  - added 'Q2' to not perform merges in independent sets (merges are worse)
1397  - added 'Q3' to not remove redundant vertices (faster)
1398  - added 'Q4' to avoid merges of old facets into new facets (does worse)
1399  - added 'Q5' to skip qh_check_maxout (faster, but less accurate)
1400  - added 'Q6' to skip pre-merge of concave and coplanar facets
1401  - added 'Qv' for testing vertex neighbors for convexity (needs merge option)
1402  - added warning if mix Geomview output with other outputs ('Po' turns off)
1403  - options 'o v' for 3-d and higher sort the Voronoi vertices by index
1404
1405                ======= documentation =======
1406  - rewrote the introduction and precision sections
1407  - added a section on performance
1408  - added an example on halfspace intersection
1409  - installed examples of Qhull in
1410    <http://www.geom.uiuc.edu/graphics/pix/Special_Topics/Computational_Geometry/>
1411
1412                ======= Makefile, user.h, and messages =======
1413  - Makefile calls ./qhull, ./rbox, and prints short prompt for qhull
1414  - added new statistics, e.g., for buildhull
1415  - changed default qh_RANDOMtype to RAND_MAX with rand()
1416  - added comment about numeric overflow to printhelp_singular
1417  - reorganized the code to improve locality of reference
1418  - option in mem.h (qh_NOmem) to turn off memory management in qhull
1419  - option in user.h (qh_NOtrace) to turn off tracing in qhull
1420  - option in user.h (qh_NOmerge) to turn off merging in qhull.
1421  -   use this instead of redefining qh_merge_nonconvex in user.c
1422  - simplified user_eg.c.  See qh_call_qhull() in user.c for the full version
1423
1424                ======== bug fixes ============
1425  - fixed error in number of points for 'rbox 100 r' (odd distribution)
1426  - fixed performance error in qh_degen_redundant_neighbors
1427  - qh_partitionpoint now sets facet->maxoutside for first outside point
1428  - fixed performance error in partitioning when merging a large, regular cone
1429  - removed memory leak in qh_appendmergeset
1430  - removed double free of qh line under errors in qh_readinput()
1431  - forcing output on error ('Po') fixed for options 'n' 'o' 'i' 's'
1432  - fixed optimization error on HP machines [fprintf(... *p++)]
1433
1434                ======== changes to libqhull.h for user code =======
1435  - qh_collectstatistics and qh_printstatistics removed from libqhull.h.
1436      should use qh_printallstatistics instead
1437  - qh_findbest uses boolT for newfacets
1438  - added qh_findbestnew for non-simplicial facets.  qh_findbest is
1439    too slow in this case since it needs to look at many nearly coplanar
1440    facets.
1441  - renamed qh_voronoi/qh_centrum to qh_ASvoronoi, qh_AScentrum
1442  - changed facet->id to 32-bits, added new flags for merging
1443  - added facet->f for facet pointers while merging and for facet area
1444  - added dfacet/dvertex for printing facets/vertices while debugging
1445  - added qh_produce_output and qh_printsummary
1446
1447                ======== changes to code ==========
1448  - moved qh_setfacetplane from qh_makenewfacets to qh_makenewplanes
1449  - added qh_setfree2, qh_setcompact, and qh_setduplicate to set.c
1450  - qh_findgooddist returns list of visible facets instead of setting global
1451  - in qh_check_maxout, inside points may be added to coplanar list.
1452  - qh_findbestnew used for qh_partitionall.  It is faster.
1453  - in qh_findbest, changed searchdist to MINvisible+max_outside+DISTround.
1454      MINvisible is the default MAXcoplanar.
1455  - cleaned up list management via qh_resetlists
1456  - uses facet->dupridge to indicate duplicated ridges instead of ->seen
1457  - qh_buildtracing records CPU time relative to qh hulltime instead of 0
1458
1459                ========== changes to merging =======
1460  - many performance improvements, especially in high-d.
1461  - when merging, qh_findbest and qh_findbestnew stops search at qh_DISToutside
1462  - vertex neighbors delayed until first merge
1463  - post merges reported every TFn/2 merges
1464  - vertex merging turned off in 7-d and higher (lots of work, no benefit).
1465      vertex merging moved to qh_qhull_postmerging in 6-d.
1466  - replaced qh min_vertex with MAXcoplanar for determining coplanarity
1467  - pick closest facets to merge in duplicate ridge instead of flip/flip
1468      (see qh_matchduplicates in poly2.c)
1469  - optimize merge of simplex into a facet
1470  - optimize merge of a "samecycle" of facets into a coplanar horizon facet
1471  - cleaned up qh_forcedmerges/qh_flippedmerges and removed facet->newmerge
1472  - rewrote qh_merge_degenredundant with separate queue
1473  - qh_facetdegen replaced by facet->degenredun
1474  - flipped neighbors no longer merged in preference to flip/non-flip pairs
1475  - removed angle argument from qh_merge_degenredundant and qh_mergefacet
1476       only used for tracing
1477  - getmergeset_initial had extra test of neighbor->simplicial
1478  - ridge->nonconvex is now set on only one ridge between non-convex facets
1479  - moved centrum deletion to qh_updatetested
1480  - qh_isnewmerge(facet) changed to facet->newmerge (removed NEWmerges)
1481  - qh_findbestneighbor reports correct distance even if testcentrum
1482  - added hull_dim factor to qh_BESTcentrum
1483  - removed horizon preference in qh_merge_nonconvex (qh AVOIDold)
1484  - facet->keepcentrum if qh WIDEfacet or qh_MAXnewcentrum extra vertices
1485
1486------------
1487qhull V2.02 1/25/95
1488  - rbox 'z' prints integer coordinates, use 'Bn' to change range
1489  - fixed rare bug in qh_check_maxout when qh_bestfacet returns NULL
1490  - fixed performance bug in findbestneighbor, should be + BESTnonconvex
1491  - renamed 'notgood' flag in 'f' option to 'notG' flag (caused confusion)
1492  - changed qh.hulltime to (unsigned) to prevent negative CPU times
1493  - added random perturbations to qh_getangle under the 'Rn' option
1494  - reviewed the documentation and enhancement list
1495  - added discussion of how to intersect halfspaces using qhull
1496  - replaced expression that caused incorrect code under an old version of gcc
1497  - added buffer after qh.errexit in case 'jmp_buf' has the wrong size
1498  - rewrote qh_printhelp_singular for lower-dimensional inputs
1499  - rewrote qh_printhelp_degenerate
1500  - added options for qh_RANDOMint in qhull_a.h
1501  - changed time format for 'TFn' to %02d
1502
1503------------
1504qhull V2.01 6/20/94
1505  - fixed bug in qh_matchnewfacets that occured when memory alignment makes
1506    facet->neighbors larger than necessary.
1507  - fixed bug in computing worst-case simplicial merge of angle coplanar
1508    facets (ONEmerge).  This decreases (...x) in printsummary.
1509
1510qhull V2.01 6/17/94
1511  - added recommendation for 'Qcm' to documentation and help prompts
1512  - added an input warning to qh_check_points ('Tv') if coplanars and no 'Qc'
1513  - qh_partitionpoint: always counts coplanar partitions (Zcoplanarpart)
1514  - rewrote qh_printhelp_degenerate to emphasize option 'C-0'
1515  - For Geomview output, roundoff is not needed when printing the inner and
1516    outer planes.  This improves Geomview output for the 'Rn' option.
1517  - For Geomview output without coplanar points or vertices, qh_GEOMepislon
1518    is not needed.  This removes the edge gap when displaying a Voronoi cell.
1519  - For Geomview output 'Gp', direct vertices to the interior point
1520    instead of the arithmetic center of the displayed vertices.
1521
1522qhull V2.01 6/11/94
1523  - if pre-merge, 'Qf' is automatically set.  Otherwise an outside point may
1524        be dropt by qh_findbest().  This slows down partitioning.
1525  - always use 'Qc' if merging and all facet->maxoutside's must be right.
1526        Otherwise distributions with many coplanar points may occassionally
1527        miss a coplanar point for a facet.  This is because qh_findbest, when
1528        called by qh_check_maxout, can become stuck at a local maximum if
1529        the search is started at an arbitrary facet.  With 'Qc', the search
1530        is started from a coplanar facet.  For example,
1531                rbox 1000 W8e-6 t | qhull C-0 Tv
1532        will (rarely) report that a facet->minoutside is incorrect
1533  - option 'Pp' turns off "Verifying" message for 'Tv'
1534  - added qh_copynonconvex to qh_renameridgevertex (fixes rare error)
1535  - 'rbox tn' sets random seed to n
1536  - 'rbox t' reports random seed in comment line
1537  - qh_errexit reports rbox_command | qhull_command and 'QR' random seed
1538  - added additional tracing to bestdist and setfacetplane
1539  - in qh_checkconvex, need to test coplanar against 0 instead of -DISTround
1540  - in qh_checkconvex, always test centrums if merging.  The opposite
1541    vertex of a simplicial facet may be coplanar since a vertex of
1542    a simplicial facet may be above the facet's hyperplane.
1543  - fixed error handling in qh_checkconvex when merging
1544  - in qh_printsummary, one merge ratio not printed if less than 'Wn'
1545  - documented that 'Tv' verifies all facet->maxoutside
1546
1547qhull V2.01 6/2/94
1548  - 's' prints summary to stderr
1549  - multiple output formats printed in order to stdout
1550  - added statistic for worst-case distance for merging simplicial facets
1551        can not hope for a better "max distance above/below facet"
1552        print factor for "max distance.."/"merge simplicial" in printsummary
1553  - fixed error in scaling input with min/max reversed ('Qb0:1B0:-1')
1554  - fixed error in scaling if project & Delaunay & scale ('d Qb0:0B1:0b2:0')
1555  - user_eg.c: qh_delpoint removed since it does not always work
1556  - user_eg.c now works for either convex hull or Delaunay triangulation
1557  - added PROJECTdelaunay for Delaunay triangulations and Voronoi diagrams
1558        with libqhull.a and user_eg.c
1559  - user_eg.c: if project or scale input, need to copy points
1560  - user_eg.c: default just defines main, added fprintf's for qh_errprint etc.
1561  - qh_gausselim: a 0 pivot no longer zeros the rest of the array,
1562          need the remaining elements for area computation
1563  - qh_qhull: restore cos_max, centrum_radius at end of POSTmerging
1564  - qh_checkflipped with !allerror is >=0.0 instead of >0.0
1565  - removed -Wall from gcc due to unnecesssary "warning: implicit declaration"
1566  - renamed 'new' variables and fields to allow compilation by g++
1567  - added README notes on C++, and "size isn't known"
1568  - updated manual on 'Qg' with coplanar facets and no merging ('rbox c D7')
1569      'Qg Pg' and 'Pg' produce different results because of precision problems
1570
1571------------
1572Converting from qhull 1.01 to qhull 2.00
1573  - 'qhull An' is now 'qhull Wn'
1574        option 'Wn Po' is faster but it doesn't check coplanars
1575  - 'qhull g' is now 'qhull G', and the output formats are different
1576  - 'qhull c' is now 'qhull Tc'
1577  - 'qhull f' is now 'qhull Qf'
1578  - 'qhull o' is now 'qhull Po'
1579  - 'qhull b' is now always done
1580  - qhull and rbox now use floats, change REALfloat in libqhull.h for doubles
1581  - qhull 2.00 fixes several initialization errors and performanace errors
1582        e.g., "singular input" on data with lots of 0 coordinates
1583  - 'rbox b' is now 'rbox c G0.48'
1584  - all rbox distributions are now scaled to a 0.5 box (use 'Bn' to change)
1585  - rbox now adds a comment line.  This may be removed by 'rbox n'
1586  - 'rbox r s Z G' no longer includes the positive pole
1587  - no changes to the Macintosh version
1588
1589qhull V2.00 5/23/94
1590  - if force output ('Po'), facet->maxoutside= 'Wn' since coplanars not updated
1591        convexity checked if precision problems or verify ('Tv')
1592  - if merging, new facets always checked for flipped orientation
1593  - a facet is visible (findhorizon) under 'Qm' if distance > max_vertex
1594  - if using 'Qm' then min. outside is max_vertex instead of max_outside
1595  - default is random()/srandom() in qhull_a.h, checked in initqhull_globals
1596  - created internal strtod since strtod may skip spacing after number
1597  - removed lower bound (1.0) for qh maxmaxcoord
1598  - divzero needs to handle 0/0 and large/small
1599  - decreased size of precise vertices
1600  - need to initialize qh MINdenom_1 for scalepoints
1601  - added factor of qh maxmaxcoord into DISTround (needed for offset)
1602  - 'Rn' perturbs distance computations by random +/-n
1603  - check_points needs an extra DISTround to get from precise point to computed
1604  - rewrote some of the IMPRECISION section in qhull.man
1605  - added the input format to the qhull prompt
1606  - moved include files to qhull_a.h since some compilers do not use float.h
1607  - added qhull.1 and rbox.1 since SGI does not ship nroff
1608  - reduced cutoff for printpointvect
1609  - use time for qhull random seed only if QR0 or QR-1
1610  - radius of vertices and coplanar points determined by pre-merge values
1611
1612qhull V2.00 5/12/94
1613  - facet2point (io.c) used vertex0 instead of vertex1
1614  - can't print visible facets after cone is attached
1615  - shouldn't check output after STOPcone (TCn)
1616  - statistic 'Wminvertex' and 'Wmaxoutside' only if MERGING or APPROXhull
1617  - 'make doc' uses lineprinter format for paging
1618  - warning if Gpv in 4-d
1619
1620qhull V2.b05 5/9/94
1621  - decreased size of precise vertices
1622  - precise facets in 2-d print hyperplanes
1623  - accounted for GOODpoint in printsummary
1624  - added IMPRECISION section to qhull.man
1625  - 'Qg' does work in 7-d unless there's many coplanar facets
1626
Note: See TracBrowser for help on using the repository browser.