Source: https://www-fourier.ujf-grenoble.fr/~rossigno/Enseignement/ens_files/tp_10_11_M2IM.pdf