Source: https://www.lias-lab.fr/perso/fredericlaunay/Cours/RCA/Cours_Master.pdf