Source: https://www-fourier.univ-grenoble-alpes.fr/~dpiau/pub/SuppCours2010.pdf