Source: http://www.lps.ens.fr/~krzakala/matlab.pdf