Abstract
This paper is concerned with floating-point filters for a two dimensional orientation problem which is a basic problem in the field of computational geometry. If this problem is only approximately solved by floating-point arithmetic, then an incorrect result may be obtained due to accumulation of rounding errors. A floating-point filter can quickly guarantee the correctness of the computed result if the problem is well-conditioned. In this paper, a simple semi-static floating-point filter which handles floating-point exceptions such as overflow and underflow by only one branch is developed. In addition, an improved fully-static filter is developed.
Similar content being viewed by others
Notes
There are further related crucial problems in computational geometry which require to determine signs of determinants of larger matrices than in (1.1). For example, the point-in-circle problem: “Decide whether a point in the plane lies inside or outside or on the boundary of a circle.” leads to a 4-by-4 matrix. Such problems are not considered in this paper even though we believe that our techniques can be adapted but calculations will certainly become much more involved.
We introduce the algorithm given in [7] The main purpose of the paper by Melquiond and Pion is to develop an automatic constructor of the floating-point filter. Therefore, their approach can be applied not only to the two dimensional orientation problem but also to other problems in computational geometry.
Since there are products of only two floating-point numbers in the evaluation of (1.1), overflow and underflow rarely occur. However, if we handle the InSphere problem which aims to judge whether a point is inside or outside a sphere in the three-dimensional space, then a product of five floating-point numbers appears in the evaluation. Therefore, it is not so rare that floating-point exceptions occur in this problem.
Here “valid” means that condition (3.29) evaluated according to IEEE 754 rules yields the result “true”.
If this is not true, a suitable scaling by multiplying a large number with a power of two for all floating-point coordinates should be applied.
References
Brönnimann, H., Burnikel, C., Pion, S.: Interval arithmetic yields efficient dynamic filters for computational geometry. Discret. Appl. Math. 109, 25–47 (2001)
Burnikel, C., Funke, S., Seel, M.: Exact geometric computation using cascading. Int. J. Comput. Geom. Appl. 11(3), 245–266 (2001)
Computational Geometry Algorithms Library. http://www.cgal.org/
Higham, N.J.: Accuracy and Stability of Numerical Algorithms, 2nd edn. SIAM Publications, Philadelphia (2002)
IEEE Standard for Floating-Point Arithmetic, Std 754–2008, 2008
Kettner, L., Mehlhorn, K., Pion, S., Schirra, S., Yap, C.: Classroom examples of robustness problems in geometric computations. Comput. Geom. 40, 61–78 (2008)
Melquiond, G., Pion, S.: Formally certified floating-point filters for homogenous geometric predicates. Theor. Inf. Appl. 41, 57–69 (2007)
Meyer, A., Pion, S.: FPG: A code generator for fast and certified geometric predicates. In: 8th Conference on Real Numbers and Computers (RNC), pp. 47–60, Santiago de Compostela, Spain (2008)
Pan, V.Y., Yu, Y.: Certified computation of the sign of a matrix determinant. In: Proceedings of the 10th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 715–724, ACM Press, New York, and SIAM Publications, Philadelphia (1999)
Pion, S., Fabri, A.: A Generic Lazy Evaluation Scheme for Exact Geometric Computations. Sci. Comput. Program. 76(4), 307–323 (2011)
Rump, S.M.: Error estimation of floating-point summation and dot product. BIT Numer. Math. 52(1), 201–220 (2012)
Rump, S.M., Zimmermann, P., Boldo, S., Melquiond, G.: Computing predecessor and successor in rounding to nearest. BIT Numer. Math. 49(2), 419–431 (2009)
Shewchuk, J.R.: Adaptive precision floating-point arithmetic and fast robust geometric predicates. Discret. Comput. Geom. 18, 305–363 (1997)
Shewchuk, J.R.: C code for the 2D and 3D orientation and incircle tests. http://www.cs.cmu.edu/~quake/robust.html
Acknowledgments
The authors wishes to thank the anonymous referee for constructive and valuable comments. This research was partially supported by the CREST program, Japan Science and Technology Agency (JST).
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Lars Eldén.
Rights and permissions
About this article
Cite this article
Ozaki, K., Bünger, F., Ogita, T. et al. Simple floating-point filters for the two-dimensional orientation problem. Bit Numer Math 56, 729–749 (2016). https://doi.org/10.1007/s10543-015-0574-9
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10543-015-0574-9