Source: https://www.ibisc.univ-evry.fr/~abchiche/SUPPORTS/M2_ROB/RAPC.pdf