Source: https://inria.hal.science/hal-01568398/file/978-3-642-22816-2_27_Chapter.pdf