Source: https://mathinfo.unistra.fr/websites/math-info/irem/Publications/L_Ouvert/n105/o_105_19-28.pdf