Source: http://www.cmap.polytechnique.fr/~cappe/2006-2007/cours7-9_2pp.pdf