Source: https://perso.isima.fr/~jokoko/doc/tConvOpt.pdf