Source: https://people.irisa.fr/Bernard.Cousin/Cours/G4.pdf