Source: https://hal.inria.fr/hal-01559693v3/document