The problem

Near-collinear points: cross product very small. Float error can flip sign. Downstream: infinite loops, wrong hull, crashes.

Advertisement

Shewchuk's adaptive predicates

Start with fast float. If result close to zero, switch to exact (multi-precision) computation. Fast common case, correct worst case.

Advertisement

Symbolic perturbation

Add tiny (symbolic) offsets to break degeneracies. SoS (Simulation of Simplicity). Handles collinear input.

Libraries

CGAL: exact predicates + kernels. LEDA: multi-precision throughout. Standard for production geometry.