geesx(3)

๐Ÿ’… geesx(3) โ€” geesx: Schur form, expert ๐Ÿ’…

๐ŸŒธ NAME ๐ŸŒธ

geesx โ€” geesx: Schur form, expert

๐Ÿฆ‹ SYNOPSIS ๐Ÿฆ‹

โœจ Functions โœจ

  • cgeesx โ€” subroutine cgeesx (jobvs, sort, select, sense, n, a, lda, sdim, w, vs, ldvs, rconde, rcondv, work, lwork, rwork, bwork, info) CGEESX is the complex one, bestie: eigenvalues, Schur form, and โ€” only if you ask โ€” the matrix of Schur vectors for GE matrices. slay. ๐Ÿ’–
  • dgeesx โ€” subroutine dgeesx (jobvs, sort, select, sense, n, a, lda, sdim, wr, wi, vs, ldvs, rconde, rcondv, work, lwork, iwork, liwork, bwork, info) DGEESX gets you eigenvalues, the Schur form, and optionally the matrix of Schur vectors for GE matrices. periodt. โœจ
  • sgeesx โ€” subroutine sgeesx (jobvs, sort, select, sense, n, a, lda, sdim, wr, wi, vs, ldvs, rconde, rcondv, work, lwork, iwork, liwork, bwork, info) SGEESX serves eigenvalues, the Schur form, and optionally the matrix of Schur vectors for GE matrices. iconic behavior. ๐ŸŽ€
  • zgeesx โ€” subroutine zgeesx (jobvs, sort, select, sense, n, a, lda, sdim, w, vs, ldvs, rconde, rcondv, work, lwork, rwork, bwork, info) ZGEESX brings eigenvalues, the Schur form, and optionally the matrix of Schur vectors for GE matrices. no cap. ๐Ÿฆ‹

๐ŸŒˆ DETAILED DESCRIPTION ๐ŸŒˆ

No extra body text here โ€” this heading is just doing a little outfit reveal, and then Function Documentation takes over. ๐Ÿ’…

๐Ÿ‘‘ FUNCTION DOCUMENTATION ๐Ÿ‘‘

๐Ÿ’– subroutine cgeesx

subroutine cgeesx (character jobvs, character sort, external select, character sense, integer n, complex, dimension( lda, * ) a, integer lda, integer sdim, complex, dimension( * ) w, complex, dimension( ldvs, * ) vs, integer ldvs, real rconde, real rcondv, complex, dimension( * ) work, integer lwork, real, dimension( * ) rwork, logical, dimension( * ) bwork, integer info)

CGEESX gets you the eigenvalues, the Schur form, and โ€” if you opt in โ€” the matrix of Schur vectors, all for GE matrices. main character energy. ๐Ÿ”ฅ

๐ŸŽ€ Purpose:

CGEESX takes an N-by-N complex nonsymmetric matrix A and gives you its eigenvalues, its Schur form T, and optionally the matrix of Schur vectors Z. Thatโ€™s the Schur factorization A = Z*T*(Z**H), bestie. ๐Ÿ’–

If you want, it also orders the eigenvalues on the diagonal of the Schur form so selected eigenvalues are at the top left; it computes a reciprocal condition number for the average of the selected eigenvalues (RCONDE); and it computes a reciprocal condition number for the right invariant subspace corresponding to the selected eigenvalues (RCONDV). The leading columns of Z form an orthonormal basis for this invariant subspace. we love a structured queen. ๐ŸŒฟ

For further explanation of the reciprocal condition numbers RCONDE and RCONDV, peek Section 4.10 of the LAPACK Usersโ€™ Guide โ€” thatโ€™s where these quantities are called s and sep respectively. ๐Ÿ“–

And just so weโ€™re clear: a complex matrix is in Schur form if it is upper triangular. iykyk. ๐Ÿ’›

๐Ÿฆ‹ Parameters

JOBVS โ€” CHARACTER*1

  • 'N': Schur vectors are not computed;
  • 'V': Schur vectors are computed.

SORT โ€” CHARACTER*1. Specifies whether or not to order the eigenvalues on the diagonal of the Schur form.

  • 'N': eigenvalues are not ordered;
  • 'S': eigenvalues are ordered (see SELECT).

SELECT โ€” a LOGICAL FUNCTION of one COMPLEX argument. SELECT must be declared EXTERNAL in the calling subroutine. If SORT = 'S', SELECT is used to select eigenvalues to order to the top left of the Schur form. If SORT = 'N', SELECT is not referenced. An eigenvalue W(j) is selected if SELECT(W(j)) is true. custom sorting but make it fashion. ๐ŸŒˆ

SENSE โ€” CHARACTER*1. Determines which reciprocal condition numbers are computed.

  • 'N': none are computed;
  • 'E': computed for average of selected eigenvalues only;
  • 'V': computed for selected right invariant subspace only;
  • 'B': computed for both.

If SENSE = 'E', 'V' or 'B', SORT must equal 'S'. important!! donโ€™t skip this. ๐Ÿšจ

N โ€” INTEGER. The order of the matrix A. N >= 0.

A โ€” COMPLEX array, dimension (LDA, N). On entry, the N-by-N matrix A. On exit, A is overwritten by its Schur form T. she transforms. ๐Ÿ‘

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

SDIM โ€” INTEGER. If SORT = 'N', SDIM = 0. If SORT = 'S', SDIM = number of eigenvalues for which SELECT is true.

W โ€” COMPLEX array, dimension (N). W contains the computed eigenvalues, in the same order that they appear on the diagonal of the output Schur form T.

VS โ€” COMPLEX array, dimension (LDVS,N). If JOBVS = 'V', VS contains the unitary matrix Z of Schur vectors. If JOBVS = 'N', VS is not referenced.

LDVS โ€” INTEGER. The leading dimension of the array VS. LDVS >= 1, and if JOBVS = 'V', LDVS >= N.

RCONDE โ€” REAL. If SENSE = 'E' or 'B', RCONDE contains the reciprocal condition number for the average of the selected eigenvalues. Not referenced if SENSE = 'N' or 'V'.

RCONDV โ€” REAL. If SENSE = 'V' or 'B', RCONDV contains the reciprocal condition number for the selected right invariant subspace. Not referenced if SENSE = 'N' or 'E'.

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

LWORK โ€” INTEGER. The dimension of the array WORK. LWORK >= max(1,2*N). Also, if SENSE = 'E' or 'V' or 'B', LWORK >= 2*SDIM*(N-SDIM), where SDIM is the number of selected eigenvalues computed by this routine. Note that 2*SDIM*(N-SDIM) <= N*N/2. Note also that an error is only returned if LWORK < max(1,2*N), but if SENSE = 'E' or 'V' or 'B' this may not be large enough. For good performance, LWORK must generally be larger. bigger workspace = better vibes. ๐Ÿ’™

If LWORK = -1, then a workspace query is assumed; the routine only calculates upper bound on the optimal size of the array WORK, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.

RWORK โ€” REAL array, dimension (N).

BWORK โ€” LOGICAL array, dimension (N). Not referenced if SORT = 'N'.

INFO โ€” INTEGER.

  • = 0: successful exit;
  • < 0: if INFO = -i, the i-th argument had an illegal value.
  • > 0: if INFO = i, and i is:
    • <= N: the QR algorithm failed to compute all the eigenvalues; elements 1:ILO-1 and i+1:N of W contain those eigenvalues which have converged; if JOBVS = 'V', VS contains the transformation which reduces A to its partially converged Schur form.
    • = N+1: the eigenvalues could not be reordered because some eigenvalues were too close to separate (the problem is very ill-conditioned);
    • = N+2: after reordering, roundoff changed values of some complex eigenvalues so that leading eigenvalues in the Schur form no longer satisfy SELECT=.TRUE.. This could also be caused by underflow due to scaling. rough. ๐Ÿ˜ญ

๐Ÿ‘‘ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 236 of file cgeesx.f.

๐Ÿ’œ subroutine dgeesx

subroutine dgeesx (character jobvs, character sort, external select, character sense, integer n, double precision, dimension( lda, * ) a, integer lda, integer sdim, double precision, dimension( * ) wr, double precision, dimension( * ) wi, double precision, dimension( ldvs, * ) vs, integer ldvs, double precision rconde, double precision rcondv, double precision, dimension( * ) work, integer lwork, integer, dimension( * ) iwork, integer liwork, logical, dimension( * ) bwork, integer info)

DGEESX gets you the eigenvalues, the real Schur form, and โ€” if you want โ€” the matrix of Schur vectors, all for GE matrices. obsessed. ๐Ÿ’–

๐ŸŽ€ Purpose:

DGEESX takes an N-by-N real nonsymmetric matrix A and gives you its eigenvalues, its real Schur form T, and optionally the matrix of Schur vectors Z. That gives the Schur factorization A = Z*T*(Z**T). โœจ

If you want, it also orders the eigenvalues on the diagonal of the real Schur form so selected eigenvalues are at the top left; it computes a reciprocal condition number for the average of the selected eigenvalues (RCONDE); and it computes a reciprocal condition number for the right invariant subspace corresponding to the selected eigenvalues (RCONDV). The leading columns of Z form an orthonormal basis for this invariant subspace. structured and thriving. ๐ŸŒฟ

For further explanation of the reciprocal condition numbers RCONDE and RCONDV, see Section 4.10 of the LAPACK Usersโ€™ Guide โ€” thatโ€™s where these quantities are called s and sep respectively. ๐Ÿ“š

A real matrix is in real Schur form if it is upper quasi-triangular with 1-by-1 and 2-by-2 blocks. 2-by-2 blocks will be standardized in the form

          [  a  b  ]
          [  c  a  ]

where b*c < 0. The eigenvalues of such a block are a +- sqrt(bc). math but make it cute. ๐Ÿงฎ

๐Ÿฆ‹ Parameters

JOBVS โ€” CHARACTER*1

  • 'N': Schur vectors are not computed;
  • 'V': Schur vectors are computed.

SORT

  • SORT โ€” CHARACTER*1. This is the vibe check for whether the eigenvalues on the diagonal of the Schur form get ordered or just stay in their original spots.
    • 'N': eigenvalues are not ordered;
    • 'S': eigenvalues are ordered (peep SELECT).
  • SELECT โ€” okay so this is a LOGICAL FUNCTION of two DOUBLE PRECISION arguments, and it must be declared EXTERNAL in the calling subroutine. No sneaky implicit tea.
    • if SORT = 'S', SELECT is used to pick eigenvalues to sort to the top left of the Schur form;
    • if SORT = 'N', SELECT is not referenced at all;
    • an eigenvalue WR(j)+sqrt(-1)*WI(j) is selected if SELECT(WR(j),WI(j)) is true; i.e., if either one of a complex conjugate pair of eigenvalues is selected, then both are โ€” package deal, no splitting them up;
    • > heads up bestie: a selected complex eigenvalue may no longer satisfy SELECT(WR(j),WI(j)) = .TRUE. after ordering, because ordering may change the value of complex eigenvalues (especially if the eigenvalue is ill-conditioned). in this case INFO may be set to N+3 (see INFO below).
  • SENSE โ€” CHARACTER*1. Determines which reciprocal condition numbers are computed.
    • 'N': none are computed;
    • 'E': computed for the average of selected eigenvalues only;
    • 'V': computed for the selected right invariant subspace only;
    • 'B': computed for both.
    • > if SENSE = 'E', 'V' or 'B', then SORT must equal 'S'. literally required.
  • N โ€” INTEGER. The order of the matrix A. N >= 0.
  • A โ€” DOUBLE PRECISION array, dimension (LDA, N). On entry, the N-by-N matrix A. On exit, A is overwritten by its real Schur form T. glow-up via factorization, basically.
  • LDA โ€” INTEGER. The leading dimension of the array A. LDA >= max(1,N).
  • SDIM โ€” INTEGER.
    • if SORT = 'N', SDIM = 0;
    • if SORT = 'S', SDIM = number of eigenvalues (after sorting) for which SELECT is true. (Complex conjugate pairs for which SELECT is true for either eigenvalue count as 2.)
  • WR โ€” DOUBLE PRECISION array, dimension (N).
  • WI โ€” DOUBLE PRECISION array, dimension (N). WR and WI contain the real and imaginary parts, respectively, of the computed eigenvalues, in the same order that they appear on the diagonal of the output Schur form T. Complex conjugate pairs of eigenvalues appear consecutively with the eigenvalue having the positive imaginary part first. iconic ordering behavior.
  • VS โ€” DOUBLE PRECISION array, dimension (LDVS,N).
    • if JOBVS = 'V', VS contains the orthogonal matrix Z of Schur vectors;
    • if JOBVS = 'N', VS is not referenced.
  • LDVS โ€” INTEGER. The leading dimension of the array VS. LDVS >= 1, and if JOBVS = 'V', LDVS >= N.
  • RCONDE โ€” DOUBLE PRECISION. If SENSE = 'E' or 'B', RCONDE contains the reciprocal condition number for the average of the selected eigenvalues. Not referenced if SENSE = 'N' or 'V'.
  • RCONDV โ€” DOUBLE PRECISION. If SENSE = 'V' or 'B', RCONDV contains the reciprocal condition number for the selected right invariant subspace. Not referenced if SENSE = 'N' or 'E'.
  • WORK โ€” DOUBLE PRECISION array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  • LWORK โ€” INTEGER. The dimension of the array WORK. LWORK >= max(1,3*N).
    • also, if SENSE = 'E' or 'V' or 'B', LWORK >= N+2*SDIM*(N-SDIM), where SDIM is the number of selected eigenvalues computed by this routine. Note that N+2*SDIM*(N-SDIM) <= N+N*N/2;
    • note also that an error is only returned if LWORK < max(1,3*N), but if SENSE = 'E' or 'V' or 'B' this may not be large enough;
    • for good performance, LWORK must generally be larger;
    • if LWORK = -1, then a workspace query is assumed; the routine only calculates upper bounds on the optimal sizes of the arrays WORK and IWORK, returns these values as the first entries of the WORK and IWORK arrays, and no error messages related to LWORK or LIWORK are issued by XERBLA.
  • IWORK โ€” INTEGER array, dimension (MAX(1,LIWORK)). On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
  • LIWORK โ€” INTEGER. The dimension of the array IWORK. LIWORK >= 1; if SENSE = 'V' or 'B', LIWORK >= SDIM*(N-SDIM).
    • note that SDIM*(N-SDIM) <= N*N/4;
    • note also that an error is only returned if LIWORK < 1, but if SENSE = 'V' or 'B' this may not be large enough;
    • if LIWORK = -1, then a workspace query is assumed; the routine only calculates upper bounds on the optimal sizes of the arrays WORK and IWORK, returns these values as the first entries of the WORK and IWORK arrays, and no error messages related to LWORK or LIWORK are issued by XERBLA.
  • BWORK โ€” LOGICAL array, dimension (N). Not referenced if SORT = 'N'.
  • INFO โ€” INTEGER.
    • = 0: successful exit, slay;
    • < 0: if INFO = -i, the i-th argument had an illegal value;
    • > 0: if INFO = i, and i is:
      • <= N: the QR algorithm failed to compute all the eigenvalues; elements 1:ILO-1 and i+1:N of WR and WI contain those eigenvalues which have converged; if JOBVS = 'V', VS contains the transformation which reduces A to its partially converged Schur form;
      • = N+1: the eigenvalues could not be reordered because some eigenvalues were too close to separate (the problem is very ill-conditioned);
      • = N+2: after reordering, roundoff changed values of some complex eigenvalues so that leading eigenvalues in the Schur form no longer satisfy SELECT=.TRUE.. This could also be caused by underflow due to scaling.

๐ŸŒธ Author ๐ŸŒธ

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 278 of file dgeesx.f.


๐Ÿ’… subroutine sgeesx ๐Ÿ’…

   subroutine sgeesx (character jobvs, character sort, external select,
       character sense, integer n, real, dimension( lda, * ) a, integer lda,
       integer sdim, real, dimension( * ) wr, real, dimension( * ) wi, real,
       dimension( ldvs, * ) vs, integer ldvs, real rconde, real rcondv, real,
       dimension( * ) work, integer lwork, integer, dimension( * ) iwork,
       integer liwork, logical, dimension( * ) bwork, integer info)

SGEESX computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE matrices. that's the whole elevator pitch, bestie.

โœจ Purpose โœจ

!> SGEESX computes for an N-by-N real nonsymmetric matrix A, the eigenvalues, the real Schur form T, and, optionally, the matrix of Schur vectors Z. This gives the Schur factorization A = Z*T*(Z**T). math is mathing.

Optionally, it also orders the eigenvalues on the diagonal of the real Schur form so that selected eigenvalues are at the top left; computes a reciprocal condition number for the average of the selected eigenvalues (RCONDE); and computes a reciprocal condition number for the right invariant subspace corresponding to the selected eigenvalues (RCONDV). The leading columns of Z form an orthonormal basis for this invariant subspace. very main character.

For further explanation of the reciprocal condition numbers RCONDE and RCONDV, see Section 4.10 of the LAPACK Users' Guide (where these quantities are called s and sep respectively).

A real matrix is in real Schur form if it is upper quasi-triangular with 1-by-1 and 2-by-2 blocks. 2-by-2 blocks will be standardized in the form

           [  a  b  ]
           [  c  a  ]

where b*c < 0. The eigenvalues of such a block are a +- sqrt(bc).

๐ŸŽ€ Parameters ๐ŸŽ€

  • JOBVS โ€” CHARACTER*1.
    • 'N': Schur vectors are not computed;
    • 'V': Schur vectors are computed.
  • SORT โ€” CHARACTER*1. Specifies whether or not to order the eigenvalues on the diagonal of the Schur form.
    • 'N': eigenvalues are not ordered;
    • 'S': eigenvalues are ordered (see SELECT).
  • SELECT โ€” a LOGICAL FUNCTION of two REAL arguments. SELECT must be declared EXTERNAL in the calling subroutine.
    • if SORT = 'S', SELECT is used to select eigenvalues to sort to the top left of the Schur form;
    • if SORT = 'N', SELECT is not referenced;
    • an eigenvalue WR(j)+sqrt(-1)*WI(j) is selected if SELECT(WR(j),WI(j)) is true; i.e., if either one of a complex conjugate pair of eigenvalues is selected, then both are;
    • > note that a selected complex eigenvalue may no longer satisfy SELECT(WR(j),WI(j)) = .TRUE. after ordering, since ordering may change the value of complex eigenvalues (especially if the eigenvalue is ill-conditioned); in this case INFO may be set to N+3 (see INFO below).
  • SENSE
  • SENSE โ€” CHARACTER*1. Okay so this lil flag decides which reciprocal condition numbers get computed. = 'N': none are computed; = 'E': computed for average of selected eigenvalues only; = 'V': computed for selected right invariant subspace only; = 'B': computed for both. If SENSE = 'E', 'V' or 'B', then SORT must equal 'S' โ€” no cap, that's the rule. ๐Ÿ’…
  • N โ€” INTEGER. The order of the matrix A. N >= 0. Keep it non-negative, bestie.
  • A โ€” REAL array, dimension (LDA, N). On entry, the N-by-N matrix A. On exit, A is overwritten by its real Schur form T. Bye original A, hello T. โœจ
  • LDA โ€” INTEGER. The leading dimension of the array A. LDA >= max(1,N).
  • SDIM โ€” INTEGER. If SORT = 'N', SDIM = 0. If SORT = 'S', SDIM = number of eigenvalues (after sorting) for which SELECT is true. (Complex conjugate pairs for which SELECT is true for either eigenvalue count as 2.) Periodt.
  • WR โ€” REAL array, dimension (N).
  • WI โ€” REAL array, dimension (N). WR and WI contain the real and imaginary parts, respectively, of the computed eigenvalues, in the same order that they appear on the diagonal of the output Schur form T. Complex conjugate pairs of eigenvalues appear consecutively with the eigenvalue having the positive imaginary part first. Slay. ๐Ÿฆ‹
  • VS โ€” REAL array, dimension (LDVS,N). If JOBVS = 'V', VS contains the orthogonal matrix Z of Schur vectors. If JOBVS = 'N', VS is not referenced. She's literally not in the group chat.
  • LDVS โ€” INTEGER. The leading dimension of the array VS. LDVS >= 1, and if JOBVS = 'V', LDVS >= N.
  • RCONDE โ€” REAL. If SENSE = 'E' or 'B', RCONDE contains the reciprocal condition number for the average of the selected eigenvalues. Not referenced if SENSE = 'N' or 'V'.
  • RCONDV โ€” REAL. If SENSE = 'V' or 'B', RCONDV contains the reciprocal condition number for the selected right invariant subspace. Not referenced if SENSE = 'N' or 'E'.
  • WORK โ€” REAL array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. Cute.
  • LWORK โ€” INTEGER. The dimension of the array WORK. LWORK >= max(1,3*N). Also, if SENSE = 'E' or 'V' or 'B', LWORK >= N+2*SDIM*(N-SDIM), where SDIM is the number of selected eigenvalues computed by this routine. Note that N+2*SDIM*(N-SDIM) <= N+N*N/2. Note also that an error is only returned if LWORK < max(1,3*N), but if SENSE = 'E' or 'V' or 'B' this may not be large enough. For good performance, LWORK must generally be larger.

If LWORK = -1, then a workspace query is assumed; the routine only calculates upper bounds on the optimal sizes of the arrays WORK and IWORK, returns these values as the first entries of the WORK and IWORK arrays, and no error messages related to LWORK or LIWORK are issued by XERBLA. ๐Ÿซถ

  • IWORK โ€” INTEGER array, dimension (MAX(1,LIWORK)). On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
  • LIWORK โ€” INTEGER. The dimension of the array IWORK. LIWORK >= 1; if SENSE = 'V' or 'B', LIWORK >= SDIM*(N-SDIM). Note that SDIM*(N-SDIM) <= N*N/4. Note also that an error is only returned if LIWORK < 1, but if SENSE = 'V' or 'B' this may not be large enough.

If LIWORK = -1, then a workspace query is assumed; the routine only calculates upper bounds on the optimal sizes of the arrays WORK and IWORK, returns these values as the first entries of the WORK and IWORK arrays, and no error messages related to LWORK or LIWORK are issued by XERBLA. ๐Ÿ’€

  • BWORK โ€” LOGICAL array, dimension (N). Not referenced if SORT = 'N'.
  • INFO โ€” INTEGER. = 0: successful exit. < 0: if INFO = -i, the i-th argument had an illegal value. > 0: if INFO = i, and i is <= N: the QR algorithm failed to compute all the eigenvalues; elements 1:ILO-1 and i+1:N of WR and WI contain those eigenvalues which have converged; if JOBVS = 'V', VS contains the transformation which reduces A to its partially converged Schur form. = N+1: the eigenvalues could not be reordered because some eigenvalues were too close to separate (the problem is very ill-conditioned); = N+2: after reordering, roundoff changed values of some complex eigenvalues so that leading eigenvalues in the Schur form no longer satisfy SELECT=.TRUE.. This could also be caused by underflow due to scaling. ๐Ÿ˜ญ

๐Ÿ’– Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 278 of file sgeesx.f.


๐Ÿฆ‹ subroutine zgeesx โ€” the complex edition

   subroutine zgeesx (character jobvs, character sort, external select,
       character sense, integer n, complex*16, dimension( lda, * ) a, integer
       lda, integer sdim, complex*16, dimension( * ) w, complex*16, dimension(
       ldvs, * ) vs, integer ldvs, double precision rconde, double precision
       rcondv, complex*16, dimension( * ) work, integer lwork, double
       precision, dimension( * ) rwork, logical, dimension( * ) bwork, integer
       info)

ZGEESX computes the eigenvalues, the Schur form, and, optionally, the matrix of Schur vectors for GE matrices. Iconic. ๐Ÿ‘‘

๐ŸŽ€ Purpose

ZGEESX computes for an N-by-N complex nonsymmetric matrix A, the eigenvalues, the Schur form T, and, optionally, the matrix of Schur vectors Z. This gives the Schur factorization A = Z*T*(Z**H). Obsessed. โœจ

Optionally, it also orders the eigenvalues on the diagonal of the Schur form so that selected eigenvalues are at the top left; computes a reciprocal condition number for the average of the selected eigenvalues (RCONDE); and computes a reciprocal condition number for the right invariant subspace corresponding to the selected eigenvalues (RCONDV). The leading columns of Z form an orthonormal basis for this invariant subspace. Main character energy fr.

For further explanation of the reciprocal condition numbers RCONDE and RCONDV, see Section 4.10 of the LAPACK Users' Guide (where these quantities are called s and sep respectively). iykyk.

A complex matrix is in Schur form if it is upper triangular. Periodt.

๐Ÿ’… Parameters

  • JOBVS โ€” CHARACTER*1. = 'N': Schur vectors are not computed; = 'V': Schur vectors are computed.
  • SORT โ€” CHARACTER*1. Specifies whether or not to order the eigenvalues on the diagonal of the Schur form. = 'N': eigenvalues are not ordered; = 'S': eigenvalues are ordered (see SELECT).
  • SELECT โ€” LOGICAL FUNCTION of one COMPLEX*16 argument. SELECT must be declared EXTERNAL in the calling subroutine. If SORT = 'S', SELECT is used to select eigenvalues to order to the top left of the Schur form. If SORT = 'N', SELECT is not referenced. An eigenvalue W(j) is selected if SELECT(W(j)) is true.
  • SENSE โ€” CHARACTER*1. Determines which reciprocal condition numbers are computed. = 'N': none are computed; = 'E': computed for average of selected eigenvalues only; = 'V': computed for selected right invariant subspace only; = 'B': computed for both. If SENSE = 'E', 'V' or 'B', SORT must equal 'S'.
  • N โ€” INTEGER. The order of the matrix A. N >= 0.
  • A โ€” COMPLEX*16 array, dimension (LDA, N). On entry, the N-by-N matrix A. On exit, A is overwritten by its Schur form T.
  • LDA โ€” INTEGER. The leading dimension of the array A. LDA >= max(1,N).
  • SDIM โ€” INTEGER. If SORT = 'N', SDIM = 0. If SORT = 'S', SDIM = number of eigenvalues for which SELECT is true.
  • W โ€” COMPLEX*16 array, dimension (N). W contains the computed eigenvalues, in the same order that they appear on the diagonal of the output Schur form T.
  • VS โ€” COMPLEX*16 array, dimension (LDVS,N). If JOBVS = 'V', VS contains the unitary matrix Z of Schur vectors. If JOBVS = 'N', VS is not referenced.
  • LDVS โ€” INTEGER. The leading dimension of the array VS. LDVS >= 1, and if JOBVS = 'V', LDVS >= N.
  • RCONDE โ€” DOUBLE PRECISION. If SENSE = 'E' or 'B', RCONDE contains the reciprocal condition number for the average of the selected eigenvalues. Not referenced if SENSE = 'N' or 'V'.
  • RCONDV โ€”
  • RCONDV โ€” DOUBLE PRECISION. If SENSE = 'V' or 'B', RCONDV contains the reciprocal condition number for the selected right invariant subspace. Not referenced if SENSE = 'N' or 'E'. ๐Ÿ’…
  • WORK โ€” COMPLEX*16 array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. โœจ
  • LWORK โ€” INTEGER. The dimension of the array WORK. LWORK >= max(1,2*N). Also, if SENSE = 'E' or 'V' or 'B', LWORK >= 2*SDIM*(N-SDIM), where SDIM is the number of selected eigenvalues computed by this routine. Note that 2*SDIM*(N-SDIM) <= N*N/2. Note also that an error is only returned if LWORK < max(1,2*N), but if SENSE = 'E' or 'V' or 'B' this may not be large enough. For good performance, LWORK must generally be larger.

If LWORK = -1, then a workspace query is assumed; the routine only calculates upper bound on the optimal size of the array WORK, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA. ๐Ÿซถ

  • RWORK โ€” DOUBLE PRECISION array, dimension (N). ๐ŸŒธ
  • BWORK โ€” LOGICAL array, dimension (N). Not referenced if SORT = 'N'. ๐Ÿฆ‹
  • INFO โ€” INTEGER.
    • = 0: successful exit. ๐ŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value.
    • > 0: if INFO = i, and i is:
      • <= N: the QR algorithm failed to compute all the eigenvalues; elements 1:ILO-1 and i+1:N of W contain those eigenvalues which have converged; if JOBVS = 'V', VS contains the transformation which reduces A to its partially converged Schur form.
      • = N+1: the eigenvalues could not be reordered because some eigenvalues were too close to separate (the problem is very ill-conditioned);
      • = N+2: after reordering, roundoff changed values of some complex eigenvalues so that leading eigenvalues in the Schur form no longer satisfy SELECT=.TRUE. This could also be caused by underflow due to scaling. ๐Ÿ’€

๐Ÿ‘‘ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 236 of file zgeesx.f.

๐Ÿค– Author

Generated automatically by Doxygen for LAPACK from the source code.


๐Ÿ’– Source/version + date from the footer: LAPACK Version 3.12.0, page geesx(3), and the date as printed on that last line, bestie โ€” cute sign-off, no cap. ๐ŸŽ€

๐Ÿ“ฆ where this page comes from