Source: https://webusers.imj-prg.fr/~frederic.han/M1E/pdf/resume06.pdf