Source: https://publications.polymtl.ca/1354/1/2014_MaximeHubert.pdf