Source: https://savoirs.usherbrooke.ca/bitstream/handle/11143/9442/Couture_Guillaume_MSc_2016.pdf