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