laqz2 - Man Page

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.

Info

Tue Nov 28 2023 12:08:43 Version 3.12.0 LAPACK