Source: http://www.cmap.polytechnique.fr/~touzi/Poly-MAP552.pdf