New code for smallest enclosing balls

Bernd Gaertner gaertner at inf.ethz.ch
Fri Apr 16 16:25:32 PDT 1999


  A new C++ code for computing the smallest enclosing ball
of points in d-dimensional Euclidean space is now available
from my web page, at

	http://www.inf.ethz.ch/personal/gaertner/miniball.html

  Some of you might know that I maintain and distribute (upon
request) code for this problem already for quite some time (to
be precise, for eight years), but only now has it reached a level
of robustness that allows me to release it officially. 

  The main new features of the code are the following:

	- very fast in low dimensions due to improved primitive
	  operations and template programming; the dimension is
	  fixed at compile-time, allowing the compiler to unroll
	  time-critical loops. 

	- improved performance in higher dimensions. While the
	  previously best method -- Emo Welzl's move-to-front
	  heuristic -- quits in dimension 20, my code can solve
	  large problems up to dimension 30. In dimension 20,
	  it's by a factor of 40 faster.

	- increased numerical stability. All computations are
	  done in standard floating-point arithmetic, but most
	  input degeneracies previously found to be critical 
	  (cospherical points, multiple points, points close 
	  together) are now routinely handled. 

	- compact, readable and understandable code. The code
	  itself is small (about 300 lines, excluding prototypes
	  and test suite) and comes with full documentation 
	  following the literate programming paradigm. This
	  means, the code is part of the documentation and not
	  the other way round. 

	- Support of major platforms. I have tested Microsoft 
	  Visual C++, GNU and EGCS as well as MIPS (SGI), but
	  it should be easy to adapt to other recent platforms. 
	  In the future, the code will become part of CGAL, the
	  European Computational Geometry Algorithms Library.

   If you are interested, simply download the code from the above
address - it's free for non-commercial use. I would be glad about
any feedback that helps me to further improve the code.

   Best regards,
		Bernd Gaertner. 
 
	

	

-------------
The compgeom mailing lists: see
http://netlib.bell-labs.com/netlib/compgeom/readme.html
or send mail to compgeom-request at research.bell-labs.com with the line:
send readme
Now archived at http://uiuc.edu/~sariel/CG/compgeom/threads.html.



More information about the Compgeom-announce mailing list