Source: https://www.lix.polytechnique.fr/~liberti/dgp-siam.pdf