Skip to content
Tags give the ability to mark specific points in history as being important
  • 2002.1
    qhull 2002.1  2002/8/20 v4.0.0
    
  • 2003.1
    Qhull 2003.1  2003/12/30 v4.1.0
    
  • 2009.1
    Qhull 2009.1 2009/06/14 v5.0.0.0
    
  • 2009.1.1
    Qhull 2009.1.1 2010/01/09 v5.0.0.1
    
  • 2010.1
    Qhull 2010.1 2010/01/14 v6.1.0
    
  • 2011.1
    Qhull 2011.1 2011/05/23 v6.2.0.1385
    
  • 2011.2
    be4df757 · Clean up for qhull 2011.2 ·
    Qhull 2011.2 2011/11/29 v6.2.1
    
  • 2012.1
    Qhull 2012.1 2012/02/18 v6.3.1.1494
    
  • 2015.1
    Qhull 2015.1 2016/01/03 v7.1.0
    
  • 2015.2
    Qhull 2015.2 2016/01/18 v7.2.0
    
  • 2019.1
    b94cff07 · Ignore Cmake files ·
    Qhull 2019.1 2019/06/21 (7.3.2) released
    
    Qhull 2019.1 contains bug fixes and improvements to logging, error reporting, and merging.
    - Fixed fifty bugs, including initialization bugs and memory corruption bugs
      in qh_readpoints and qh_option. See Bugs and Changes.txt.
    
    - New option 'TAn' stops Qhull after adding n points.
    - New option 'Tf' flushes qh_fprintf. Use 'Tf' when debugging segfaults.
    - New options '--help', '-?', and '--' display a short help message.
      Under Git for Windows or MSYS2, 'qhull' waits for stdin.
    
    - Option 'TP-1' turns on tracing after qh_buildhull and qh_postmerge complete.
      It traces qh_check_maxout, qh_prepare_output, qh_triangulate, and qh_voronoi_center
    - Options 'TI' and 'TO' do not require a space before the filename.
    
    - An unknown Qhull option is an error. It was a warning. Override with option 'Qw'.
    - Short or long input to Qhull is an error. It was a warning. Override with option 'Qa'.
    
    - Documentation encourages the use of joggled input. Joggled input is less precise than facet merging, but it cannot incur merge errors for degenerate input.
    - Documentation refers to 'dupridge' instead of 'duplicate ridge'. A dupridge is an erroneous ridge between four or more facets.
    - Fixed documentation for qh_findbestfacet.
      Delaunay triangulations may return an adjacent triangle [F. Drielsma].
    
    - CMake: export QhullTargets for config.cmake.in and find_package [tamasmeszaros]
    - The C++ interface includes new methods, hasNext() and hasPrevious(), for QhullFacet and QhullVertex.
    - Test scripts qtest.sh and q_benchmark help with logging and optimizing Qhull,
      particularly for intermittent errors and bad cases for Qhull.
    
    Fixed bugs in Qhull 2015.2 (see Changes.txt for the full list)
    - qh_buildcone_onlygood ('Qg') corrupted memory if it called qh_delfacet.
    - qh_check_maxout did not include qh.DISTround when checking f.maxoutside
    - qh_distround did not acount for 'Rn' (random roundoff) in option 'QJn'
    - qh_findbestfacet should document that it may return an adjacent triangle for Delaunay triangulations [F. Drielsma]
    - qh_findfacet_all should not search visible facets or f.upperdelaunay facets [P. Virtanen, S. Dominguez, J.Arkin]
    - qh_findgood may report a bad facet for qh.GOODvertex ('QVn'). Restrict the search to good facets.
    - qh_freebuild deleted unattached ridges, leading to a double delete
    - qh_initial_hull tested 'maybe flipped' instead of 'clearly flipped'. As a result facets could be incorrectly oriented, leading immediately to 'Only 4 facets remain' [S. Caron, P. Virtanen, D. Sterratt, others]
    - qh_initstatistics was missing initialization. As a result, the final qh_checkoutput may be skipped.
    - qh_initstatistics cannot use qh_fprintf to report errors. Use qh_fprintf_stderr
    - qh_maxsimplex did not detect nearly flat simplices except for the last vertex. It assumed the max coordinate was approximately 1. As a result, Qhull reported false narrow hulls or false low dimensional inputs. [J.R. Roussel, D. Sterratt]
    - qh_option could overflow the qh.qhull_options buffer
    - qh_partitionpoint could leave an outside point before qh.next_facet, leading to a skipped point.
    - qh_stddev was incorrect. It should be sqrt of absolute value.
    
    - 'Qbb' scaled the last coordinate to qh.MAXwidth causing loss of precision. It should be qh.MAXabs_coord.
    - 'rbox' and 'user_eg3' returned non-zero exit status for their help prompt. Should be 0.
    - 'rbox Cn,r,m' does not produce points for 'rbox r'
    - An error in qh_initqhull_start2 could loop forever. Need to set qh.NOerrexit
    - Do not call qh_check_points ('Tv') if reporting an error and qh.FORCEoutput ('Po')
    - If 'd' or 'v' was used with 'H', memory corruption occurred. Should be disallowed.
    - Improved searching of coplanar facets by qh_findbesthorizon.
    - Options 'Pdk' and 'Pdk' always returned the closest facet. This should only occur with option 'Pg'.
    - PointCoordinates::appendPoints should not require whitespace after a point
    - Setting qh.MINoutside could lead to verification ('Tv') failures. Fixed by setting qh.KEEPnearinside and calling qh_partitionpoint in qh_partitionall
    
  • 2020.1
    Qhull 2020.1 2020/05/29 (8.0.0)
    
    Bugs fixed
    - QhullLinkedList::const_iterator: Fixed operator->() for T*.  It returned &i [J. Mirabel 5/1/2020 #61]
    
    API changes
    - RoadError.cpp: stringGlobalLog returns std::string instead of const char* [M. Gehre #46]
    - io_r.c/qh_order_vertexneighbors: order facet neighbors of a vertex by 2-d (orientation), 3-d (adjacency), n-d (f.visitid,id) [I. Gardner]
    - poly2_r.c/qh_nextfacet2d: Return next facet and vertex in qh_ORIENTclock order [N. Katzakis #54]
    
    C++ interface
    - Qhull.cpp: Add isDelaunay().  True if computing Delaunay or Voronoi regions
      Add prepareVoronoi() for Voronoi output.  See user_eg3_r.cpp for examples
      ~Qhull: Change 'Qhull output at end' to 'Qhull messages at ~Qhull()'
    - QhullFacet.cpp: Add visitId() for f.visitid.  Needed for Voronoi output
      Add nextFacet2d(): Iterate 2-d facets and vertices in counter-clockwise order [N. Katzakis #54]
      Add setFacetT()
    - QhullRidge.cpp: Add setRidgeT() and qh()
    - QhullUser.cpp: Add a user-modifiable interface to Qhull using a custom qh_fprintf
      Enhanced qh_fprintf with qhull-2019.1 updates to userprintf_r
         Option 'Ta' prefixes output with message code, [QHnnnn]
         Option 'Tf' flushes the output after each message, for tracing segfaults
         Errors and high-level trace messages prefixed with QHnnnn
         Debugging traps for qh.tracefacet, qh.traceridge, qh.tracevertex
    - QhullVertex.cpp: Add setVertexT()
    - QhullQh.cpp: moved qh_fprintf to QhullUser
    - RoadLogEvent::toString: do not prepend QHnnnn if format_string starts with QHn or [QHn
    - RboxPoints::appendPoints: use current dimension instead of throwing an error
    - user_eg3 rbox: set dimension for multiple options (e.g., user_eg3 rbox D4 5 qhull)
    - user_eg3 eg-convex: a 3-d convex hull using the C++ interface to Qhull [I. Voutchkov]
    - user_eg3 eg-delaunay: a 2-d Delaunay triangulation using the C++ interface to Qhull
    - user_eg3 eg-voronoi: a 2-d Voronoi diagram using the C++ interface to Qhull
    - user_eg3 eg-fifo: hyperplanes separating Voronoi regions via QhullUser and qh_fprintf
    
    Documentation
    - index.htm: Add Teillaud's http://www.computational-geometry.org/
    - index.htm: Add When to use Qhull and Performance of Qhull to the Qhull Manual
    - html/qconvex.htm: Add orientation for options 'i', 'Fx', and 'o'
      qconvex .: keep the option prompt to five columns
    - html/qdelaun.htm: qh_findbestfacet may return an adjacent facet for a point
    - html/qhalf.htm,qh-optf.htm,qh-opto.htm: Added notes for options to halfspaces, e.g., 'Fp' and -10.101 [E. Huang #53]
    - html/qhalf.htm,qhalf.c,qhalf_r.c,qh-optf.htm: Fix documentation for 'qhalf FN'.  The output includes all halfspaces.
    - html/qvoronoi.htm,qvoron_f.htm: Fix link for control option, 'TI file'
    - html/qvoronoi.htm,qvoron_f.htm, qh-optf: the hyperplanes for 'Fi' and 'Fo' include the first vertex
      Option 'Fo' uses the midpoint in place of the vertex at infinity.
    - html/qh-optf.htm: Voronoi options 'Fi' and 'Fo' orient the hyperplane so that the site is below the hyperplane
    - html/qh-optf.htm,qh-optt.htm: Voronoi option 'Fo' does not check the hyperplane with 'Tv'
      The hyperplane check for 'Fi Tv' uses the midpoint, which 'Fo' already used in place of infinity
    - README.txt/Windows install: install Git for Windows in C:\Git\ instead of Program Files
      README.txt/Unix install: add options for 32-bit builds w/o -fpic
      README.txt,Makefile: link libqhullcpp before libqhull_r
    - COPYING.txt: Add a note to COPYING.txt about C.B. Barber [M. Pryczek]
    - libqhull/DEPRECATED.txt: Add link to qh-code.htm#convert
    - Qhull::vertexList: ordered by qh.vertex_list, not by adjacency [N. Katzakis #54]
    - QhullPoints.cpp/extraCoordinatesCount: must be less than point_dimension (-Wconversion)
    - QhullPoints.cpp/indexOf: extra must be less than point_dimension (-Wconversion)
    - io_r.c/qh_detvnorm: add note that qh_sethyperplane_gauss returns nearzero for axis-parallel hyperplanes
    - user_r.h/qh_CPUclock: may be converted to approximate double (-Wconversion)
    - Update copyright to 2020
    
    Build
    - Increase SOVERSION to 8.0 due to ABI breakage in 2019.1 [T. Roehling #58]
      Change SOVERSION to major.minor due to Qhull's global data structure qhT [T. Roehling #58]
      Add symbolic link from SONAME_EXT to libqhull_r [T. Roehling #58]
      Add SO and SONAME_EXT to 'make help'
    - qhull.pc.in: Added for pkg-config support [T. Roehling #60]
    - CMakeLists.txt: Add pkg-config support and change *_INSTALL_DIR to relative paths [T. Roehling #60]
      Change CMAKE_SOURCE_DIR to CMAKE_CURRENT_SOURCE_DIR to allow qhull as a subdirectory [Morwenn #53, A. De #59, A. Maloney, futex]
    - Makefile:
      Add pkg-support [T. Roehling #63]
      Renamed $DESTDIR as $PREFIX to conform with GNU Makefile standards [T. Roehling #63]
      $DESTDIR is for staged installs as defined by GNU Makefile standards [T. Roehling #63]
      Commented out M32=-m32 despite memory savings. It caused build failures, e.g., Mac [J. Hollowed]
      '-fpic' is required for linking to shared libraries [T. Roehling #63]
      Replaced -fpic with FPIC=-fpic for gcc builds
      Added FPIC to CXX_OPTS1 (same as CMakeLists.txt for libqhullcpp)
      Use 'FPIC=' to disable -fpic (may be faster for 32-bit builds on 64-bit hosts)
      Extract qhull_VERSION and qhull_SOVERSION from CMakeLists.txt [T. Roehling #63]
      Move the -lm linker flag to the end of the linker command [T. Roehling #63]
      Add QhullVertexSet.h to LIBQHULLCPP_HDRS
      Invoke q_test via bash to avoid "eg not a valid command"
    - Add build/*vcxproj to Unix distribution
    
    Testing and other changes
    - q_test: Add list of executables via 'which'
      Add tests of user_eg3 with each option and use case
      Add "Testing done" notification
      Add "set +v" for echoes
    - qhull-zip.sh: Add early check for 32-bit release build and modified files
      Add link checks for options
      Add findf for identifying files for link checks
      Add prompts for web.archive and md5sum in qh-get.htm
    
  • v3.0
    qhull 3.0 2001/02/11
    
  • v3.0.0
    qhull 3.0 2001/02/11
    
  • v3.1.0
    qhull 3.1 2001/10/04
    
  • v4.0.0
    qhull 2002.1  2002/8/20
    
  • v4.1.0
    Qhull 2003.1  2003/12/30 v4.1.0
    
  • v5.0.0.0
    Qhull 2009.1 2009/06/14 v5.0.0.0
    
  • v5.0.0.1
    Qhull 2009.1.1 2010/01/09 v5.0.0.1
    
  • v6.1.0
    Qhull 2010.1 2010/01/14 v6.1.0