Search code examples
c++matlablinear-algebralapackeigenvalue

Which algorithm do DGGEV or DSYGV Eigen solvers in LAPACK implement? Is it 'QZ' algorithm which MATLAB uses?


Which algorithm do DGGEV or DSYGV Eigen solvers in LAPACK implement? Is it 'QZ' algorithm which MATLAB uses?

http://www.netlib.org/lapack/explore-html/d9/d52/dggev_8f_source.html

http://www.netlib.org/lapack/explore-html/d5/d2e/dsygv_8f.html

Does anybody know where can I find implementation of QZ algorithm (generalized Schur decomposition) to calculate Eigen values & vectors in C++?


EDIT:

I implemented some of LAPACK routines and mentioned some observations in this link:

https://scicomp.stackexchange.com/questions/16220/eigenvectors-matlab-vs-lapack-dggev-or-dggevx


Solution

  • MATLAB used to have a list of LAPACK rountine used by eig function in its documentation, but decided to remove it for some reason.

    Here is a screenshot of the table from the archived docs of R2009a:

    eig_algorithms

    I can't guarantee things haven't changed since then.


    EDIT:

    The doc page of the qz function had a similar table of LAPACK rountines:

    qz_algorithm


    For reference, you could also look at how other scientific frameworks implement this function: