Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates

Exact computer arithmetic has a variety of uses, including the robust implementation of geometric algorithms. This article has three purposes. The first is to offer fast software-level algorithms for exact addition and multiplication of arbitrary precision floating-point values. The second is to propose a technique for adaptive precision arithmetic that can often speed these algorithms when they are used to perform multiprecision calculations that do not always require exact arithmetic, but must satisfy some error bound. The third is to use these techniques to develop implementations of several common geometric calculations whose required degree of accuracy depends on their inputs. These robust geometric predicates are adaptive; their running time depends on the degree of uncertainty of the result, and is usually small.

[1]  Douglas M. Priest On properties of floating point arithmetics: numerical stability and the cost of accurate computations , 1992 .

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

[3]  John F. Canny,et al.  Some algebraic and geometric computations in PSPACE , 1988, STOC '88.

[4]  Jonathan Richard Shewchuk,et al.  Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator , 1996, WACG.

[5]  N. Mnev The universality theorems on the classification problem of configuration varieties and convex polytopes varieties , 1988 .

[6]  Christopher J. Van Wyk,et al.  Efficient exact arithmetic for computational geometry , 1993, SCG '93.

[7]  James Hardy Wilkinson,et al.  Rounding errors in algebraic processes , 1964, IFIP Congress.

[8]  S. Linnainmaa Analysis of some known methods of improving the accuracy of floating-point sums , 1974 .

[9]  Steven Fortune,et al.  Numerical stability of algorithms for 2D Delaunay triangulations , 1992, SCG '92.

[10]  Kenneth L. Clarkson,et al.  Safe and effective determinant evaluation , 1992, Proceedings., 33rd Annual Symposium on Foundations of Computer Science.

[11]  Lee R. Nackman,et al.  Efficient Delaunay triangulation using rational arithmetic , 1991, TOGS.

[12]  Donald E. Knuth,et al.  The art of computer programming. Vol.2: Seminumerical algorithms , 1981 .

[13]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[14]  C. Barber Computational geometry with imprecise data and arithmetic , 1992 .

[15]  Christopher J. Van Wyk,et al.  Static analysis yields efficient exact integer arithmetic for computational geometry , 1996, TOGS.

[16]  Victor J. Milenkovic,et al.  Double precision geometry: a general technique for calculating line and segment intersections using rounded arithmetic , 1989, 30th Annual Symposium on Foundations of Computer Science.

[17]  Xiaomei Yang Rounding Errors in Algebraic Processes , 1964, Nature.

[18]  Pat H. Sterbenz,et al.  Floating-point computation , 1973 .

[19]  D. F. Watson Computing the n-Dimensional Delaunay Tesselation with Application to Voronoi Polytopes , 1981, Comput. J..

[20]  Kurt Mehlhorn,et al.  Exact geometric computation in LEDA , 1995, SCG '95.

[21]  Steven Fortune,et al.  Numerical stability of algorithms for 2-d Delaunay triangulations , 1995, Int. J. Comput. Geom. Appl..

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

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

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

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

[26]  T. J. Dekker,et al.  A floating-point technique for extending the available precision , 1971 .

[27]  Douglas M. Priest,et al.  Algorithms for arbitrary precision floating point arithmetic , 1991, [1991] Proceedings 10th IEEE Symposium on Computer Arithmetic.