Source: https://math.unice.fr/~ah/ens/cours/alg10/pivot.pdf