Source: https://www.math.univ-paris13.fr/~tournier/fichiers/lpro/tdm3_det_diago.pdf