Source: https://hal.inria.fr/inria-00538500/file/Morin10b.pdf