Skip to main content
Log in

Simple floating-point filters for the two-dimensional orientation problem

  • Published:
BIT Numerical Mathematics Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

Notes

  1. 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.

  2. 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.

  3. 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.

  4. Here “valid” means that condition (3.29) evaluated according to IEEE 754 rules yields the result “true”.

  5. 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

  1. Brönnimann, H., Burnikel, C., Pion, S.: Interval arithmetic yields efficient dynamic filters for computational geometry. Discret. Appl. Math. 109, 25–47 (2001)

    Article  MathSciNet  MATH  Google Scholar 

  2. Burnikel, C., Funke, S., Seel, M.: Exact geometric computation using cascading. Int. J. Comput. Geom. Appl. 11(3), 245–266 (2001)

    Article  MathSciNet  MATH  Google Scholar 

  3. Computational Geometry Algorithms Library. http://www.cgal.org/

  4. Higham, N.J.: Accuracy and Stability of Numerical Algorithms, 2nd edn. SIAM Publications, Philadelphia (2002)

    Book  MATH  Google Scholar 

  5. IEEE Standard for Floating-Point Arithmetic, Std 754–2008, 2008

  6. Kettner, L., Mehlhorn, K., Pion, S., Schirra, S., Yap, C.: Classroom examples of robustness problems in geometric computations. Comput. Geom. 40, 61–78 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  7. Melquiond, G., Pion, S.: Formally certified floating-point filters for homogenous geometric predicates. Theor. Inf. Appl. 41, 57–69 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  8. 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)

  9. 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)

  10. Pion, S., Fabri, A.: A Generic Lazy Evaluation Scheme for Exact Geometric Computations. Sci. Comput. Program. 76(4), 307–323 (2011)

    Article  Google Scholar 

  11. Rump, S.M.: Error estimation of floating-point summation and dot product. BIT Numer. Math. 52(1), 201–220 (2012)

    Article  MathSciNet  MATH  Google Scholar 

  12. 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)

    Article  MathSciNet  MATH  Google Scholar 

  13. Shewchuk, J.R.: Adaptive precision floating-point arithmetic and fast robust geometric predicates. Discret. Comput. Geom. 18, 305–363 (1997)

    Article  MathSciNet  MATH  Google Scholar 

  14. Shewchuk, J.R.: C code for the 2D and 3D orientation and incircle tests. http://www.cs.cmu.edu/~quake/robust.html

Download references

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

Authors

Corresponding author

Correspondence to Katsuhisa Ozaki.

Additional information

Communicated by Lars Eldén.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10543-015-0574-9

Keywords

Mathematics Subject Classification

Navigation