Source: https://www.rocq.inria.fr/axis/modulad/numero-34/Goupy-34/goupy-34.pdf