I wonder whether there is a routine in LAPACK to perform unitary transformation on a complex Hermitian matrix A so that Q**H * A * Q = T, where T is diagonal.
In other words, you want to perform the eigenvalue decomposition of A (A Hermitian) where T is the diagonal matrix with the eigenvalues of A along the diagonal and Q is a (unitary) basis of eigenvectors associated with. Yes, LAPACK can help you do this. You can use: ZHEEV, ZHEEVX, ZHEEVD or ZHEEVR for DOUBLE COMPLEX (CHEEV, CHEEVX, CHEEVD or CHEEVR for COMPLEX).
To know which one to use: (1) read the interface to see the functionality, (2) time all four on a small system and pick the one you want (in general ZHEEVR or ZHEEVD are the fast ones), (3) you can read
>> James W. Demmel, Osni A. Marques, Beresford N. Parlett, and Christof Vömel.
>> Performance and Accuracy of LAPACK's Symmetric Tridiagonal Eigensolvers.
>> SIAM Journal on Scientific Computing, volume 30, issue 3, pages 1508-1526, 2008.
>> Preliminary version: LAPACK Working Note 183:
http://www.netlib.org/lapack/lawnspdf/lawn183.pdfJulien.