Source: https://publications.polymtl.ca/2731/1/2017_KevinLemieux.pdf