I am writing a custom 3x3 Matrix Exponentiator in C for specific complex Hermitian matrices of the form $$ \left(\begin{matrix} q+z & x-iy & 0 \\ x+iy & 0 & x-iy \\ 0 & x+iy & q-z \\ \end{matrix}\right) $$
I am basing my algorithm off Kopp's hybrid algorithm (https://arxiv.org/pdf/physics/0610206.pdf, https://www.mpi-hd.mpg.de/personalhomes/globes/3x3/index.html). His algorithm works fine for my purposes but I am looking for additional speed ups. This uses the QL algorithm as a method for calculating eigenvectors when the analytical method fails.
The first step of the QL algorithm is to convert the matrix to real tridiagonal form.
The matrix is already in a complex tridiagonal form. Is there a simple analytical way to convert from a complex tridiagonal matrix to a real tridiagonal? Specifically what is the real tridiagonal matrix of this matrix?
The unitary transformation required was $$ \left(\begin{matrix} e^{i\phi} & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & e^{-i\phi} \\ \end{matrix}\right) $$
where $\phi=Arg(x+iy)$