Source: http://www.kevinpolisano.com/Formation/Ensimag2A/TP/ti_sujet_tp2.pdf