I am running a program that has to diagonalize large, complex Hermitian matrices (the largest they get is about 1000x1000). To diagonalize the matrix once isn't too bad, but I need to diagonalize thousands to millions of different Hermitian matrices each time I run a simulation. If I only need the eigenvalues of each matrix, is there an efficient method that does not require me to diagonalize each matrix to get said eigenvalues? I'm currently using a version of the QR algorithm to diagonalize the matrices but I was hoping there was a faster method. Is there a way to emulate the matrices with a series or polynomial of some sort? Any help is greatly appreciated (if anyone knows of any papers written on this topic that would be perfect). Thanks!