implement
Diagonalization.1