To solve a generalized eigenvalue problem of the kind
AX = lambda BX
, say I use dpotrf -> dsygst -> dsyevd path, then the eigenvectors should be transformed back, right?
Because this is the definition when it is converted to a standart problem. And the vectors are not directly the vectors of the original generalized problem. However, I have difficulty in locating the transformation routine. Could you help me with this?
If you want to recover the original eigenvectors, you may need to declare extra arrays for saving copies of the transformation matrices and write extra statements to copy arrays to be saved, since Lapack routines often overwrite input matrices with result matrices.
I have not performed these manipulations myself, and the example included with MKL (dsygstx.f) does not compute eigenvectors. Therefore, I cannot tell you in detail what to do. What one needs to do is to sit down with pencil and paper, read the documentation, and make notes as to how to manage and carry out the work. The coding is then usually quite straightforward.