Diagonalization of a matrix