Source: http://www.fil.univ-lille1.fr/~aubert/p3d/Cours01.pdf