Efficient Delaunay triangulation using rational arithmetic

Many fundamental tests performed by geometric algorithms can be formulated in terms of finding the sign of a determinant. When these tests are implemented using fixed precision arithmetic such as floating point, they can produce incorrect answers; when they are implemented using arbitrary-precision arithmetic, they are expensive to compute. We present adaptive-precision algorithms for finding the signs of determinants of matrices with integer and rational elements. These algorithms were developed and tested by integrating them into the Guibas-Stolfi Delaunay triangulation algorithm. Through a combination of algorithm design and careful engineering of the implementation, the resulting program can triangulate a set of random rational points in the unit circle only four to five times slower than can a floating-point implementation of the algorithm. The algorithms, engineering process, and software tools developed are described.

[1]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[2]  David P. Dobkin,et al.  Recipes for geometry and numerical analysis - Part I: an empirical study , 1988, SCG '88.

[3]  Thomas Ottmann,et al.  Numerical stability of geometric algorithms , 1987, SCG '87.

[4]  Sudhir P. Mudur,et al.  Interval Methods for Processing Geometric Objects , 1984, IEEE Computer Graphics and Applications.

[5]  John E. Hopcroft,et al.  Towards implementing robust geometric computations , 1988, SCG '88.

[6]  Victor J. Milenkovic,et al.  Verifiable Implementations of Geometric Algorithms Using Finite Precision Arithmetic , 1989, Artif. Intell..

[7]  M. Iri,et al.  Construction of the Voronoi diagram for 'one million' generators in single-precision arithmetic , 1992, Proc. IEEE.

[8]  Bjarne Stroustrup Parametrized Types for C++ , 1989, Comput. Syst..

[9]  Carlo H. Séquin,et al.  Partitioning polyhedral objects into nonintersecting parts , 1988, IEEE Computer Graphics and Applications.

[10]  W. Kellaway,et al.  Linear Algebra and Matrix Theory , 1964 .

[11]  Christoph M. Hoffmann,et al.  The problems of accuracy and robustness in geometric computation , 1989, Computer.

[12]  Chee-Keng Yap,et al.  A geometric consistency theorem for a symbolic perturbation scheme , 1988, SCG '88.

[13]  Victor J. Milenkovic Calculating approximate curve arrangements using rounded arithmetic , 1989, SCG '89.

[14]  Rida T. Farouki Numerical Stability in Geometric Algorithms and Representations , 1988, IMA Conference on the Mathematics of Surfaces.

[15]  Leonidas J. Guibas,et al.  Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams , 1983, STOC.

[16]  M. Karasick On the representation and manipulation of rigid solids , 1989 .

[17]  Kokichi Sugihara,et al.  On Finite-Precision Representations of Geometric Objects , 1989, J. Comput. Syst. Sci..

[18]  Leonidas J. Guibas,et al.  Epsilon geometry: building robust algorithms from imprecise computations , 1989, SCG '89.

[19]  Jon Louis Bentley,et al.  Writing efficient programs , 1982 .

[20]  László Lovász,et al.  Algorithmic theory of numbers, graphs and convexity , 1986, CBMS-NSF regional conference series in applied mathematics.

[21]  Bjarne Stroustrup,et al.  Parameterized Types for C++ , 1989, C++ Conference.

[22]  Franco P. Preparata,et al.  Practical Cellular Dividers , 1990, IEEE Trans. Computers.

[23]  Herbert Edelsbrunner,et al.  Simulation of simplicity: a technique to cope with degenerate cases in geometric algorithms , 1988, SCG '88.

[24]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[25]  Leonidas J. Guibas,et al.  Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams , 1983, STOC.

[26]  F. Frances Yao,et al.  Finite-resolution computational geometry , 1986, 27th Annual Symposium on Foundations of Computer Science (sfcs 1986).

[27]  Steven Fortune,et al.  Stable maintenance of point set triangulations in two dimensions , 1989, 30th Annual Symposium on Foundations of Computer Science.

[28]  Baruch Schieber,et al.  Fast geometric approximation techniques and geometric embedding problems , 1989, SCG '89.