Source: https://www.cspino.recherche.usherbrooke.ca/Theses/Labelle-T1-2014.pdf