Source: https://hal.inria.fr/hal-02386534/file/481034_1_En_14_Chapter.pdf