Source: https://ljk.imag.fr/membres/Bernard.Ycart/mel/cs/cs.pdf