Source: http://www.ac-grenoble.fr/maths/PM/Ressources/602/TP1_Heron_solution.pdf