From: Bo Kågström
Date: Sun, 28 Oct 2012 19:07:07 +0100
The 2x2 blocks should only appear in real arithmetic (S/D) and then
they correspond to complex conjugate pairs of eigenvalues for
real matrix pairs (A, B). The complex generalized Schur form (C/Z) should
be upper triangular and you can read of the eigenvalues from the pairs
(s_ii, t_ii) where s_ii and t-ii are diagonal entries (complex numbers) of
the generalized Schur form S - sT (= Q^T (A-sB) Z ).
What type of code are you developing and for what architecture(s)?
How big are the problems you are trying to solve?
I am working on GGEV code. But I found ZGGEV failed to converge in one
sample. I found it is similar to what has been reported in this
mailing-list. Do we have any update for this problem?
With more debug print output, I think ZHGEQZ failed to converge
because it can't get eigenvalue for the 2x2 block. There is a
difference between DHGEQZ and ZHGEQZ. DHGEQZ has special code to
handle the 2x2 block but ZHGEQZ doesn't. Is there any special
consideration about this in C/ZHGEQZ? As what I found in debug output,
the implicit sweep doesn't change the 2x2 block (H is 2x2 and T is 2x2
upper triangular) even with exceptional shift. So it failed to converge.
Lapack mailing list