I need to find the eigenvalues and eigenvectors of a rather large (typically ~ 1000x1000) NxN Hermitian matrix, where only the main diagonal, the first two nebendiagonals and the sqrt(N)'th diagonals are non-zero. So a total of 7 diagonals.
Are there efficient algorithms to do this or do I have to treat the matrix as a bandmatrix with bandwidth sqrt(n)? I am usually interested in the first N/2 eigenvalues and corresponding eigenvectors. I am currently coding in python, but any implementation would be helpful, really :)