Purpose
To compute the eigenvalues of a general 2-by-2 matrix product via a complex single shifted periodic QZ algorithm.Specification
SUBROUTINE MB03BB( BASE, LGBAS, ULP, K, AMAP, S, SINV, A, LDA1, $ LDA2, ALPHAR, ALPHAI, BETA, SCAL, DWORK, INFO ) C .. Scalar Arguments .. INTEGER INFO, K, LDA1, LDA2, SINV DOUBLE PRECISION BASE, LGBAS, ULP C .. Array Arguments .. DOUBLE PRECISION A(LDA1,LDA2,*), ALPHAI(2), ALPHAR(2), BETA(2), $ DWORK(*) INTEGER AMAP(*), S(*), SCAL(2)Arguments
Input/Output Parameters
BASE (input) DOUBLE PRECISION Machine base. LGBAS (input) DOUBLE PRECISION Logarithm of BASE. ULP (input) DOUBLE PRECISION Machine precision. K (input) INTEGER The number of factors. K >= 1. AMAP (input) INTEGER array, dimension (K) The map for accessing the factors, i.e., if AMAP(I) = J, then the factor A_I is stored at the J-th position in A. S (input) INTEGER array, dimension (K) The signature array. Each entry of S must be 1 or -1. SINV (input) INTEGER Signature multiplier. Entries of S are virtually multiplied by SINV. A (input) DOUBLE PRECISION array, dimension (LDA1,LDA2,K) On entry, the leading 2-by-2-by-K part of this array must contain a 2-by-2 product (implicitly represented by its K factors) in upper Hessenberg-triangular form. LDA1 INTEGER The first leading dimension of the array A. LDA1 >= 2. LDA2 INTEGER The second leading dimension of the array A. LDA2 >= 2. ALPHAR (output) DOUBLE PRECISION array, dimension (2) On exit, this array contains the scaled real part of the two eigenvalues. If BETA(I) <> 0, then the I-th eigenvalue (I = 1 : 2) is given by (ALPHAR(I) + ALPHAI(I)*SQRT(-1) ) * (BASE)**SCAL(I). ALPHAI (output) DOUBLE PRECISION array, dimension (2) On exit, this array contains the scaled imaginary part of the two eigenvalues. ALPHAI(1) >= 0. BETA (output) DOUBLE PRECISION array, dimension (2) On exit, this array contains information about infinite eigenvalues. If BETA(I) = 0, then the I-th eigenvalue is infinite. Otherwise, BETA(I) = 1.0. SCAL (output) INTEGER array, dimension (2) On exit, this array contains the scaling exponents for the two eigenvalues.Workspace
DWORK DOUBLE PRECISION array, dimension (8*K)Error Indicator
INFO INTEGER = 0: successful exit; = 1: the periodic QZ algorithm did not converge; = 2: the computed eigenvalues might be inaccurate. Both values might be taken as warnings, since approximations of eigenvalues are returned.Method
A complex single shifted periodic QZ iteration is applied.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None