Source: https://www.math.univ-toulouse.fr/~pneuvial/assets/pdf/elie02model.pdf