Source: http://ftp.lip6.fr/lip6/reports/2002/lip6.2002.014.pdf