Source: http://www.chups.jussieu.fr/polysPSM/anatfonctPSM2/poly/anatfonctPSM2.pdf