Simulation of simplicity: a technique to cope with degenerate cases in   geometric algorithms
  This paper describes a general-purpose programming technique, called the Simulation of Simplicity, which can be used to cope with degenerate input data for geometric algorithms. It relieves the programmer from the task to provide a consistent treatment for every single special case that can occur. The programs that use the technique tend to be considerably smaller and more robust than those that do not use it. We believe that this technique will become a standard tool in writing geometric software. 
Herbert Edelsbrunner, Ernst M\"ucke