Source: https://www.math.univ-toulouse.fr/~fboyer/_media/enseignements/m1af/poly_af_m1.pdf