Source: https://www.cs.ucdavis.edu/~olsson/pubs/2005/shi.pdf