Source: https://www.ljll.math.upmc.fr/~cerf/Techniques_Optimisation_2018.pdf