Source: https://www.ift.ulaval.ca/~agamache/pageperso/LivreBD/ExerSup/ExerDF.pdf