Computational geometry 2026-11-05
Computational geometry designs and analyzes algorithms for geometric objects represented by coordinates or combinatorial structure. Problems include finding a convex hull, intersecting segments and locating points in a subdivision. The representation and numerical predicates are part of correctness, not merely implementation details.
For points in the plane, the orientation predicate uses the sign ofA positive sign places to the left of the directed line from to ; zero means collinearity. The points give a positive determinant. Near-collinear inputs can make round-off error reverse the sign and corrupt an algorithm's combinatorial decisions. Shewchuk's adaptive predicates increase arithmetic precision only as needed to certify the correct sign.[ref]
Orientation predicate 2026-11-05
An orientation predicate determines on which side of an oriented geometric object a point lies. For planar points , compute the determinantIn coordinates with rightward and upward, means a counterclockwise turn from through to , a clockwise turn, and collinearity. Its magnitude is twice the area of the triangle.
For and , gives , while gives . Convex hull and segment-intersection algorithms use these signs to make discrete decisions. A tiny round-off error can reverse a nearly zero sign and make those decisions inconsistent. Jonathan Richard Shewchuk's adaptive arithmetic computes extra precision only when needed to certify the sign for the supplied coordinates.[ref]
Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates by Jonathan Richard Shewchuk. orientation tests, determinant signs and adaptive exact arithmetic