Source: https://www.math.u-bordeaux.fr/~labessie/résumé_cours_alg_bilin_2017.pdf