Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

a generalized eigenvalue problem question

Dear all,

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?

0 Kudos
1 Reply
Honored Contributor III
The transformations that are to be applied to the eigenvectors are listed in the NAG documentation for F08SEF (DSYGST). In particular, see the table in section 3 of the document.

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.
0 Kudos