laqz2(3)

NAME
laqz2 - laqz2: step in ggev3, gges3

SYNOPSIS

  Functions
recursive subroutine claqz2 (ilschur, ilq, ilz, n, ilo, ihi, nw, a, lda, b, ldb, q, ldq, z, ldz, ns, nd, alpha, beta, qc, ldqc, zc, ldzc, work, lwork, rwork, rec, info)
CLAQZ2
subroutine dlaqz2 (ilq, ilz, k, istartm, istopm, ihi, a, lda, b, ldb, nq, qstart, q, ldq, nz, zstart, z, ldz)
DLAQZ2
subroutine slaqz2 (ilq, ilz, k, istartm, istopm, ihi, a, lda, b, ldb, nq, qstart, q, ldq, nz, zstart, z, ldz)
SLAQZ2
recursive subroutine zlaqz2 (ilschur, ilq, ilz, n, ilo, ihi, nw, a, lda, b, ldb, q, ldq, z, ldz, ns, nd, alpha, beta, qc, ldqc, zc, ldzc, work, lwork, rwork, rec, info)
ZLAQZ2

Detailed Description

Function Documentation

  recursive subroutine claqz2 (logical, intent(in) ilschur, logical, intent(in) ilq, logical, intent(in) ilz, integer, intent(in) n, integer, intent(in) ilo, integer, intent(in) ihi, integer, intent(in) nw, complex, dimension( lda, * ), intent(inout) a, integer, intent(in) lda, complex, dimension( ldb, * ), intent(inout) b, integer, intent(in) ldb, complex, dimension( ldq, * ), intent(inout) q, integer, intent(in) ldq, complex, dimension( ldz, * ), intent(inout) z, integer, intent(in) ldz, integer, intent(out) ns, integer, intent(out) nd, complex, dimension( * ), intent(inout) alpha, complex, dimension( * ), intent(inout) beta, complex, dimension( ldqc, * ) qc, integer, intent(in) ldqc, complex, dimension( ldzc, * ) zc, integer, intent(in) ldzc, complex, dimension( * ) work, integer, intent(in) lwork, real, dimension( * ) rwork, integer, intent(in) rec, integer, intent(out) info)

CLAQZ2

Purpose:

     CLAQZ2 performs AED

Parameters
    ILSCHUR

              ILSCHUR is LOGICAL
                  Determines whether or not to update the full Schur form

    ILQ

              ILQ is LOGICAL
                  Determines whether or not to update the matrix Q

    ILZ

              ILZ is LOGICAL
                  Determines whether or not to update the matrix Z

    N

              N is INTEGER
              The order of the matrices A, B, Q, and Z.  N >= 0.

    ILO

              ILO is INTEGER

    IHI

              IHI is INTEGER
              ILO and IHI mark the rows and columns of (A,B) which
              are to be normalized

    NW

              NW is INTEGER
              The desired size of the deflation window.

    A

              A is COMPLEX array, dimension (LDA, N)

    LDA

              LDA is INTEGER
              The leading dimension of the array A.  LDA >= max( 1, N ).

    B

              B is COMPLEX array, dimension (LDB, N)

    LDB

              LDB is INTEGER
              The leading dimension of the array B.  LDB >= max( 1, N ).

    Q

              Q is COMPLEX array, dimension (LDQ, N)

    LDQ

              LDQ is INTEGER

    Z

              Z is COMPLEX array, dimension (LDZ, N)

    LDZ

              LDZ is INTEGER

    NS

              NS is INTEGER
              The number of unconverged eigenvalues available to
              use as shifts.

    ND

              ND is INTEGER
              The number of converged eigenvalues found.

    ALPHA

              ALPHA is COMPLEX array, dimension (N)
              Each scalar alpha defining an eigenvalue
              of GNEP.

    BETA

              BETA is COMPLEX array, dimension (N)
              The scalars beta that define the eigenvalues of GNEP.
              Together, the quantities alpha = ALPHA(j) and
              beta = BETA(j) represent the j-th eigenvalue of the matrix
              pair (A,B), in one of the forms lambda = alpha/beta or
              mu = beta/alpha.  Since either lambda or mu may overflow,
              they should not, in general, be computed.

    QC

              QC is COMPLEX array, dimension (LDQC, NW)

    LDQC

              LDQC is INTEGER

    ZC

              ZC is COMPLEX array, dimension (LDZC, NW)

    LDZC

              LDZ is INTEGER

    WORK

              WORK is COMPLEX array, dimension (MAX(1,LWORK))
              On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.

    LWORK

              LWORK is INTEGER
              The dimension of the array WORK.  LWORK >= max(1,N).
              If LWORK = -1, then a workspace query is assumed; the routine
              only calculates the optimal size of the WORK array, returns
              this value as the first entry of the WORK array, and no error
              message related to LWORK is issued by XERBLA.

    RWORK

              RWORK is REAL array, dimension (N)

    REC

              REC is INTEGER
                 REC indicates the current recursion level. Should be set
                 to 0 on first call.

    INFO

              INFO is INTEGER
              = 0: successful exit
              < 0: if INFO = -i, the i-th argument had an illegal value

Author
    Thijs Steel, KU Leuven, KU Leuven

Date
    May 2020

Definition at line 231 of file claqz2.f.

  subroutine dlaqz2 (logical, intent(in) ilq, logical, intent(in) ilz, integer, intent(in) k, integer, intent(in) istartm, integer, intent(in) istopm, integer, intent(in) ihi, double precision, dimension( lda, * ) a, integer, intent(in) lda, double precision, dimension( ldb, * ) b, integer, intent(in) ldb, integer, intent(in) nq, integer, intent(in) qstart, double precision, dimension( ldq, * ) q, integer, intent(in) ldq, integer, intent(in) nz, integer, intent(in) zstart, double precision, dimension( ldz, * ) z, integer, intent(in) ldz)

DLAQZ2

Purpose:

          DLAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position

Parameters
    ILQ

              ILQ is LOGICAL
                  Determines whether or not to update the matrix Q

    ILZ

              ILZ is LOGICAL
                  Determines whether or not to update the matrix Z

    K

              K is INTEGER
                  Index indicating the position of the bulge.
                  On entry, the bulge is located in
                  (A(k+1:k+2,k:k+1),B(k+1:k+2,k:k+1)).
                  On exit, the bulge is located in
                  (A(k+2:k+3,k+1:k+2),B(k+2:k+3,k+1:k+2)).

    ISTARTM

              ISTARTM is INTEGER

    ISTOPM

              ISTOPM is INTEGER
                  Updates to (A,B) are restricted to
                  (istartm:k+3,k:istopm). It is assumed
                  without checking that istartm <= k+1 and
                  k+2 <= istopm

    IHI

              IHI is INTEGER

    A

              A is DOUBLE PRECISION array, dimension (LDA,N)

    LDA

              LDA is INTEGER
                  The leading dimension of A as declared in
                  the calling procedure.

    B

              B is DOUBLE PRECISION array, dimension (LDB,N)

    LDB

              LDB is INTEGER
                  The leading dimension of B as declared in
                  the calling procedure.

    NQ

              NQ is INTEGER
                  The order of the matrix Q

    QSTART

              QSTART is INTEGER
                  Start index of the matrix Q. Rotations are applied
                  To columns k+2-qStart:k+4-qStart of Q.

    Q

              Q is DOUBLE PRECISION array, dimension (LDQ,NQ)

    LDQ

              LDQ is INTEGER
                  The leading dimension of Q as declared in
                  the calling procedure.

    NZ

              NZ is INTEGER
                  The order of the matrix Z

    ZSTART

              ZSTART is INTEGER
                  Start index of the matrix Z. Rotations are applied
                  To columns k+1-qStart:k+3-qStart of Z.

    Z

              Z is DOUBLE PRECISION array, dimension (LDZ,NZ)

    LDZ

              LDZ is INTEGER
                  The leading dimension of Q as declared in
                  the calling procedure.

Author
    Thijs Steel, KU Leuven

Date
    May 2020

Definition at line 172 of file dlaqz2.f.

  subroutine slaqz2 (logical, intent(in) ilq, logical, intent(in) ilz, integer, intent(in) k, integer, intent(in) istartm, integer, intent(in) istopm, integer, intent(in) ihi, real, dimension( lda, * ) a, integer, intent(in) lda, real, dimension( ldb, * ) b, integer, intent(in) ldb, integer, intent(in) nq, integer, intent(in) qstart, real, dimension( ldq, * ) q, integer, intent(in) ldq, integer, intent(in) nz, integer, intent(in) zstart, real, dimension( ldz, * ) z, integer, intent(in) ldz)

SLAQZ2

Purpose:

          SLAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position

Parameters
    ILQ

              ILQ is LOGICAL
                  Determines whether or not to update the matrix Q

    ILZ

              ILZ is LOGICAL
                  Determines whether or not to update the matrix Z

    K

              K is INTEGER
                  Index indicating the position of the bulge.
                  On entry, the bulge is located in
                  (A(k+1:k+2,k:k+1),B(k+1:k+2,k:k+1)).
                  On exit, the bulge is located in
                  (A(k+2:k+3,k+1:k+2),B(k+2:k+3,k+1:k+2)).

    ISTARTM

              ISTARTM is INTEGER

    ISTOPM

              ISTOPM is INTEGER
                  Updates to (A,B) are restricted to
                  (istartm:k+3,k:istopm). It is assumed
                  without checking that istartm <= k+1 and
                  k+2 <= istopm

    IHI

              IHI is INTEGER

    A

              A is REAL array, dimension (LDA,N)

    LDA

              LDA is INTEGER
                  The leading dimension of A as declared in
                  the calling procedure.

    B

              B is REAL array, dimension (LDB,N)

    LDB

              LDB is INTEGER
                  The leading dimension of B as declared in
                  the calling procedure.

    NQ

              NQ is INTEGER
                  The order of the matrix Q

    QSTART

              QSTART is INTEGER
                  Start index of the matrix Q. Rotations are applied
                  To columns k+2-qStart:k+4-qStart of Q.

    Q

              Q is REAL array, dimension (LDQ,NQ)

    LDQ

              LDQ is INTEGER
                  The leading dimension of Q as declared in
                  the calling procedure.

    NZ

              NZ is INTEGER
                  The order of the matrix Z

    ZSTART

              ZSTART is INTEGER
                  Start index of the matrix Z. Rotations are applied
                  To columns k+1-qStart:k+3-qStart of Z.

    Z

              Z is REAL array, dimension (LDZ,NZ)

    LDZ

              LDZ is INTEGER
                  The leading dimension of Q as declared in
                  the calling procedure.

Author
    Thijs Steel, KU Leuven

Date
    May 2020

Definition at line 171 of file slaqz2.f.

  recursive subroutine zlaqz2 (logical, intent(in) ilschur, logical, intent(in) ilq, logical, intent(in) ilz, integer, intent(in) n, integer, intent(in) ilo, integer, intent(in) ihi, integer, intent(in) nw, complex*16, dimension( lda, * ), intent(inout) a, integer, intent(in) lda, complex*16, dimension( ldb, * ), intent(inout) b, integer, intent(in) ldb, complex*16, dimension( ldq, * ), intent(inout) q, integer, intent(in) ldq, complex*16, dimension( ldz, * ), intent(inout) z, integer, intent(in) ldz, integer, intent(out) ns, integer, intent(out) nd, complex*16, dimension( * ), intent(inout) alpha, complex*16, dimension( * ), intent(inout) beta, complex*16, dimension( ldqc, * ) qc, integer, intent(in) ldqc, complex*16, dimension( ldzc, * ) zc, integer, intent(in) ldzc, complex*16, dimension( * ) work, integer, intent(in) lwork, double precision, dimension( * ) rwork, integer, intent(in) rec, integer, intent(out) info)

ZLAQZ2

Purpose:

     ZLAQZ2 performs AED

Parameters
    ILSCHUR

              ILSCHUR is LOGICAL
                  Determines whether or not to update the full Schur form

    ILQ

              ILQ is LOGICAL
                  Determines whether or not to update the matrix Q

    ILZ

              ILZ is LOGICAL
                  Determines whether or not to update the matrix Z

    N

              N is INTEGER
              The order of the matrices A, B, Q, and Z.  N >= 0.

    ILO

              ILO is INTEGER

    IHI

              IHI is INTEGER
              ILO and IHI mark the rows and columns of (A,B) which
              are to be normalized

    NW

              NW is INTEGER
              The desired size of the deflation window.

    A

              A is COMPLEX*16 array, dimension (LDA, N)

    LDA

              LDA is INTEGER
              The leading dimension of the array A.  LDA >= max( 1, N ).

    B

              B is COMPLEX*16 array, dimension (LDB, N)

    LDB

              LDB is INTEGER
              The leading dimension of the array B.  LDB >= max( 1, N ).

    Q

              Q is COMPLEX*16 array, dimension (LDQ, N)

    LDQ

              LDQ is INTEGER

    Z

              Z is COMPLEX*16 array, dimension (LDZ, N)

    LDZ

              LDZ is INTEGER

    NS

              NS is INTEGER
              The number of unconverged eigenvalues available to
              use as shifts.

    ND

              ND is INTEGER
              The number of converged eigenvalues found.

    ALPHA

              ALPHA is COMPLEX*16 array, dimension (N)
              Each scalar alpha defining an eigenvalue
              of GNEP.

    BETA

              BETA is COMPLEX*16 array, dimension (N)
              The scalars beta that define the eigenvalues of GNEP.
              Together, the quantities alpha = ALPHA(j) and
              beta = BETA(j) represent the j-th eigenvalue of the matrix
              pair (A,B), in one of the forms lambda = alpha/beta or
              mu = beta/alpha.  Since either lambda or mu may overflow,
              they should not, in general, be computed.

    QC

              QC is COMPLEX*16 array, dimension (LDQC, NW)

    LDQC

              LDQC is INTEGER

    ZC

              ZC is COMPLEX*16 array, dimension (LDZC, NW)

    LDZC

              LDZ is INTEGER

    WORK

              WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
              On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.

    LWORK

              LWORK is INTEGER
              The dimension of the array WORK.  LWORK >= max(1,N).
              If LWORK = -1, then a workspace query is assumed; the routine
              only calculates the optimal size of the WORK array, returns
              this value as the first entry of the WORK array, and no error
              message related to LWORK is issued by XERBLA.

    RWORK

              RWORK is DOUBLE PRECISION array, dimension (N)

    REC

              REC is INTEGER
                 REC indicates the current recursion level. Should be set
                 to 0 on first call.

    INFO

              INFO is INTEGER
              = 0: successful exit
              < 0: if INFO = -i, the i-th argument had an illegal value

Author
    Thijs Steel, KU Leuven

Date
    May 2020

Definition at line 230 of file zlaqz2.f.

Author

Generated automatically by Doxygen for LAPACK from the source code.