See http://wws.princeton.edu/~mcnamara/articles.htm