Subject: CVS commit: pkgsrc/math/qhull
From: Niclas Rosenvik
Date: 2016-02-03 17:05:56
Message id: 20160203160556.3F0B4FBB7@cvs.NetBSD.org

Log Message:
Updated qhull to version 2015.2.

Changelog:
------------
Qhull 2015.2 2016/01/18 (7.2.0)
 - Fixed memory leak in ~QhullQh [M. Sandim]
   QhullQh.cpp: call checkAndFreeQhullMemory() in the destructor.  Otherwise \ 
memT is not freed.
   Remove checkAndFreeQhullMemory() from Qhull.h.  It is not needed.
   Remove calls to checkAndFreeQhullMemory in qhulltest.  It is called by ~QhullQh()
   libqhull_r.h: Document qh_ASvornoi and facetT.center
   qh_freeqhull: if qh_NOmem, use qh_ALL
   qh_memalloc: short memory is freed by qh_memfreeshort unless qh_NOmem
   qh_memstatistics (mem.c): call qh_memcheck() as done in mem_r.c
   qh_new_qhull calls qh_memcheck
   qh_newvertex: free vertex on error
   qh_projectinput: Free memory allocations on error
   qh_rboxpoints: free simplex on error
   qh_sethalfspace_all: Fixed memory leak on error QH8032 feasible not inside \ 
halfspace
   qh_triangulate_facet: For TRInormals ('Q11') replace qh_copypoints with \ 
qh_memalloc
   qh_triangulate_facet: Document qh.TRInormals
   qh_voronoi_center: Free center on error
   qhulltest: Fixed memory leak of s_testcases by calling RoadTest::deleteTests()
   qhulltest: The 'add_*_test' functions append the test object to \ 
RoadTest::s_testcases
   ~RoadTest: declare virtual for Q_OBJECT, removeAll not needed
   user_eg2: Check memory at end of each run
   user_r.h: Add QHULL_CRTDBG for invoking Microsoft's memory leak detector
   use _MSC_VER instead of QHULL_OS_WIN for QHULL_CRTDBG
   Call qh_freeqhull with qh_ALL/!qh_ALL instead of 'True/False'
   Include user_r.h with RoadError,h for QHULL_CRTDBG
   Invoke _CrtSetDbgFlag... at beginning of program
   Moved user_r.h/libqhull_r.h/qhull_ra.h as first include (for QHULL_CRTDBG)
   Moved QHULL_OS_WIN from qhull_ra.h to user_r.h
   Removed __CYGWIN__ from QHULL_OS_WIN (same as Qt's qglobal.h)

 - check_dupridge: A bounding box is not sufficient to avoid dupridge errors
 - qh_findbestneighor: Error if qh.CENTERtype is qh_ASvoronoi (i.e., no merging now)
 - qh_printstatlevel: Remove unused parameter, 'start'
 - QhullLinkedList::last() and back(): Return T instead of T& (T is computed)

 - qh-code.htm: "How to convert code to reentrant Qhull"
   Update "Nearly coincident points on an edge"
   Add 2012 size of data structures to "Qhull on 64-bit computers"
 - html/index.htm: Add CGAL to "When to use"
 - qh-optq.htm: Add documentation for option 'Q12'
 - Move suggestions from Changes.txt to qh-code.htm#enhance
 - user_r.h: Fixed qh-us_r.html links
 - Fixed links in html pages

 - QhullIterator and QhullLinkedList: Include <iterator> [B. Boeckel]
 - Moved include file for each C++ source file to the top of the includes
 - Prepend cpp includes with "libqhullcpp/"
 - RoadLogEvent includes RoadLogEvent.h
 - QhullIterator.h: Only QHULL_DECLARE_SEQUENTIAL_ITERATOR is used.

 - Compared src/libqhull/* to src/libqhull_r/* and resolved differences
 - qh_printpoint in io.c skips qh_IDnone like io_r.c
 - qhull_p-exports.def: Added three missing exports
 - set_r.h: Removed countT. Too many issues

 - libqhull_r/Makefile: Add help prompts to 'make qtest'
 - libqhull.pro: Add '../libqhull/' to sources and headers
 - libqhull/Makefile: Fixed -I,./,,/src

 - qhull-zip.sh: Add CMakeModules to tarball [C. Rosenvik]
 - CMakeLists.txt: Add targets qhullp and user_egp for qh_QHpointer and libqhull_p
 - Reorganized 'make help'
 - Makefile cleanall: Delete testqset and qhulltest from bin/
 - Fix filetype of Unix-only files
 - Fix Unix line endings for Makefile and check in qhull-zip.sh
 - Fix Windows line-endings and check in qhull-zip.sh
 - qhull-zip.sh: Check for Unix text files

 ------------
Qhull 2015.1 2016/01/03 (7.1.0)
 - Add Rbox option 'Cn,r,m' to add nearly coincident points.  Trigger for \ 
duplicate ridges
 - Add Qhull option 'Q12' to ignore error on wide merge due to duplicate ridge

 - qh_findbestlower: Call qh_findfacet_all to fix rare "flipped or upper \ 
Delaunay" error QH6228.
   QH6228 input provided by J. Metz.  Reported (date order): L. Fiaschi, N. \ 
Bowler, A. Liebscher, V. Vieira, N. Rhinehart, N. Vance, P. Shafer
 - qh_check_dupridge: Check if wide merge due to duplicate ridge from nearly \ 
coincident points
 - qh_initialhull: Fix error messages for initial simplex is flat
 - qh_determinant: increased 2-d and 3-d nearzero by 10x due to a counter-example
 - rbox: Add qh_outcoord() to output coordinates w/ or w/o iscdd
 - qh_meminit (mem.c): Add call to qh_memcheck
 - Compare libqhull/... to libqhull_r/... and resolve differences
 - Update builds for DevStudio (qhull.sln for msdev 2005..2009, qhull-32.sln and \ 
qhull-64.sln for recent releases)

 - qh-impre.htm: Add a section about precision errors for 'Nearly coincident \ 
points on an edge'
 - html/index.htm#geomview: Document how to install, build, and use Geomview.
 - html/index.htm: Emphasize program links and move related urls to end
 - qhull/index.htm: Emphasize manual, geomview, and imprecision
 - Fix documentation links in libqhull_r/index.htm
 - Add 'Functions' link to documentation headers
 - Change '<A>...</A>' to '<a>...</a>'
 - libqhull_r/index.htm -- Add instructions for configuring web browsers for \ 
source links.
 - libqhull_r/ -- Fix source links for ..._r.htm files

------------
Qhull 2015.0.7 2015/11/09 (7.0.7)
 - Fix return type of operator-> in QhullLinkedList and other collection \ 
classes [F. Jares]
 - Fix return types for QhullLinkedList
 - Fix return types for QhullPoints
 - Simplify return type for Coordinates::operator[] (same as QList)
 - Add const to operators for QhullSet::iterator and add documentation
 - Coordinates.h: Fix return types for operations of iterator and const_iterator
 - Drop use of Perforce changelist number in qhull_VERSION of CMakeLists.txt
 - Rename the md5sum files as *.tgz.md5sum instead of *-tgz.md5sum
 - Fix build dependency for testqset_r [asekez]
 - rbox.c depends on Qhull due to qh_lib_check which uses qh_version2 for error \ 
messages
 - QhullFacet_test.cpp: Annotate Qhull invocations.   Allows their repetition.
 - QhullFacet_test.cpp: Adjust epsilon on distance tests
 - Do not create libqhullcpp as a shared library.  Qhull C++ classes may change \ 
layout and size.
 - qhull-cpp.xml: Make a relative path to road-faq.xsl

------------
Qhull 2015.0.6 2015/10/20 (7.0.6.2013)
 - In the libraries, exit() is only called from qh_exit().  qh_exit may be redefined.
 - Add qh_fprintf_stderr to usermem.c.  May be overridden to avoid use of stderr \ 
[D. Sterratt]
   Add usermem to testqset builds
   Used by qh_fprintf_rbox
 - Remove most instances of stderr/stdout from libqhull, libqhull_r, and \ 
libqhullcpp [D. Sterratt]
   qh_fprintf_stderr may be redefined.  qh_meminit and qh_new_qhull use stderr \ 
as the default ferr
 - qh_initflags: Use qh.fout instead of stdout for 'TO file'.  A library caller \ 
may define a different qh.fout.
 - qh_settemppush: Call qh_fprintf() instead of fprintf() on error.
 - Rename qh_call_qhull as "Qhull-template" from user.c.  Updated its \ 
references.

 - qh-code.htm: "How to avoid</a> exit(), fprintf(), stderr, and \ 
stdout"
 - html/index.htm: Fix table of contents for qh-code
 - libqhull_r/index.htm: Rewrite introduction to Reentrant Qhull
 - qh-faq.htm: Rewrite "Can Qhull use coordinates without placing  them in \ 
a data file?"
 - qh-get.html: Link to github
 - Remove qhull_interface.cpp from the documentation

------------
Qhull 2015.0.5 2015/10/12 (7.0.5.1995)
- qh_new_qhull: default 'errfile' is 'stderr'.  outfile and errfile are optional \ 
[B. Pearlmutter]
- qh_new_qhull: returns qh_ERRinput instead of exit() if qhull_cmd is not \ 
"qhull ..." [B. Pearlmutter]
- qhalf_r.c,etc: Add clear of qh.NOerrexit
- global.c: gcc 4.4.0 mingw32 segfault cleared by adding comment
- usermem_r-cpp.cpp: Optional file to redefine qh_exit() as throw \ 
"QH10003.." [B. Pearlmutter]
  qh_exit() is called by qhull_r when qh_errexit() is not available.

- html/index.htm:  Add bibliographic reference to Golub & van Loan and \ 
annotated the source references
- qhalf.htm: A halfspace is the points on or below a hyperplane [D. Strawn]
- qh-opto.htm#n: Defined inside, outside, on, above, and below a hyperplane [D. \ 
Strawn]
- qhalf.htm#notes: Recast the linear program using negative halfspaces (as used \ 
by Qhull) [D. Strawn]
- qhull_a.h: Fix comment '#include "libqhull/qhull_a.h" [fe rew]

- build/qhull*.pc.in: Templates for pkg-config (derived from Fedorra) [P. McMunn]
  \ 
https://bitbucket.org/mgorny/pkg-config-spec/src/c1bf12afe0df6d95f2fe3f5e1ffb4c50f018825d/pkg-config-spec.txt?at=master&fileviewer=file-view-default
- Makefile: Remove user_eg3.o from LIBQHULLCPP_OBJS
- Makefile: Add .h dependencies for unix_r.o, etc.
- libqhull/Makefile: Fix build of rbox
- libqhull_r/Makefile: Fix build -I
- qhull.sln/user_eg3:  Add dependency on libcpp
- Removed bin/libqhull_r.dll (should be qhull_r.dll)
- Removed  build/qhulltest.vcproj (see build/qhulltest/qhulltest.vcproj)

------------
Qhull 2015.0.4 2015/9/30 (7.0.4.1984)
 - qh-get.htm: Unix tarball includes version number (e.g., \ 
qhull-2015-src-7.1.0.1940.tgz) [Hauptman]
 - qglobal.c: Add qh_version2 with Unix version for "-V" option [Hauptman]
 - build/qhull-32.sln, *-32.vcxproj: Add Visual Studio 32-bit build for 2010+
 - build/qhull-64.sln, *-64.vcxproj: Add Visual Studio 64-bit build for 2010+ \ 
[G. Lodron]
 - make-vcproj.sh: Restore to eg/... It is required for Visual Studio builds
 - README.txt: updated builds and reentrant Qhull
 - Add documentation for QHULL_LIB_CHECK
 - qh_lib_check: Check for unknown QHULL_LIB_TYPE
 - qh-code.htm: Add memory requirements for 32- and 64-bit

------------
Qhull 2015.0.3 2015/9/22
 - qh_mem, qh_merge: Log before 'delete' instead of afterwards [Coverity, K. Schwehr]
 - qh_merge: Test for NULL horizon in qh_checkzero [Coverity, K. Schwehr]
 - qh_matchneighbor: Check for matchfacet not a neighbor of facet [Coverity, K. \ 
Schwehr]
 - qh_triangulate: Explicit check for visible==NULL [Coverity, K. Schwehr]
 - qh_findbestfacet (unused by qhull): Fix test of isoutside [Coverity, K. Schwehr]
 - qh_check_maxout: Check bestfacet!=0 for logging its id [Coverity, K. Schwehr]
 - qh_nearvertex: Check for bestvertex not found [Coverity, K. Schwehr]
 - qh_checkfacet: Check for missing neighbors of simplicial facets [Coverity, K. \ 
Schwehr]
 - qh_setdelnth: Check 'nth' before using it [Coverity, K. Schwehr]
 - Annotate code for Coverity warnings (most of these protected by qh_errexit) \ 
[K. Schwehr]

 - qh_printfacet3math: explicit format string (duplicates change to io.c) [B. \ 
Pearlmutter]
 - libqhull_r.h: fix spelling error (duplicates change to libqhull.h) [B. \ 
Pearlmutter]
 - unix_r.c: fix spelling error (duplicates change to unix.c) [B. Pearlmutter]
 - qhull_a.h: define qhullUnused() only if defined(__cplusplus) [R. Stogner]
 - qh_version: Use const char str[]= "string" instead of const char * \ 
str= "string" [U. Drepper, p. 27]
 - qh_newvertex: Use UINT_MAX instead of 0xFFFFFFFF
 - qh_newridge: Use UINT_MAX instead of 0xFFFFFFFF
 - Reviewed FIXUP notes

 - QhullRidge_test: t_foreach use 'foreach(const QhullVertex &v, vertices)
 - Made '#include "RoadTest.h" consistent across all C++ tests

 - qh-code.htm: May also use libqhull_r (e.g., FOREACHfacet_(...))
 - qh-get.htm: Add list of download build repositories

 - Add CMakeModules/CheckLFS.cmake: Enables Large File Support [B. Pearlmutter]
 - Makefile: Use -fpic at all times instead of -fPIC, [U. Drepper p. 15]

------------
Qhull 2015.0.2 2015/9/1
 - global_r.c: Fixed spelling of /* duplicated in...qh_clear_outputflags */ [K. \ 
Schwehr]
 - Replaced Gitorious with GitHub
 - Moved 'to do' comments into Changes.txt

------------
Qhull 2015.0.1 2015/8/31

 Source code changes
 - Increased size of vertexT.id and ridgeT.id to 2^32 [H. Strandenes, C. Cantwell]
   Reworded the warning message for ridgeT.id overflow.  It does not affect \ 
Qhull output
 - Add qh_lib_check to check for a compatible Qhull library.
   Programs should call QHULL_LIB_CHECK before calling Qhull.
 - Include headers prefixed with libqhull/, libqhull_r/, or libqhullcpp/
 - Renamed debugging routines dfacet/dvertex to qh_dfacet/qh_dvertex
 - Rewrote user_eg, user_eg2, and user_eg3 as reentrant code
 - Renamed 'qh_rand_seed' to 'qh_last_random'.  Declare it as DATA
 - qh_initqhull_start2 sets qh->NOerrexit on initialization
   User must clear NOerrexit after setjmp()

 Other source code changes
 - Define ptr_intT as 'long long' for __MINGW64__ [A. Voskov]
 - poly_r.c: initialize horizon_skip [K. Schwehr]
 - Removed vertexT.dim and MAX_vdim.  It is not used by reentrant Qhull.
 - Removed qhull_inuse.  Not used by C++
 - Removed old __MWERKS__/__POWERPC__ code that speed up SIOUX I/O
 - Moved #include libqhull/... before system includes (e.g., <stdio.h>
 - Comment-out _isatty declaration.  Avoids "C4273 ... inconsistent dll \ 
linkage"
 - Add random.h/random_r.h as an include file to random.c/random_r.c
 - Rename rbox routines to qh_roundi/qh_out1/qh_out2n/qh_out3n
 - Rename dfacet and dvertex to qh_dfacet and qh_dvertex
 - Replace 'qhmem .zzz' with 'qhmem.zzz'
 - Removed spaces between function name and parentheses
 - Rename 'enum statistics' to 'enum qh_statistics'
 - Declare rbox as DATA in qhull-exports.def and qhull_p-exports.def
 - In comments, use 'qh.zzz' to reference qhT fields
 - In qh_fprintf, use qhmem.ferr to report errors
 - qh_fprintf may be called for errors in qh_initstatistics and qh_meminit
 - qh_pointid returns qh_IDnone, qh_IDinterior, qh_IDunknown in place of -3, -2, \ 
-1 resp.
 - getid_() returns qh_IDunknown in place of -1
 - After qh_meminit, qhmem.ferr is non-zero (stderr is the default)
 - Update qh_MEMalign in testqset.c to user.h (with realT and void*)
 - Split rboxT into a header file
 - Add rboxlib.h to libqhull_a.h
 - Rename PI to qh_PI and extend to 30 digits
 - Rename MAXdim to qh_MAXdim
 - Change spacing for type annotations '*' and '&' in C++ header files
 - Test for !rbox_output/cpp_object in qh_fprintf_rbox
 - Remove 'inline' annotation from explicit inline declarations
 - Column 25 formatting for iterators, etc.
 - Use '#//!\name' for section headers
 - QhullFacet.cpp: zinc_(Zdistio);
 - Clear qhT.ALLOWrestart in qh_errexit
 - Replace longjmp with qh_errexit_rbox in qh_rboxpoints
 - Add jmpExtra after rbox_errexit to protect against compiler errors
 - Add qh.ISqhullQh to indicate initialization by QhullQh()
 - Add library warnings to 'rbox D4', user_eg, user_eg2, user_eg3
 - Add headers to q_eg, q_egtest, and q_test
 - Check that qh.NOerrexit is cleared before call to qh_initflags

Qhull documentation
 - README.txt: Added references to qh-code.htm
 - README.txt: Added section 'Calling Qhull from C programs'
 - qh-code.htm: Moved Performance after C++ and C interface
 - qh-code.htm: Moved Cpp Questions to end of the C++ section
 - qh-code.htm: Fixed documentation for 'include' path.  It should be \ 
include/libqhull
 - qconvex.htm: Fixed documentation for 'i'.  It triangulates in 4-d and higher [ref]
 - Clarified qhalf space documentation for the interior point [J. Santos]
 - rbox.c: Version is same date as qh_version in global.c
 - gobal_r.c: Version includes a '.r' suffix to indicate 'reentrant'

Qhull builds
 - Development moved to http://github.com/qhull/qhull
   git clone git@github.com:qhull/qhull.git
 - Exchanged make targets for testing.
   'make test' is a quick test of qhull programs.
   'make testall' is a thorough test
 - Added 'make help' and 'make test' to libqhull and libqhull_r Makefiles
 - CMakeLists.txt: Remove libqhull, libqhull_r, and libqhullcpp from \ 
include_directories
 - CMakeLists.txt: Add qhull_SHAREDR for qhull_r
 - CMakeLists.txt: Retain qhull_SHARED and qhull_SHAREDP (qh_QHpointer)
 - CMakeLists.txt: Move qhull_SHARED and qhull_SHAREDP (qh_QHpointer) to \ 
qhull_TARGETS_OLD
   Drop qhull_STATICP (use qhull_SHAREDP or qhull_STATIC)
   Set SOVERSION and VERSION for shared libraries
 - Move qhull_p-exports.def back to libqhull
 - Switched to mingw-w64-install for gcc
 - Improved prompts for 'make'
 - qhull-all.pro: Remove user_eg3.cpp from OTHER_FILES
 - libqhull.pro: Ordered object files by frequency of execution, as done before
 - Add the folder name to C++ includes and remove libqhullcpp from INCLUDEPATH
 - Changed CONFIG+=qtestlib to QT+=testlib
 - Changed Makefile to gcc -O3 (was -O2)
 - Changed libqhull/libqhull_r Makefiles to both produce rbox, qhull, ..., \ 
user_eg, and user_eg2
 - Removed Debian 'config/...'.  It was needed for Qhull 2012.

libqhull_r (reentrant Qhull)
 - Replaced qh_qh with a parameter to each procedure [P. Klosterman]
   No more globally defined data structures in Qhull
   Simplified multithreading and C++ user interface
   All functions are reentrant (Qt: "A reentrant function can ... be called \ 
simultaneously from multiple threads, but only if each invocation uses its own \ 
data.")
   No more qh_QHpointer.
   See user_eg3 and qhulltest
   New libraries
      libqhull_r -- Shared library with reentrant sources (e.g., poly_r.h and \ 
poly_r.c which replace libqhull's poly.h and poly.c)
      libqhullstatic_r -- Static library with the same sources as libqhull_r
      libqhullcpp -- The C++ interface using libqhullstatic_r (further notes below)
   New executables
      testqset_r -- Test qset_r.c (the reentrant version of qset.c

 Source code changes for libqhull_r
 - Add qh_zero() to initialize and zero memory for qh_new_qhull
 - Remove qh_save_qhull(), qh_restore_qhull(), and qh.old_qhstat from global_r.c
 - Remove qh_freeqhull2() (global_r.c)
 - Remove qh_freestatistics() (stat_r.c)
 - Remove qh_compare_vertexpoint (qhT is not available, unused code)
 - Remove conditional code for __POWERPC__ from unix_r.c and rbox_r.c
 - Move qh_last_random into qh->last_random (random_r.c)
 - Rename sources files with a '_r' suffix.  qhull_a.h becomes qhull_ra.h
 - Replace 'qh' macro with 'qh->'
 - Replace global qhT with parameter-0
 - Add qhmemT to beginning of qhT.  It may not be used standalone.
 - Add qhstatT to end of qhT
 - Remove qhull_inuse
 - Change qhmem.zzz to qh->qhmem.zzz
 - Replace qh_qhstat with qh->qhstat
 - Remove qh_freestatistics
 - Replace qh_last_random with qh->last_random
 - Replace rboxT with qh->rbox_errexit, rbox_isinteger, rbox_out_offset
 - Replace rbox.ferr/fout with qh->ferr/fout
 - No qh for qh_exit, qh_free, qh_malloc, qh_strtod, qh_strtol, qh_stddev
 - New qmake include files qhull-app-c_r.pri, qhull-app-shared_r.pri, \ 
qhull-libqhull-src_r.pri
 - Replace 'int' with 'countT' and 'COUNTmax' for large counts and identifiers
 - qhset converted to countT
 - Removed vertexT.dim -- No longer needed by cpp
   Removed MAX_vdim
 - Guarantee that qh->run_id!=0.  Old code assumed that qh_RANDOMint was 31 bits

Changes to libqhullcpp
 - Added QhullVertexSet.h to libqhullcpp.pro and libqhullpcpp.pro
 - QhullVertexSet: error if qhsettemp_defined at copy constructor/assignment \ 
(otherwise double free)
 - Enable QhullSet.operator=.  Copy constructor and assignment only copies pointers
 - Changed QhullPoint.operator==() to sqrt(distanceEpsilon)
 - Added assignment of base class QhullPoints to PointCoordinates.operator=
 - Enable QhullPoints.operator=
 - Rename PointCoordinates.point_comment to describe_points
 - Add 'typename T' to definition of QhullSet<T>::value()

C++ interface
 - Reimplemented C++ interface on reentrant libqhull_r instead of libqhull
 - Prepend include files with libqhullcpp/
 - Replaced UsingLibQhull with QhullQh and macro QH_TRY
   Removed UsingLibQhull.currentAngleEpsilon and related routines
   Removed UsingLibQhull_test.cpp
   Replaced globalDistanceEpsilon with QhullQh.distanceEpsilon
   Replaced globalAngleEpsilon with QhullQh.angleEpsilon
   Moved UsingQhullLib.checkQhullMemoryEmpty to QhullQh.checkAndFreeQhullMemory
   Replaced FACTORepsilon=10 with QhullQh.factor_epsilon=1.0
 - To avoid -Wshadow for QhullQh*, use 'qqh' for parameters and 'qh()' for methods
 - Moved messaging from Qhull to QhullQh
 - Add check of RboxPoints* in qh_fprintf_rbox
 - Renamed Qhull.initializeQhull to Qhull.allocateQhullQh
   Added qh_freeqhull(!qh_ALL) as done by unix.c and other programs
 - Moved QhullPoints.extraCoordinatesCount into QhullPoints.cpp
 - Replaced section tags with '#//!\name ...'
 - Removed qhRunId from print() to ostream.
 - Removed print() to ostream.  Use '<< qhullPoint' or '<< \ 
qhullPoint.print("message")'

C++ interface for most classes
 - Remove qhRunId
 - Add QhullQh *qh_qh to all types
    Pointer comparisons of facetT,etc. do not test corresponding qh_qh
    Added to end of type for debugging information, unless wasteful alignment
 - Add QhullQh * to all constructors
 - All constructors may use Qhull & instead of QhullQh *
 - For inherited QhullQh types, change to 'protected'
 - Renamed 'o' to 'other' except where used extensively in iterators
 - Except for conditional code, merged the Conversion section into GetSet
 - Removed empty().  Use isEmpty() instead
 - Add operator= instead of keeping it private
 - print_message=0 not allowed.  Use "" instead.
 - Rename isDefined() to isValid() to match Qt conventions

C++ interface by class
 - Coordinates
   Removed empty().  Use isEmpty() instead
   Added append(dim, coordT*)
   Reformated the iterators
   Convert to countT
 - PointCoordinates
   Added constructors for Qhull or QhullQh* (provides access to \ 
QhullPoint.operator==)
   Removed PointCoordinates(int pointDimension) since PointCoordinates should \ 
have a comment.  Also, it is ambiguous with PointCoordinates(QhullQh*)
   Renamed point_comment to describe_points
   Convert to countT
 - Qhull
   Remove qhull_run_i
   Remove qh_active
   Replace property feasiblePoint with field feasible_point and methods \ 
setFeasiblePoint/feasiblePoint
     Returns qh.feasible_point if defined
   Moved useOutputStream to QhullQh use_output_stream
   Renamed useOutputStream() to hasOutputStream()
   Replaced qhull_dimension with qh->input_dim  //! Dimension of result \ 
(qh.hull_dim or one less for Delaunay/Voronoi)
   Removed global s_qhull_output= 0;
   Move qhull_status, qhull_message, error_stream, output_stream to QhullQh
   Renamed qhullQh() to qh()
   Added check of base address to allocateQhullQh(),  Was not needed for qhullpcpp
 - QhullFacet
   Constructor requires Qhull or QhullQh* pointer
   Convert to countT
   Dropped implicit conversion from facetT
   Dropped runId
   Add print("message") to replace print()
 - QhullFacetList
   Constructor requires Qhull or QhullQh* pointer
   Convert to countT
   Dropped runId
 - QhullFacetSet
   Removed empty().  Use isEmpty() instead
   Constructor requires Qhull or QhullQh* pointer
   Convert to countT
   Dropped runId
   Add operator=
   Implement print("message")
 - QhullHyperplane
   Add hyperplaneAngle() method
   Rewrite operator== to use hyperplaneAngle()
   Reorganize fields to keep pointers aligned
   Except for default constructor requires Qhull or QhullQh* pointer
   Enable copy assignment
   Reorganized header
 - QhullLinkedList
   Add operator=
   Removed empty().  Use isEmpty() instead
   Convert to countT
   iterator(T) made iterator(const T &)
   const_iterator(T) made const_iterator(const T &)
   const_iterator(iterator) made const_iterator(const iterator &)
 - QhullPoint
   Add constructors for Qhull or QhullQh* pointer (for id() and operator==)
   Add defineAs(coordT*)
   Add getBaseT() and base_type for QhullSet<QhullPoint>
   Added checks for point_coordinates==0
   Removed static QhullPoint::id(), use QhullPoint.id() instead
   distance() throws an error if dimension doesn't agree or if a point is undefined
   Convert to countT
   If !qh_qh, operator==() requires equal coordinates
   Use cout<<p instead of cout<<p.print()
   Reorganized
 - QhullPoints
   Add constructors for Qhull and QhullQh* (for qh.hull_dim, QhullPoint::operator==)
   Remove QhullPoints(int pointDimension) since it is ambiguous with \ 
QhullPoints(QhullQh *qqh)
   Add operator=
   Removed empty().  Use isEmpty() instead
   Convert to countT
   operator==() tests if pointers are the same.  Ituses distanceEpsilon if qh_qh \ 
is defined
   Reorganized
 - QhullPoints::Iterator and ConstIterator
   Removed default constructors
   Add constructors for Qhull and QhullQh* (for qh.hull_dim, QhullPoint::operator==)
   Moved test of dimension from QHULL_ASSERT to operator==
   Added QHULL_ASSERT of qh_qh
   Convert to countT
 - QhullPointSet
   Constructor requires Qhull or QhullQh* instead of dimension()
   Add operator=
   Removed empty().  Use isEmpty() instead
   Convert to countT
   Always print print_message
   Drop print().  Replace with print("")
 - QhullQh
   Added methods hasOutputStream(), disableOutputStream(), and \ 
enableOutputStream() (was Qhull UseOutputStream)
   Add test of qh.NOerrexit to maybeThrowQhullMessage()
   Add qhull_status, qhull_message, error_stream, output_stream from Qhull
   Add factor_epsilon
 - QhullRidge
   Constructor requires Qhull or QhullQh* pointer
   Dropped implicit conversion from ridgeT
   Converted otherFacet() to 'const &'
   Converted nextRidge3d() to 'const &'
   Message for '<< QhullRidge' replaces "   - " instead of \ 
preceding it
 - QhullSet
   Removed empty().  Use isEmpty() instead
   Constructor requires Qhull or QhullQh* pointer
   Convert to countT
   Add operator=
 - QhullVertex
   Constructor requires Qhull or QhullQh* pointer
   Convert to countT
   Dropped implicit conversion from vertexT
   Add message to '<< QhullVertex'
 - QhullVertexSet
   Removed empty().  Use isEmpty() instead
   Constructor requires Qhull or QhullQh* pointer
   Convert to countT
 - UsingQhullLib
   Removed
   Replace setGlobalDistanceEpsilon with setFactorEpsilon
   Replace globalDistanceEpsilon with distanceEpsilon

------------
Qhull 2012.1  2012/02/18 6.3.1.1494
 - Fix CMakeLists for libqhull with MATCHES [P. Gajdos]

------------
Qhull 2012.1  2012/02/18 6.3.1.1490

Code changes
 - Require option 'Qz' for Delaunay triangulation/Voronoi diagram
   of cocircular/cospherical points [D. Sheehy]
 - qh_errexit: Do not call qh_printsummary or qh_printstats on qh_ERRinput
 - Change error QH6227 (all degenerate) from qh_ERRinput to qh_ERRprec
 - Change error QH6159 (ID overflow) from qh_ERRinput to qh_ERRqhull
 - eg/q_eg, q_egtest, q_test: Run if qconvex is in $PATH [M. Atzeri]

Build changes [M. Atzeri]
 - Install to share/doc/qhull instead of share/doc/packages/qhull
 - On Unix systems, install to share/man/man1 instead of man/man1
 - CMakeLists: Remove the installation of user_eg* and testqset
 - CMakeLists: Remove VERSION from qhull executables and libraries
 - CMakeLists: Define qhull_SOVERSION instead of qhull_MAJOR
 - CMakeLists: Set SOVERSION for shared libraries
 - Rename libraries to qhull, qhull_d, qhull_p, and qhull_pd
   libqhull6_p.vcproj is now libqhull_p.vcproj
   mingw builds as libqhull.dll
   cygwin builds as cygqhull-6.dll
   linux builds as libqhull.so.6.3.1 with symbolic link as libqhull.so
 - Developers using qhull 2011:
   libqhull6.so is now libqhull_p.so.  Do not use libqhull.so.
   qhull6.dll is now qhull_p.dll.  Do not use qhull.dll.
 - Merged road/ into libqhullcpp/ and qhulltest/
   Moved RoadLogEvent.* and RoadError.* to libqhullcpp
   Moved RoadTest.* to qhulltest (requires Qt)
   Installed RoadTest.h in libqhullcpp

Doc changes
 - index.htm: Mathworks uses qhull for n-d
 - qhull.htm: Fix qhull for qconvex
 - qdelaun.htm/qvoronoi.htm: Use option 'Qz' for circular/cospherical inputs
 - make help: Display targets
 - Makefile: Better messaging

------------
Qhull 2012.1  2012/02/02 6.3.0.1483

Bug fixes
 - Fixed qset.c for -fno-strict-aliasing. This gcc option is no longer needed
   (disallow two pointers of differing types to the same memory location)
 - Fixed error in qh_setappend_set if first set full and second set empty
 - qh_setdelnth, qh_setdelnth_sorted: fixed wording of error message
 - qh_setcheck: error message listed size and max backwards.
 - qh_setequal: Allow NULL set as documented
 - qh_setindex: Allow NULL set as documented
 - qh_settemppush: report error if NULL

Code changes
 - Add testqset: low level test of qset.c with mem.c
 - qh_setendpointer: Implements QSet::endPointer()
 - Assigned unique error code for qh_gethash

Build changes
 - Added qhull.dll(.so) for Octave and other Debian builds
   The global data structure qh_qh is statically defined (no qh_QHpointer)
   Linked user_eg2 with qhull.dll (libqhull.so) instead of qhullstatic
   Added qh_dllimport to libqhull.h for qhull.dll with MSVC
   Changed qhull-app-shared.pri to use libqhull (without qh_QHpointer)
 - Renamed libqhull6.so to libqhull6_p.so
   Renamed qhull6.dll to qhull6_p.dll
   The _p libraries (e.g., libqhull6_p.so) require -Dqh_QHpointer
   Renamed qhull6.vcproj to libqhull6_p.vcproj
   Added libqhullp/libqhullp.pro for shared library (libqhull6_p.so)
   Added qhull-app-sharedp.pri for shared libraries with qh_QHpointer
 - Install libqhull/*.htm files into include/libqhull
 - Removed libqhull/qhull.h-deprecated [J. Eaton]
 - Other changes to Makefile builds
   Added 'make qtestall' as a smoketest of each qhull program
   src/libqhull/Makefile: Use 'ar -rs ...' instead of ranlib
   src/libqhull/Makefile: Fixed targets for cleanall
 - Other changes to DevStudio builds
   Moved pdb files for qhull libraries to lib/
   AdditionalIncludeDirectories: Removed ../src/libqhullcpp
   Use build-cmake/ for the DevStudio CMake build
 - Other changes to Qt builds
   Renamed qhull-libsrc.pri to qhull-libqhull-src.pri
 - Added explicit d2u conversions to qhull-zip.sh
 - Fixed \n vs. \r\n issues for Windows source files

 Draft of Debian/AutoConf build (untested)
 - Adjusted the Makefile.am's for the new directory structure.
 - Added testqset to bin_PROGRAMS
 - config/bootstrap.sh copies program sources into src/libqhull
 - Kept qh_QHpointer=0 (static global data structure, qh_qh).  It is faster.
   Planning a new interface (qhull7?) which passes qh_qh as a parameter
 - Added config/changelog from the 2003.1 Debian build
 - Moved the debian/patches directory to config/
   Optional patches to change smoketest message and turn on qh_QHpointer
 - Deleted the debian directory.  It was the old Debian build from 2003.1
   Rafael Laboissiere's config directory replaced this build..
 - Deleted Make-conf.sh (also the old Debian build)

Doc changes
 - FAQ: Updated notes on computing volume of a Voronoi region
 - Added direct link to ACM Digital Library for downloading the qhull paper
 - Added link to Qhull in R
 - qset.c: Updated notes about NULL sets
 - qh_setappend: clarify qh_setappend for NULL newelem
 - qh_setdellast: Fix head note
 - Add build/README.txt
 - Add uninstall instructions to README.txt and CMakeLists.txt
 - Added instructions to create build/*.vcproj to CMakeLists.txt
 - Update copyright to 2012
 - Updated page links.  Added Google books, patents, and blogs.

-----------
Qhull 2009.1.3 2011/12/06
  configure: Add  -fno-strict-aliasing if $GCC,  Required for gcc 4.1+

------------
Qhull 2011.2  2011/11/29 6.2.1.1446

Bug fixes
 - qh_new_qhull: Call qh_prepare_output if !outfile [A. Aldoma]
   No effect on qhull users since qh_prepare_output is always called.
 - Replace Qhull-go.pif with Qhull-go.lnk for Windows 7 64-bit [lots]
 - Error if qh_newhashtable, qh_setnew, or qh_memalloc overflows [X. Cheng]
   For example, 'rbox 64 D32' overflows hash table for qh_matchnewfacets
   Qhull uses 32-bit ints for identifiers, counts, and sizes. See "WARN64"
 - q_eg, q_test: change tail +3 to tail -n +3 [N. Dubray, M. Atzeri]
 - Qhull-go.bat: Changed 'cmd' to '%comspec%'

Build changes
 - Added src/libqhull/Makefile for simple gcc build of executables and lib
 - qhulltest.vcproj: Replaced full path to QT with $QTDIR (e.g., c:/qt/4.7.4)
 - Split userprintf_rbox.c from userprintf.c,
   Otherwise qhull brings in rboxlib and rbox brings in libqhull
 - Makefile: qhullx target must be after LIBQHULLS_OBJS
 - Makefile: Explicitly list rbox dependencies for qhullx target
 - MBorland: Fixed tabs
 - Placed $LIBQHULLS_OBJS in same order.  Frequently called ones together.
 - Update file lists for Make-config.sh [O. Lahaye]
 - CMakeLists: add README.txt,etc. to DOC_INSTALL_DIR [M. Atzeri]
 - Restored qhull.h-deprecated.
   qhull.h conflicts with Qhull.h on Windows systems [C. Abela]
 - make-config.sh: Add warning that it is out-of-date
 - Remove extra space in '#! /bin/sh' in q_eg, etc. [P. Cheeseman]

Source changes
 - libqhull.h: Added qh_True and qh_False for True/False [A. Mutzel]
   Did not remove or replace True/False since it is used everywhere
 - Moved error message from qh_argv_to_command to caller.  Avoids dependency.
 - user_eg3.c: Use '10 D2' as default rbox (e.g., 'user_eg3 rbox qhull d')
 - user.c, user_eg2.c: Add test of qh_qh as done in user_eg.c
 - q_test: Removed duplicate test of qhull C-0.02

Documentation
 - index.html: Added ACM Authorizer link to ACM Trans. Math. Software
 - Split Delaunay and Voronoi FAQs
 - FAQ: How to compute the volume of a Voronoi region [C, Brinch]
 - Add 'FS' to qconvex prompt (total area and volume)
 - Add clarification to 'Fv' about corner input sites [O. Can]
 - Qhull-go.bat: Removed out-of-date advice.  Added title.
 - qh-code.htm: Updated the discussion of multi-threading for C++ [I. Pirwani]

Qhull 2009.1.2 2011/11/21
 - Revert to LF line endings [P. Cheeseman]
 - Remove out-of-date material from qhull-go.bat
 - Replaced QHULL-GO with a lnk file

Qhull 2011.1  2011/05/23 6.2.0.1385 (exe/dll files unchanged)
 - delaunay.vcproj: Fixed qhullstatic_d.lib for debug and minrelsize builds
 - Did not redate the distribution

Qhull 2011.1  2011/05/18 6.2.0.1385 (exe/dll files unchanged)
 - Add 'm' library to shared and static targets on Unix [A. Bouchard]

Qhull 2011.1  2011/05/14 6.2.0.1383 (exe/dll files unchanged)
 - PointCoordinates.cpp: Add #include <iterator> [R. Richter, S. Pasko]
 - Remove deprecated libqhull/qhull.h
   Use libqhull/libqhull.h instead.  Avoids confusion with libqhullcpp/Qhull.h
 - Makefile: Add LIBDIR, INCDIR, and DESTDIR to install [L.H. de Mello]
     Separate MAN install from DOC install
     Create install directories
     Installs headers to include/libqhull, include/libqhullcpp, include/road
 - CMakeLists.txt: Add MAN_INSTALL_DIR for qhull.1 and rbox.1 man pages
     Add RoadTest.h to include/road for Qt users (road_HEADERS)
 - Renamed md5sum files to avoid two extensions
 - qh-get.htm: Add Readme links and 2009.1 note.
 - qh-optf.htm: Fix link
 - index.htm: Updated Google Scholar link
 - qhull-zip.sh: Improved error message.

------------
Qhull 2011.1  2011/04/17 6.2.0.1373

Changes to deliverables
 - qvoronoi: Deprecated 'Qt' and 'QJn'. Removed from documentation and prompts.
   These options produced duplicate Voronoi vertices for cospherical data.
 - Removed doskey from Qhull-go.bat.  It is incompatible with Windows 7
 - Added 'facets' argument to user_eg3.cpp
 - user_eg links with shared library
 - qhulltest.cpp: Add closing prompt.

Changes to build system
 - Reorganized source directories
 - Moved executables to bin directory
 - Add CMake build for all targets (CMakeFiles.txt) [M. Moll assisted]
 - Add gcc build for all targets (Makefile)
 - Fixed location of qhull.man and rbox.man [M. Moll]
 - Add DevStudio builds for all targets (build/*.vcproj)
 - Added shared library (lib/qhull6.dll)
   Added qh_QHpointer_dllimport to work around problems with MSVC
 - Added static libraries with and without qh_QHpointer (lib/qhullstatic.lib)
 - Added eg/make-vcproj.sh to create vcproj/sln files from cmake and qmake
 - Document location of qh_QHpointer
 - Use shadow build directory
 - Made -fno-strict-aliasing conditional on gcc version
 - Added src/qhull-app-cpp.pri, src/qhull-app-c.pri, etc. for common settings
 - Add .gitignore with ignored files and directories.
 -   Use .git/info/exclude for locally excluded files.
 - Fixed MBorland for new directory structure
 - cleanall (Makefile): Delete 'linked' programs due to libqhull_r and \ 
libqhull/Makefile

Changes to documentation
 - qvoronoi.htm: Remove quotes from qvoronoi example
 - qhull-cpp.xml: Add naming conventions
 - index.htm: Add Google Scholar references
 - qh-optf.htm: Add note about order of 'Fn' matching 'Fv' order [Q. Pan]
 - Add patch for old builds in qh-get.htm
 - Added C++ compiling instructions to README.txt
 - Add instructions for fixing the DOS window
 - Changed DOS window to command window
 - Fixed html links
 - qh-get.htm: Dropped the Spanish mirror site.  It was disabled.

Changes to C code
 - mem.h: Define ptr_intT as 'long long' for Microsoft Windows _win64 builds.
   On Linux and Mac, 'long' is 64-bits on a 64-bit host
 - Added qh_QHpointer_dllimport to work around MSVC problem
 - qconvex.c,etc.: Define prototype for _isatty
 - Define MSG_QHULL_ERROR in user.h
 - Move MSG_FIXUP to 11000 and updated FIXUP QH11...

Changes to test code
 - Add note to q_test than R1e-3 may error (qh-code.htm, Enhancements)
 - Add test for executables to q_eg, etc.
 - Fixed Qhull-go.bat.  QHULL-GO invokes it with command.com,

Changes to C++ interface
 - QhullFacet: Added isSimplicial, isTopOrient, isTriCoplanar, isUpperDelaunay
 - Added Qhull::defineVertexFacetNeighbors() for facetNeighbors of vertices.
   Automatically called for facet merging and Voronoi diagrams
   Do not print QhullVertex::facetNeighbors is !facetNeighborsDefined()
 - Assigned FIXUP identifiers
 - QhullError: Add copy constructor, assignment operator, and destructor
 - Add throw() specifiers to RoadError and QhullError
 - Renamed RoadError::defined() to RoadError::isDefined()
 - Add #error to Qhull.h if qh_QHpointer is not defined

Changes to C++ code
 - Fixed bug reported by renangms.  Vertex output throws error QH10034
   and defineVertexNeighbors() does not exist.
 - Define QHULL_USES_QT for qt-qhull.cpp [renangms]
 - Reviewed all copy constructors and copy assignments.  Updated comments.
   Defined Qhull copy constructor and copy assignment [G. Rivet-Sabourin]
   Disabled UsingQhullLib default constructor, copy construct, and copy assign
 - Merged changes from J. Obermayr in gitorious/jobermayrs-qhull:next
 -   Fix strncat limit in rboxlib.c and global.c
 -   Changes to CMakeLists.txt for openSUSE
 - Fixed additional uses of strncat
 - Fixed QhullFacet::PrintRidges to check hasNextRidge3d()
 - Removed gcc warnings for shadowing from code (src/qhull-warn.pri)
 - Removed semicolon after extern "C" {...}
 - Removed experimental QhullEvent/QhullLog
 - Use fabs() instead of abs() to avoid accidental conversions to int
 - Fixed type of vertex->neighbors in qh_printvoronoi [no effect on results]
 - Removed unnecessary if statement in qh_printvoronoi

------------
qhull 2010.1 2010/01/14
- Fixed quote for #include in qhull.h [U.Hergenhahn, K.Roland]
- Add qt-qhull.cpp with Qt conditional code
- Add libqhullp.proj
- Add libqhull5 to Readme, Announce, download
- Reviewed #pragma
- Reviewed FIXUP and assigned QH tags
- All projects compile with warnings enabled
- Replaced 'up' glyphs with &#187;
- Moved cpp questions to qh-code.htm#questions-cpp
- Moved suggestions to qh-code.htm#enhance
- Moved documentation requests to qh-code.htm#enhance
- Add md5sum file to distributions
- Switched to DevStudio builds to avoid dependent libraries, 10% slower
  Removed user_eg3.exe and qhullcpp.dll from Windows build
  Fix qhull.sln and project files for qh_QHpointer
- Add eg/qhull-zip.sh to build qhull distribution files

------------
qhull 2010.1 2010/01/10
- Test for NULL fp in qh_eachvoronoi [D. Szczerba]

qhull 2010.1 2010/01/09

Changes to build and distribution
- Use qh_QHpointer=0 for libqhull.a, qhull, rbox, etc.
  Use -Dqh_QHpointer for libqhullp.a, qhullcpp.dll, etc.
  qh_QHpointer [2010, gcc] 4% time 4% space, [2003, msvc] 8% time 2% space
- Add config/ and project/debian/ for Autoconf build [R. Laboissiere]
  from debian branch in git and http://savannah.nongnu.org/cvs/?group=qhull
- Add CMakeLists.txt [kwilliams]
- Fix tabs in Makefile.txt [mschamschula]
- Add -fno-strict-aliasing to Makefile for gcc 4.1, 4.2, and 4.3 qset segfault
- Remove user_eg.exe and user_eg2.exe from Windows distribution
- Order object files by frequency of execution for better locality.

Changes to source
- Remove ptr_intT from qh_matchvertices.  It was int since the beginning.
- user.h requires <time.h> for CLOCKS_PER_SEC
- Move ostream<<QhullFacetList from inline to compiled.
- Removed ConvexHull/ from git.  Not used.

------------
qhull 2009.1.1 2010/01/09
- Patch release of 2009.1.
  qh_gethash allowed a negative result, causing overwrite or segfault
  See git:qhull/project/patch/qhull-2003.1/poly.c-qh_gethash.patch
  Compared results of q_test, q_eg, q_egtest with patched poly.c, qhull-2003.1

------------
qhull 2010.1 2010/01/07
- Assign type to qh.old_qhstat and memT.tempstack [amorilia]
- Replace tabs with spaces.
- Fix qh_pointid in case ptr_intT is unsigned

qhull 2010.1 2010/01/06
- Fixed serious bug in qh_gethash [poly.c]
- Documentation and build system are incomplete (see above)
- First release of C++ interface [qh-code.htm]
- Development moved to http://gitorious.org/qhull
  git clone git@gitorious.org:qhull/qhull.git
- Did not fix conformant tesselations for 'Qt'.
  For details, see http://www.qhull.org/news#bugs of May 2007 and Dec 2006.
- Use g++ builds for Windows distribution (10% faster than msvc2005)
  Combined vcproj/ and qtproj/ into project/
  vcproj will be replaced by qmake generated files

------------
qhull 2010.0.3 2010/01/05
Fixed bugs
- 'QJn': Fix qh.STOPcone in qh_build_withrestart().  It was not cleared.
- qh_initqhull_outputflags [global.c]: warn about Qc only if QHULLfinished
    otherwise set if needed

qhull 2010.0.2 2010/01/04

Fixed bugs
- qh_gethash [poly.c]: fix sign conversion.
    Previously, the result may be negative, leading to a segfault.
    The bug is more likely with large address spaces
    Reviewed all uses of %(modulo) for remainder with negative arguments
- Reviewed output of q_test and compared to results from 2003.1

Breaking code changes
- Return type of qh_gethash changed from unsigned to int.  Matches 'size'
- addhash takes a signed hash
  qh_addhash( newelem, hashtable, hashsize, hash )

Code changes
- Test for qh_qh in qh_printf
- Makefile.txt corrected for libqhull build [amorilia]
- Renamed index to idx to avoid shadowing BSD strings.h [kwilliams]

qhull 2010.0.1  2010/01/03

New Features:
 - Added option 'Ta' to annotate output with message codes

Preliminary C++ support:
 - C++ declarations may change without warning
 - Preliminary documentation for Qhull's C++ interface [qh-code.htm#cpp, \ 
qhull-cpp.xml]
 - Added user_eg3 as an example of Qhull.cpp
 - Removed qhull_interface.cpp.  Use Qhull.cpp instead.
   If math.h breaks '#include qhull_a.h', preceed it with '#include math.h'

Changes to qhull options and results
 - Allow 'd' and 'v' as the filename for 'TO ..' and 'TI ...' in qdelaunay [M. \ 
Jambon]
 - 'rbox tN' requires an integer (previously allowed floats)
 - Allow quoted filenames for 'TO ...' and 'TI ...'
 - Prefix error messages and warnings with a message code (e.g., QH6012)
 - Fixed rbox ignoring flags that were not separated by spaces
 - Report all hidden options before exiting in qh_checkflags()
 - Defined qh_OPTIONline [user.h] as max length of option line ('FO')
 - Report error if negative arguments to rbox 'G', 'L', 'Z'
 - Unknown rbox flag changed from a warning to an error
 - Set error status 4 qh_ERRmem if rbox runs out of memory
 - Removed extra spaces at end of line

Breaking Code Changes:
 - Renamed qh.coplanarset to coplanarfacetset.  Avoids conflict with \ 
facetT.coplanarset
 - qh_restore_qhull() zeroes out qh.old_qhstat and qh.old_tempstack.  Ownership \ 
moved.
 - Rewrote save_qhull/restore_qhull
 - Add Ztotcheck to zzdef_ [R. Gardener]
 - Changed qh_malloc to size_t (was unsigned long)
 - Declare qh_PRINT instead of int [kwilliams]
 - In qh_printafacet(), changed error output to 'qh ferr'

Bug fixes to C code:
 - 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
   See bug report http://gcc.gnu.org/ml/gcc-bugs/2007-09/msg00474.html
 - Rewrite qh_setappend to avoid g++ 4.1, 4.2, and 4.3 strict_aliasing error.
     Orion Poplawski (orion@cora.nwra.com)
     \ 
http://www.rpmfind.net/linux/RPM/fedora/12/ppc/qhull-devel-2003.1-13.fc12.ppc64.html
 - Fixed qh_findfacet_all(), "REALmin" should be "-REALmax" \ 
[L.A. Taylor].
     Effects library users for convex hulls and halfspace intersections.
 - qh_printfacet [io.c] Removed extra space for neighboring facets
 - Report error if d points, Delaunay, and not Qz
 - Fixed double-free of facet->centrum for triangulated facets
 - Fixed mindist initialization if !testcentrum in io.c findbest_test [Ratcliff]
 - Fixed parentheses around warning for missing 'Qc' [qh_initqhull_outputflags]
 - Fixed rbox buffer overflow of 'command' when appending seedbuf
 - Fixed option string for 'rbox t t999'.  Although seed was correctly set to 999,
   a random seed was appended to the rbox comment (e.g., 'rbox t t999 t32343')
 - Fixed upper bound of sanity check for qh_RANDOMmax in qh_initqhull_globals()

Changes to C code
 - Reordered #include from specific to general.  Move up .h for module.
 - Removed qh.old_stat -- never used
 - Removed qh_clearcenters from qh_freeqhull.  Duplicated by qh_delfacet
 - qh_printcenter [io.c] removed unreachable fprintf argument
 - qh_getarea() [geom2.c] ignored on multiple calls (qh.hasAreaVolume)
 - qh_getarea() [geom2.c] checks facet->isarea. Set by QhullFacet.facetArea()
 - qh_triangulate() [poly2.c] ignored on multiple calls (qh.hasTriangulation)
 - Add statistics for vertex_visit and visit_id to buildtracing
 - Defined scale and offset parameters for qh_randomfactor

Bug fixes and changes to mem.c/mem.h
 - Fixed qhmem.totshort (total short memory in use)
 - Memory tracing (T5) redone for sort order by object
 - Added full tracing for short memory allocations.
 - Added qhmem.totfree (total short memory on freelists)
     Increases size of qh_memalloc_ and qh_memfree_
 - Added qhmem.totdropped (leftover freesize at end of each short buffer)
 - Added qhmem.totunused (short size - request size)
 - Added qhmem.totbuffer (total short memory buffer w/o links)
 - Added memory statistics to qh_NOmem;
 - Added qh_memtotal to track allocated memory
 - Renamed qh_memfree parameter to 'insize' for consistency with qh_memalloc
 - Removed qhmem.curlong.  qa_memfreeshort computes curlong from cntlong and cntfree
 - In mem.h, changed ptr_intT to long.  qh_meminit() checks that it holds a 'void*'

Fixed g++ and devstudio warnings
 - Except for bit field conversions, compiles cleanly with
   -Wall -Wextra -Wshadow -Wcast-qual -Wwrite-strings -Wno-sign-conversion \ 
-Wconversion
 - Fixed warnings at VC8, level 4
 - Fix data types to remove conversion warnings [kwilliams]
 - Use size_t for calls to malloc,etc [kwilliams]
   Retained int sizes for qset.h and mem.h.  Follows Qt convention
   and is easier to work with.  int can be 64-bits if 2 billion facets
 - Change literal strings to const char* [kwilliams]
 - Added type casts to SETfirst and SETsecond [amorilia+alphax]
 - getid_() returns an int [kwilliams]
 - Add missing const annotations [kwilliams]
 - Fixed 64-bit warnings (marked with "WARN64")
 - Convert sizeof to (int) for int parameters
 - In libqhull.c, added explicit casts from long to float,  Avoids warning
 - In global.c, cast time() to int for QRandom-seed.  Avoids warning

Changes to C code for C++ support
 - Add sln, vcproj, and qtpro files for building Qhull -- add to README notes
 - Added dim to vertexT for cpp interface. Reduced size of qh.vertex_visit
 - qh_produce_output [io.c] may be called multiple times (C++ interface)
 - Moved SETsizeaddr_() to qset.h for use by QhullSet.cpp
 - Option 'Tz' sets flag qh.USEstdout for QhullPoints.cpp
 - Added support for multiple output runs from QhullPoints.outputQhull
 -   qh_clear_outputflags() resets the output flags
 -   qh_initqhull_outputflags split from qh_initqhull_globals
 - Added qh.run_id, a random identifier for this instance of Qhull (QhullPoints)
 -   For qh.run_id, initqhull_start initializes qh_RANDOMseed to time instead of 1
 - Extracted qh_argv_to_command (random.c) from qh_init_qhull_command and fixed \ 
a buffer overflow
 - Moved qh_strtod/qh_strtol from global.c to random.c for use in rboxlib.c
 - Split out random functions into random.c
 - Added message codes to qh_fprintf().  See its definition in user.c
 - Replaced exit, malloc, free, fprintf, and fputs with qh_malloc,...[J.W. Ratcliff]
 - Added qh_fprintf, qh_malloc, qh_free, ph_printhelp_narrowhull to user.c
 - Moved qh_printhelp_degenerate and qh_printhelp_singular from io.c to user.c
 - Clear qh.ERREXITcalled at end of qh_errexit().

Documentation:
 - Fixed out-of-date CiteSeer references
 - Renamed html/qh-in.htm to html/qh-code.htm
 - Add reference to 'Qt' to 'i'
 - Add reference to 'FS' to 'FA'
 - qh-impre.htm discusses precision issues for halfspace intersection
 - Add cross references between options 'FA' and 'FS'
 - Added link to Wolfram Research's MathWorld site
 - Updated Fukuda's links
 - Changed copyright to C.B. Barber for C++, documentation, and merge.c
 - Updated Qhull citation with page numbers.
 - Proposed project: constructing Voronoi diagram
 - Proposed project: computing Voronoi volumes
 - Replaced tabs with spaces in qhull.txt and rbox.txt

------------
qhull 2009.1  2009/6/11

This is a maintenance release done by Rafael Laboissiere <rafael@debian.org>.
 - src/rbox.c (main): Avoid problems of evaluation order when
   pre-incrementing arguments of strtod
 - src/io.c (qh_produce_output), src/stat.c (qh_initstatistics): Use %lu
   instead of %d in the format string for arguments of type size_t
 - html/qhull.man, html/rbox.man: Fix several syntax, macros, and hyphen
   problems in man pages
 - The Autotools files have been generated with modern version of autoconf (2.63),
   automake/aclocal (1.10.2), and libtool (2.2.6)
 - Some character issues in the man pages are fixed

Files:
RevisionActionfile
1.5modifypkgsrc/math/qhull/Makefile
1.3modifypkgsrc/math/qhull/PLIST
1.3modifypkgsrc/math/qhull/buildlink3.mk
1.4modifypkgsrc/math/qhull/distinfo
1.1removepkgsrc/math/qhull/patches/patch-aa