See 'dtgsen.f' for all details.
DTGSEN reorders the generalized real Schur decomposition of a real
matrix pair (S,T) (in terms of an orthonormal equivalence transformation
Q**T * (S,T) * Z), so that a selected cluster of eigenvalues
appears in the leading diagonal blocks of the upper quasi-triangular
matrix S and the upper triangular T. The leading columns of Q and
Z form orthonormal bases of the corresponding left and right eigenspaces
(deflating subspaces). (S,T) must be in generalized real
Schur canonical form (as returned by DGGES), i.e. S is block upper
triangular with 1-by-1 and 2-by-2 diagonal blocks. T is upper
triangular.
Note for 'ijob':
=0: Only reorder w.r.t. SELECT. No extras.
=1: Reciprocal of norms of "projections" onto left and right
eigenspaces w.r.t. the selected cluster (PL and PR).
=2: Upper bounds on Difu and Difl. F-norm-based estimate (DIF(1:2)).
=3: Estimate of Difu and Difl. 1-norm-based estimate (DIF(1:2)).
About 5 times as expensive as ijob = 2.
=4: Compute PL, PR and DIF (i.e. 0, 1 and 2 above): Economic
version to get it all.
=5: Compute PL, PR and DIF (i.e. 0, 1 and 3 above).
In short, if (A,B) = Q * (S,T) * Z**T from qz.zgges
and input
(S,T,Q,Z) to qz.ztgsen
with appropriate select
option,
then it yields
(A,B) = Q_n * (S_n,T_n) * Z_n**T
where (S_n,T_n,Q_n,Z_n) is a new set of generalized Schur decomposition
of (A,B) according to the select
.