I'm working on helping my friend create code to perform the Overlap Dirac Operator and have come across one part that I'm not sure what to do.
I need to compute the Eigenvalues and corresponding Eigenvectors for a hermitian matrix (my test is for n=4) so that I can implement a matrix sign function $epsilon(M) = U * epsilon(A) * U^*$ where $U$ is an eigenvector matrix, $U^*$ is the complex transpose of $U$, and $epsilon(A)$ is a matrix with the signs of eigenvalues of $M$ on it's diagonal.
Any resources or help on existing algorithms/libraries to solve this (or at least make close approximations) would be appreciated. My target programming language is Scala.