Provided by: liblapack-doc_3.12.0-3build1_all bug

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

   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

   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

   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

Author

       Generated automatically by Doxygen for LAPACK from the source code.