Source: https://www.ipol.im/pub/art/2017/208/article.pdf