Source: https://inria.hal.science/hal-01504912/file/978-3-642-40477-1_38_Chapter.pdf