Source: https://hal.inria.fr/file/index/docid/928192/filename/hal-00928192.pdf