Source: https://hal.inria.fr/file/index/docid/887165/filename/hal-00887165.pdf