Source: https://www.alloschool.com/assets/documents/course-231/cours-reduction-des-endomorphismes-et-des-matrices-carrees.pdf