Source: https://www.lpthe.jussieu.fr/~teber/Teaching/poly.pdf