Source: https://homepages.laas.fr/arzelier/polycop/insa/td2_sigal.pdf