I'm trying to find all the eigenvalues of a collection of matrices, ranging from 2x2 to some very large matrices of sizes 8000x8000, all of them being Hermitian and real. Initially I tried the geev function without block-diagonalization, but that proved to be extremely slow for the larger matrices. Then I block diagonalized the matrices (largest blocks now being 3000x3000) and switched to the syev function (upper triangular version and without eigenvectors, to be specific). This sped things up, but it's still inching along for the larger matrices (above sizes 2000x2000).
Of course, I could go on experimenting with other functions like the divide-and-conquer algorithm, Hessenberg reduction, shifted-QR, SVD, Schur decomposition etc. but I'm hoping that somebody can recommend which algorithms might be most beneficial for my particular case: that would save me a lot of time and effort. I finally have to go up to matrices of sizes 65000x65000 (largest blocks here being 12870x12870). I'm using the Boost bindings to the LAPACK library.
Any suggestions would be appreciated.