Source: https://lmbp.uca.fr/~billerey/Miscellaneous/PolyTCMaths.pdf