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