Source: https://helios2.mi.parisdescartes.fr/~rlachiez/enseignement/NumLog/cours_NumLog.pdf