Source: https://hal.inria.fr/file/index/docid/463417/filename/cr2009-v2.pdf