Source: https://www.irif.fr/~gc/papers/facs96.pdf