Source: https://www.ljll.math.upmc.fr/hecht/ftp/old/InfoSci08/doc-pdf/NotesdeCoursMM031.pdf