Source: http://dept-info.labri.fr/~baudon/Master/ENSM/Seance%201/N1MA0011_Poly_Algorithmique_2012-2013.pdf