What's new in Qhull 2010.1
Jan 25, 2010
- 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 »
- 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
- 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 costs: [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 for CLOCKS_PER_SEC
- Move ostream
New in Qhull 2010.0.3 (Jan 25, 2010)
- Fixed bugs:
- 'QJn' (joggle): 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.
New in Qhull 2010.0.2 (Jan 25, 2010)
- 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]
New in Qhull 2010.0.1 (Jan 25, 2010)
- 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
- 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 ([email protected])
- 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
New in Qhull 2009.1 (Jan 25, 2010)
- 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
New in Qhull 2003.1 (Feb 22, 2007)
- Add Maple output ('FM') for 2-d and 3-d convex hulls [T. Abraham]
- Fixed qh_findbest() for upperdelaunay facets w/o better, lower neighbors for library users and some qhull users [A. Cutti, E. Milloti, K. Sun]
- Preserved qhmem.ferr in qh_memfreeshort() for library users
- Removed 'static' from qh_compare... for io.h and merge.h [V. Brumberg]
- Add warning to findDelaunay() and qh_in.htm about tricoplanar facets
- Noted Edelsbrunner's Geometry & Topology for Mesh Generation [qh-impre.htm]
- Noted Gartner's Miniball algorithm [qh_impre.htm]
- Noted Veron and Leon's shape preserving simplification [qh_impre.htm]