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.