http://www.cse.unr.edu/~bebis/CS479/

numerical recipes: http://numerical.recipes/oldverswitcher.html