Source: http://scheid.perso.math.cnrs.fr/Enseignement/coursGRO_PL.pdf