Source: https://team.inria.fr/imagine/files/2014/10/Partie_1.pdf