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
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:
I can't guarantee things haven't changed since then.
The doc page of the qz
function had a similar table of LAPACK rountines:
For reference, you could also look at how other scientific frameworks implement this function:
Octave: Has the equivalent qz
function. Here is the source code: http://hg.octave.org/octave/file/tip/libinterp/corefcn/qz.cc
SciPy: Also implements the generalized Schur decomposition. You can see it also ends up calling DGGES from LAPACK.
Julia: Here is a reference to Julia's implementation of Schur decomposition: https://github.com/JuliaLang/julia/blob/master/base/linalg/factorization.jl#L697, https://github.com/JuliaLang/julia/blob/master/base/linalg/lapack.jl#L3358
R: Here is an equivalent R package for generalized eigenvalue problem. You can inspect the source code: http://cran.r-project.org/web/packages/geigen/index.html