Source: https://www.hds.utc.fr/~grandval/nips03.pdf