Source: https://www.metis.upmc.fr/~ducharne/documents/lheureux.pdf