Source: https://publications.polymtl.ca/998/1/2012_RolaHarmouche.pdf