Source: http://cuen.fr/powerpoint/seminaire_juin2016/12-karras_gnmp cuen 2016.pdf