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.