Source: https://www.di.ens.fr/~fbach/opt_book.pdf