Numerical recipes: the art of scientific computing - Press, William H; Teukolsky, Saul Arno; Vetterling, William T; Flannery, Brian P (Cambridge University Press, 2007)