Source: https://homepages.laas.fr/francois/SVF/seminaires/inputs/04/aymeric.pdf