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