Source: https://www.lrde.epita.fr/dload/papers/mpool03.pdf