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, if INFO = 0, 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, if INFO = 0, this array contains the scaled
imaginary part of the two eigenvalues. ALPHAI(1) >= 0.
BETA (output) DOUBLE PRECISION array, dimension (2)
On exit, if INFO = 0, 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, if INFO = 0, 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.
Method
A complex single shifted periodic QZ iteration is applied.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None