Source: https://hal.inria.fr/hal-01261068/file/dea.pdf