Source: http://www.cril.univ-artois.fr/~letombe/AlgorithmiqueI.pdf