zgegs(3)

NAME

ZGEGS - routine is deprecated and has been replaced by
routine ZGGES

SYNOPSIS

SUBROUTINE  ZGEGS(  JOBVSL, JOBVSR, N, A, LDA, B, LDB, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK, INFO )
    CHARACTER     JOBVSL, JOBVSR
    INTEGER       INFO, LDA, LDB, LDVSL, LDVSR, LWORK, N
    DOUBLE        PRECISION RWORK( * )
    COMPLEX*16    A( LDA, * ), ALPHA( * ), B(  LDB,  *  ),
BETA( * ), VSL( LDVSL, * ), VSR( LDVSR, * ), WORK( * )

PURPOSE

This routine is deprecated and has been replaced by rou
tine ZGGES. ZGEGS computes for a pair of N-by-N complex nonsym
metric matrices A, B: the generalized eigenvalues (alpha, beta),
the complex Schur form (A, B), and optionally left and/or right
Schur vectors (VSL and VSR).
(If only the generalized eigenvalues are needed, use the
driver ZGEGV instead.)
A generalized eigenvalue for a pair of matrices (A,B) is,
roughly speaking, a scalar w or a ratio alpha/beta = w, such
that A - w*B is singular. It is usually represented as the pair
(alpha,beta), as there is a reasonable interpretation for beta=0,
and even for both being zero. A good beginning reference is the
book, "Matrix Computations", by G. Golub & C. van Loan (Johns
Hopkins U. Press)
The (generalized) Schur form of a pair of matrices is the
result of multiplying both matrices on the left by one unitary
matrix and both on the right by another unitary matrix, these two
unitary matrices being chosen so as to bring the pair of matrices
into upper triangular form with the diagonal elements of B being
non-negative real numbers (this is also called complex Schur
form.)
The left and right Schur vectors are the columns of VSL
and VSR, respectively, where VSL and VSR are the unitary matrices
which reduce A and B to Schur form:
Schur form of (A,B) = ( (VSL)**H A (VSR), (VSL)**H B (VSR)
)

ARGUMENTS

JOBVSL (input) CHARACTER*1
= 'N': do not compute the left Schur vectors;
= 'V': compute the left Schur vectors.
JOBVSR (input) CHARACTER*1
= 'N': do not compute the right Schur vectors;
= 'V': compute the right Schur vectors.
N (input) INTEGER
The order of the matrices A, B, VSL, and VSR. N
>= 0.
A (input/output) COMPLEX*16 array, dimension (LDA,
N)
On entry, the first of the pair of matrices whose
generalized eigenvalues and (optionally) Schur vectors are to be
computed. On exit, the generalized Schur form of A.
LDA (input) INTEGER
The leading dimension of A. LDA >= max(1,N).
B (input/output) COMPLEX*16 array, dimension (LDB,
N)
On entry, the second of the pair of matrices whose
generalized eigenvalues and (optionally) Schur vectors are to be
computed. On exit, the generalized Schur form of B.
LDB (input) INTEGER
The leading dimension of B. LDB >= max(1,N).
ALPHA (output) COMPLEX*16 array, dimension (N)
BETA (output) COMPLEX*16 array, dimension (N)
On exit, ALPHA(j)/BETA(j), j=1,...,N, will be the generalized
eigenvalues. ALPHA(j), j=1,...,N and BETA(j), j=1,...,N are
the diagonals of the complex Schur form (A,B) output by ZGEGS.
The BETA(j) will be non-negative real.
Note: the quotients ALPHA(j)/BETA(j) may easily
over- or underflow, and BETA(j) may even be zero. Thus, the user
should avoid naively computing the ratio alpha/beta. However,
ALPHA will be always less than and usually comparable with
norm(A) in magnitude, and BETA always less than and usually com
parable with norm(B).
VSL (output) COMPLEX*16 array, dimension (LDVSL,N)
If JOBVSL = 'V', VSL will contain the left Schur
vectors. (See "Purpose", above.) Not referenced if JOBVSL =
'N'.
LDVSL (input) INTEGER
The leading dimension of the matrix VSL. LDVSL >=
1, and if JOBVSL = 'V', LDVSL >= N.
VSR (output) COMPLEX*16 array, dimension (LDVSR,N)
If JOBVSR = 'V', VSR will contain the right Schur
vectors. (See "Purpose", above.) Not referenced if JOBVSR =
'N'.
LDVSR (input) INTEGER
The leading dimension of the matrix VSR. LDVSR >=
1, and if JOBVSR = 'V', LDVSR >= N.
WORK (workspace/output) COMPLEX*16 array, dimension
(LWORK)
On exit, if INFO = 0, WORK(1) returns the optimal
LWORK.
LWORK (input) INTEGER
The dimension of the array WORK. LWORK >=
max(1,2*N). For good performance, LWORK must generally be larg
er. To compute the optimal value of LWORK, call ILAENV to get
blocksizes (for ZGEQRF, ZUNMQR, and CUNGQR.) Then compute: NB
-- MAX of the blocksizes for ZGEQRF, ZUNMQR, and CUNGQR; the op
timal LWORK is N*(NB+1).
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 (workspace) DOUBLE PRECISION array, dimension
(3*N)
INFO (output) INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an ille
gal value.
=1,...,N: The QZ iteration failed. (A,B) are not
in Schur form, but ALPHA(j) and BETA(j) should be correct for
j=INFO+1,...,N. > N: errors that usually indicate LAPACK prob
lems:
=N+1: error return from ZGGBAL
=N+2: error return from ZGEQRF
=N+3: error return from ZUNMQR
=N+4: error return from ZUNGQR
=N+5: error return from ZGGHRD
=N+6: error return from ZHGEQZ (other than failed
iteration) =N+7: error return from ZGGBAK (computing VSL)
=N+8: error return from ZGGBAK (computing VSR)
=N+9: error return from ZLASCL (various places)
LAPACK version 3.0 15 June 2000
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout