Added dense diagonalization (not recently tested)