Source: http://hebergement.u-psud.fr/m2apim/cours/cours%20APIM-2/cours2-2010.pdf