Source: http://math.univ-bpclermont.fr/~fdumas/fichiers/GpAnn1cours.pdf