Source: http://webia.lip6.fr/~auzende/enseignements/fascicule-2010.pdf