Source: https://team.inria.fr/lemon/files/2022/03/EGC_HSL_CoursDelenne.pdf