tgsna#

Functions

void stgsna(
    const char*          job,
    const char*          howmny,
    const INT*  restrict select,
    const INT            n,
    const f32*  restrict A,
    const INT            lda,
    const f32*  restrict B,
    const INT            ldb,
    const f32*  restrict VL,
    const INT            ldvl,
    const f32*  restrict VR,
    const INT            ldvr,
          f32*  restrict S,
          f32*  restrict dif,
    const INT            mm,
          INT*           m,
          f32*  restrict work,
    const INT            lwork,
          INT*  restrict iwork,
          INT*           info
);
void stgsna(const char *job, const char *howmny, const INT *restrict select, const INT n, const f32 *restrict A, const INT lda, const f32 *restrict B, const INT ldb, const f32 *restrict VL, const INT ldvl, const f32 *restrict VR, const INT ldvr, f32 *restrict S, f32 *restrict dif, const INT mm, INT *m, f32 *restrict work, const INT lwork, INT *restrict iwork, INT *info)#

STGSNA estimates reciprocal condition numbers for specified eigenvalues and/or eigenvectors of a matrix pair (A, B) in generalized real Schur canonical form.

Parameters

in
job

= ‘E’: condition numbers for eigenvalues only (S) = ‘V’: condition numbers for eigenvectors only (DIF) = ‘B’: condition numbers for both (S and DIF)

in
howmny

= ‘A’: compute for all eigenpairs = ‘S’: compute for selected eigenpairs

in
select

Integer array of dimension (n). If howmny = ‘S’, specifies the eigenpairs for which condition numbers are required.

in
n

The order of the matrix pair (A, B). n >= 0.

in
A

Array of dimension (lda, n). Upper quasi-triangular matrix.

in
lda

The leading dimension of A. lda >= max(1, n).

in
B

Array of dimension (ldb, n). Upper triangular matrix.

in
ldb

The leading dimension of B. ldb >= max(1, n).

in
VL

Array of dimension (ldvl, m). Left eigenvectors.

in
ldvl

The leading dimension of VL. ldvl >= 1; if job=’E’/’B’, ldvl >= n.

in
VR

Array of dimension (ldvr, m). Right eigenvectors.

in
ldvr

The leading dimension of VR. ldvr >= 1; if job=’E’/’B’, ldvr >= n.

out
S

Array of dimension (mm). Reciprocal condition numbers of eigenvalues.

out
dif

Array of dimension (mm). Reciprocal condition numbers of eigenvectors.

in
mm

The number of elements in S and dif. mm >= m.

out
m

The number of elements used in S and dif.

out
work

Array of dimension (lwork).

in
lwork

The dimension of work. lwork >= max(1, n). If job = ‘V’ or ‘B’, lwork >= 2*n*(n+2)+16.

out
iwork

Integer array of dimension (n+6).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value

Functions

void dtgsna(
    const char*          job,
    const char*          howmny,
    const INT*  restrict select,
    const INT            n,
    const f64*  restrict A,
    const INT            lda,
    const f64*  restrict B,
    const INT            ldb,
    const f64*  restrict VL,
    const INT            ldvl,
    const f64*  restrict VR,
    const INT            ldvr,
          f64*  restrict S,
          f64*  restrict dif,
    const INT            mm,
          INT*           m,
          f64*  restrict work,
    const INT            lwork,
          INT*  restrict iwork,
          INT*           info
);
void dtgsna(const char *job, const char *howmny, const INT *restrict select, const INT n, const f64 *restrict A, const INT lda, const f64 *restrict B, const INT ldb, const f64 *restrict VL, const INT ldvl, const f64 *restrict VR, const INT ldvr, f64 *restrict S, f64 *restrict dif, const INT mm, INT *m, f64 *restrict work, const INT lwork, INT *restrict iwork, INT *info)#

DTGSNA estimates reciprocal condition numbers for specified eigenvalues and/or eigenvectors of a matrix pair (A, B) in generalized real Schur canonical form.

Parameters

in
job

= ‘E’: condition numbers for eigenvalues only (S) = ‘V’: condition numbers for eigenvectors only (DIF) = ‘B’: condition numbers for both (S and DIF)

in
howmny

= ‘A’: compute for all eigenpairs = ‘S’: compute for selected eigenpairs

in
select

Integer array of dimension (n). If howmny = ‘S’, specifies the eigenpairs for which condition numbers are required.

in
n

The order of the matrix pair (A, B). n >= 0.

in
A

Array of dimension (lda, n). Upper quasi-triangular matrix.

in
lda

The leading dimension of A. lda >= max(1, n).

in
B

Array of dimension (ldb, n). Upper triangular matrix.

in
ldb

The leading dimension of B. ldb >= max(1, n).

in
VL

Array of dimension (ldvl, m). Left eigenvectors.

in
ldvl

The leading dimension of VL. ldvl >= 1; if job=’E’/’B’, ldvl >= n.

in
VR

Array of dimension (ldvr, m). Right eigenvectors.

in
ldvr

The leading dimension of VR. ldvr >= 1; if job=’E’/’B’, ldvr >= n.

out
S

Array of dimension (mm). Reciprocal condition numbers of eigenvalues.

out
dif

Array of dimension (mm). Reciprocal condition numbers of eigenvectors.

in
mm

The number of elements in S and dif. mm >= m.

out
m

The number of elements used in S and dif.

out
work

Array of dimension (lwork).

in
lwork

The dimension of work. lwork >= max(1, n). If job = ‘V’ or ‘B’, lwork >= 2*n*(n+2)+16.

out
iwork

Integer array of dimension (n+6).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value

Functions

void ctgsna(
    const char*          job,
    const char*          howmny,
    const INT*  restrict select,
    const INT            n,
    const c64*  restrict A,
    const INT            lda,
    const c64*  restrict B,
    const INT            ldb,
    const c64*  restrict VL,
    const INT            ldvl,
    const c64*  restrict VR,
    const INT            ldvr,
          f32*  restrict S,
          f32*  restrict dif,
    const INT            mm,
          INT*           m,
          c64*  restrict work,
    const INT            lwork,
          INT*  restrict iwork,
          INT*           info
);
void ctgsna(const char *job, const char *howmny, const INT *restrict select, const INT n, const c64 *restrict A, const INT lda, const c64 *restrict B, const INT ldb, const c64 *restrict VL, const INT ldvl, const c64 *restrict VR, const INT ldvr, f32 *restrict S, f32 *restrict dif, const INT mm, INT *m, c64 *restrict work, const INT lwork, INT *restrict iwork, INT *info)#

CTGSNA estimates reciprocal condition numbers for specified eigenvalues and/or eigenvectors of a matrix pair (A, B) in generalized Schur canonical form (i.e., A and B are both upper triangular).

Parameters

in
job

= ‘E’: condition numbers for eigenvalues only (S) = ‘V’: condition numbers for eigenvectors only (DIF) = ‘B’: condition numbers for both (S and DIF)

in
howmny

= ‘A’: compute for all eigenpairs = ‘S’: compute for selected eigenpairs

in
select

Integer array of dimension (n). If howmny = ‘S’, specifies the eigenpairs for which condition numbers are required.

in
n

The order of the matrix pair (A, B). n >= 0.

in
A

Complex array of dimension (lda, n). Upper triangular matrix.

in
lda

The leading dimension of A. lda >= max(1, n).

in
B

Complex array of dimension (ldb, n). Upper triangular matrix.

in
ldb

The leading dimension of B. ldb >= max(1, n).

in
VL

Complex array of dimension (ldvl, m). Left eigenvectors.

in
ldvl

The leading dimension of VL. ldvl >= 1; if job=’E’/’B’, ldvl >= n.

in
VR

Complex array of dimension (ldvr, m). Right eigenvectors.

in
ldvr

The leading dimension of VR. ldvr >= 1; if job=’E’/’B’, ldvr >= n.

out
S

Single precision array of dimension (mm). Reciprocal condition numbers of eigenvalues.

out
dif

Single precision array of dimension (mm). Reciprocal condition numbers of eigenvectors.

in
mm

The number of elements in S and dif. mm >= m.

out
m

The number of elements used in S and dif.

out
work

Complex workspace array of dimension (max(1, lwork)).

in
lwork

The dimension of work. lwork >= max(1, n). If job = ‘V’ or ‘B’, lwork >= max(1, 2*n*n).

out
iwork

Integer array of dimension (n+2).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value

Functions

void ztgsna(
    const char*          job,
    const char*          howmny,
    const INT*  restrict select,
    const INT            n,
    const c128* restrict A,
    const INT            lda,
    const c128* restrict B,
    const INT            ldb,
    const c128* restrict VL,
    const INT            ldvl,
    const c128* restrict VR,
    const INT            ldvr,
          f64*  restrict S,
          f64*  restrict dif,
    const INT            mm,
          INT*           m,
          c128* restrict work,
    const INT            lwork,
          INT*  restrict iwork,
          INT*           info
);
void ztgsna(const char *job, const char *howmny, const INT *restrict select, const INT n, const c128 *restrict A, const INT lda, const c128 *restrict B, const INT ldb, const c128 *restrict VL, const INT ldvl, const c128 *restrict VR, const INT ldvr, f64 *restrict S, f64 *restrict dif, const INT mm, INT *m, c128 *restrict work, const INT lwork, INT *restrict iwork, INT *info)#

ZTGSNA estimates reciprocal condition numbers for specified eigenvalues and/or eigenvectors of a matrix pair (A, B) in generalized Schur canonical form (i.e., A and B are both upper triangular).

Parameters

in
job

= ‘E’: condition numbers for eigenvalues only (S) = ‘V’: condition numbers for eigenvectors only (DIF) = ‘B’: condition numbers for both (S and DIF)

in
howmny

= ‘A’: compute for all eigenpairs = ‘S’: compute for selected eigenpairs

in
select

Integer array of dimension (n). If howmny = ‘S’, specifies the eigenpairs for which condition numbers are required.

in
n

The order of the matrix pair (A, B). n >= 0.

in
A

Complex array of dimension (lda, n). Upper triangular matrix.

in
lda

The leading dimension of A. lda >= max(1, n).

in
B

Complex array of dimension (ldb, n). Upper triangular matrix.

in
ldb

The leading dimension of B. ldb >= max(1, n).

in
VL

Complex array of dimension (ldvl, m). Left eigenvectors.

in
ldvl

The leading dimension of VL. ldvl >= 1; if job=’E’/’B’, ldvl >= n.

in
VR

Complex array of dimension (ldvr, m). Right eigenvectors.

in
ldvr

The leading dimension of VR. ldvr >= 1; if job=’E’/’B’, ldvr >= n.

out
S

Double precision array of dimension (mm). Reciprocal condition numbers of eigenvalues.

out
dif

Double precision array of dimension (mm). Reciprocal condition numbers of eigenvectors.

in
mm

The number of elements in S and dif. mm >= m.

out
m

The number of elements used in S and dif.

out
work

Complex workspace array of dimension (max(1, lwork)).

in
lwork

The dimension of work. lwork >= max(1, n). If job = ‘V’ or ‘B’, lwork >= max(1, 2*n*n).

out
iwork

Integer array of dimension (n+2).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value