NASA NTRS · 20200002745
Provably Correct Floating-Point Implementation of a Point-In-Polygon Algorithm
Abstract
The problem of determining whether or not a point lies inside a given polygon occurs in many applications. In air traffic management concepts, a correct solution to the point-in-polygon problem is critical to geofencing systems for Unmanned Aerial Vehicles and in weather avoidance applications. Many mathematical methods can be used to solve the point-in-polygon problem. Unfortunately, a straightforward floating- point implementation of these methods can lead to incorrect results due to round-off errors. In particular, these errors may cause the control flow of the program to diverge with respect to the ideal real-number algorithm. This divergence potentially results in an incorrect point-in- polygon determination even when the point is far from the edges of the polygon. This paper presents a provably correct implementation of a point-in-polygon method that is based on the computation of the winding number. This implementation is mechanically generated from a source- to-source transformation of the ideal real-number specification of the algorithm. The correctness of this implementation is formally verified within the Frama-C analyzer, where the proof obligations are discharged using the Prototype Verification System (PVS).
Keep this discovery
Explore connections, maps & timelines
Moscato, Mariano M., Titolo, Laura, Feliu, Marco A., Munoz, Cesar A.. 2019-10-07. Provably Correct Floating-Point Implementation of a Point-In-Polygon Algorithm. https://ntrs.nasa.gov/citations/20200002745
Cite the original work for its findings. Save a collection to share your selection of sources.