Source: http://www.math.u-bordeaux.fr/~labessie/cours_alg_bilin_2019_chapA.pdf