Source: http://perso.ecp.fr/~laurent/Modef/Documents/M06_2ec.pdf