Source: https://www.coriolis.polytechnique.fr/Confs/Lameloise_conf.pdf