Source: https://pages.isir.upmc.fr/~achard/GdR/p2.pdf