Algorithm by Sebastian Zöllner1 and Jonathan K. Pritchard
January 2004
Code by Sebastian Zöllner, Xiaoquan Wen and Jonathan K. Pritchard