trsna#

Functions

void strsna(
    const char* job,
    const char* howmny,
    const INT*  select,
    const INT   n,
    const f32*  T,
    const INT   ldt,
    const f32*  VL,
    const INT   ldvl,
    const f32*  VR,
    const INT   ldvr,
          f32*  S,
          f32*  sep,
    const INT   mm,
          INT*  m,
          f32*  work,
    const INT   ldwork,
          INT*  iwork,
          INT*  info
);
void strsna(const char *job, const char *howmny, const INT *select, const INT n, const f32 *T, const INT ldt, const f32 *VL, const INT ldvl, const f32 *VR, const INT ldvr, f32 *S, f32 *sep, const INT mm, INT *m, f32 *work, const INT ldwork, INT *iwork, INT *info)#

STRSNA estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a real upper quasi-triangular matrix T (or of any matrix Q*T*Q**T with Q orthogonal).

T must be in Schur canonical form (as returned by SHSEQR), that is, block upper triangular with 1-by-1 and 2-by-2 diagonal blocks; each 2-by-2 diagonal block has its diagonal elements equal and its off-diagonal elements of opposite sign.

Parameters

in
job

Specifies whether condition numbers are required for eigenvalues (S) or eigenvectors (SEP): = ‘E’: for eigenvalues only (S); = ‘V’: for eigenvectors only (SEP); = ‘B’: for both eigenvalues and eigenvectors (S and SEP).

in
howmny

= ‘A’: compute condition numbers for all eigenpairs; = ‘S’: compute condition numbers for selected eigenpairs specified by the array select.

in
select

Integer array, dimension (n). If howmny = ‘S’, select specifies the eigenpairs for which condition numbers are required (nonzero = selected). If howmny = ‘A’, not referenced.

in
n

The order of the matrix T. n >= 0.

in
T

The upper quasi-triangular matrix T, in Schur canonical form. Dimension (ldt, n).

in
ldt

The leading dimension of T. ldt >= max(1, n).

in
VL

If job = ‘E’ or ‘B’, left eigenvectors of T. Dimension (ldvl, m). If job = ‘V’, VL is not referenced.

in
ldvl

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

in
VR

If job = ‘E’ or ‘B’, right eigenvectors of T. Dimension (ldvr, m). If job = ‘V’, VR is not referenced.

in
ldvr

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

out
S

Array, dimension (mm). If job = ‘E’ or ‘B’, the reciprocal condition numbers of the selected eigenvalues. If job = ‘V’, S is not referenced.

out
sep

Array, dimension (mm). If job = ‘V’ or ‘B’, the estimated reciprocal condition numbers of the selected eigenvectors. If job = ‘E’, sep is not referenced.

in
mm

The number of elements in the arrays S and/or sep. mm >= m.

out
m

The number of elements of S and/or sep actually used.

out
work

Workspace array, dimension (ldwork, n+6). If job = ‘E’, work is not referenced.

in
ldwork

The leading dimension of work. ldwork >= 1; if job = ‘V’ or ‘B’, ldwork >= n.

out
iwork

Integer array, dimension (2*(n-1)). If job = ‘E’, iwork is not referenced.

out
info

  • = 0: successful exit

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

Functions

void dtrsna(
    const char* job,
    const char* howmny,
    const INT*  select,
    const INT   n,
    const f64*  T,
    const INT   ldt,
    const f64*  VL,
    const INT   ldvl,
    const f64*  VR,
    const INT   ldvr,
          f64*  S,
          f64*  sep,
    const INT   mm,
          INT*  m,
          f64*  work,
    const INT   ldwork,
          INT*  iwork,
          INT*  info
);
void dtrsna(const char *job, const char *howmny, const INT *select, const INT n, const f64 *T, const INT ldt, const f64 *VL, const INT ldvl, const f64 *VR, const INT ldvr, f64 *S, f64 *sep, const INT mm, INT *m, f64 *work, const INT ldwork, INT *iwork, INT *info)#

DTRSNA estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a real upper quasi-triangular matrix T (or of any matrix Q*T*Q**T with Q orthogonal).

T must be in Schur canonical form (as returned by DHSEQR), that is, block upper triangular with 1-by-1 and 2-by-2 diagonal blocks; each 2-by-2 diagonal block has its diagonal elements equal and its off-diagonal elements of opposite sign.

Parameters

in
job

Specifies whether condition numbers are required for eigenvalues (S) or eigenvectors (SEP): = ‘E’: for eigenvalues only (S); = ‘V’: for eigenvectors only (SEP); = ‘B’: for both eigenvalues and eigenvectors (S and SEP).

in
howmny

= ‘A’: compute condition numbers for all eigenpairs; = ‘S’: compute condition numbers for selected eigenpairs specified by the array select.

in
select

Integer array, dimension (n). If howmny = ‘S’, select specifies the eigenpairs for which condition numbers are required (nonzero = selected). If howmny = ‘A’, not referenced.

in
n

The order of the matrix T. n >= 0.

in
T

The upper quasi-triangular matrix T, in Schur canonical form. Dimension (ldt, n).

in
ldt

The leading dimension of T. ldt >= max(1, n).

in
VL

If job = ‘E’ or ‘B’, left eigenvectors of T. Dimension (ldvl, m). If job = ‘V’, VL is not referenced.

in
ldvl

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

in
VR

If job = ‘E’ or ‘B’, right eigenvectors of T. Dimension (ldvr, m). If job = ‘V’, VR is not referenced.

in
ldvr

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

out
S

Array, dimension (mm). If job = ‘E’ or ‘B’, the reciprocal condition numbers of the selected eigenvalues. If job = ‘V’, S is not referenced.

out
sep

Array, dimension (mm). If job = ‘V’ or ‘B’, the estimated reciprocal condition numbers of the selected eigenvectors. If job = ‘E’, sep is not referenced.

in
mm

The number of elements in the arrays S and/or sep. mm >= m.

out
m

The number of elements of S and/or sep actually used.

out
work

Workspace array, dimension (ldwork, n+6). If job = ‘E’, work is not referenced.

in
ldwork

The leading dimension of work. ldwork >= 1; if job = ‘V’ or ‘B’, ldwork >= n.

out
iwork

Integer array, dimension (2*(n-1)). If job = ‘E’, iwork is not referenced.

out
info

  • = 0: successful exit

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

Functions

void ctrsna(
    const char* job,
    const char* howmny,
    const INT*  select,
    const INT   n,
    const c64*  T,
    const INT   ldt,
    const c64*  VL,
    const INT   ldvl,
    const c64*  VR,
    const INT   ldvr,
          f32*  S,
          f32*  sep,
    const INT   mm,
          INT*  m,
          c64*  work,
    const INT   ldwork,
          f32*  rwork,
          INT*  info
);
void ctrsna(const char *job, const char *howmny, const INT *select, const INT n, const c64 *T, const INT ldt, const c64 *VL, const INT ldvl, const c64 *VR, const INT ldvr, f32 *S, f32 *sep, const INT mm, INT *m, c64 *work, const INT ldwork, f32 *rwork, INT *info)#

CTRSNA estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a complex upper triangular matrix T (or of any matrix Q*T*Q**H with Q unitary).

Parameters

in
job

Specifies whether condition numbers are required for eigenvalues (S) or eigenvectors (SEP): = ‘E’: for eigenvalues only (S); = ‘V’: for eigenvectors only (SEP); = ‘B’: for both eigenvalues and eigenvectors (S and SEP).

in
howmny

= ‘A’: compute condition numbers for all eigenpairs; = ‘S’: compute condition numbers for selected eigenpairs specified by the array select.

in
select

Integer array, dimension (n). If howmny = ‘S’, select specifies the eigenpairs for which condition numbers are required (nonzero = selected). If howmny = ‘A’, not referenced.

in
n

The order of the matrix T. n >= 0.

in
T

Complex array, dimension (ldt, n). The upper triangular matrix T.

in
ldt

The leading dimension of T. ldt >= max(1, n).

in
VL

Complex array, dimension (ldvl, m). If job = ‘E’ or ‘B’, left eigenvectors of T. If job = ‘V’, VL is not referenced.

in
ldvl

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

in
VR

Complex array, dimension (ldvr, m). If job = ‘E’ or ‘B’, right eigenvectors of T. If job = ‘V’, VR is not referenced.

in
ldvr

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

out
S

Single precision array, dimension (mm). If job = ‘E’ or ‘B’, the reciprocal condition numbers of the selected eigenvalues. If job = ‘V’, S is not referenced.

out
sep

Single precision array, dimension (mm). If job = ‘V’ or ‘B’, the estimated reciprocal condition numbers of the selected eigenvectors. If job = ‘E’, sep is not referenced.

in
mm

The number of elements in the arrays S and/or sep. mm >= m.

out
m

The number of elements of S and/or sep actually used.

out
work

Complex array, dimension (ldwork, n+6). If job = ‘E’, work is not referenced.

in
ldwork

The leading dimension of work. ldwork >= 1; if job = ‘V’ or ‘B’, ldwork >= n.

out
rwork

Single precision array, dimension (n). If job = ‘E’, rwork is not referenced.

out
info

  • = 0: successful exit

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

Functions

void ztrsna(
    const char* job,
    const char* howmny,
    const INT*  select,
    const INT   n,
    const c128* T,
    const INT   ldt,
    const c128* VL,
    const INT   ldvl,
    const c128* VR,
    const INT   ldvr,
          f64*  S,
          f64*  sep,
    const INT   mm,
          INT*  m,
          c128* work,
    const INT   ldwork,
          f64*  rwork,
          INT*  info
);
void ztrsna(const char *job, const char *howmny, const INT *select, const INT n, const c128 *T, const INT ldt, const c128 *VL, const INT ldvl, const c128 *VR, const INT ldvr, f64 *S, f64 *sep, const INT mm, INT *m, c128 *work, const INT ldwork, f64 *rwork, INT *info)#

ZTRSNA estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a complex upper triangular matrix T (or of any matrix Q*T*Q**H with Q unitary).

Parameters

in
job

Specifies whether condition numbers are required for eigenvalues (S) or eigenvectors (SEP): = ‘E’: for eigenvalues only (S); = ‘V’: for eigenvectors only (SEP); = ‘B’: for both eigenvalues and eigenvectors (S and SEP).

in
howmny

= ‘A’: compute condition numbers for all eigenpairs; = ‘S’: compute condition numbers for selected eigenpairs specified by the array select.

in
select

Integer array, dimension (n). If howmny = ‘S’, select specifies the eigenpairs for which condition numbers are required (nonzero = selected). If howmny = ‘A’, not referenced.

in
n

The order of the matrix T. n >= 0.

in
T

Complex array, dimension (ldt, n). The upper triangular matrix T.

in
ldt

The leading dimension of T. ldt >= max(1, n).

in
VL

Complex array, dimension (ldvl, m). If job = ‘E’ or ‘B’, left eigenvectors of T. If job = ‘V’, VL is not referenced.

in
ldvl

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

in
VR

Complex array, dimension (ldvr, m). If job = ‘E’ or ‘B’, right eigenvectors of T. If job = ‘V’, VR is not referenced.

in
ldvr

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

out
S

Double precision array, dimension (mm). If job = ‘E’ or ‘B’, the reciprocal condition numbers of the selected eigenvalues. If job = ‘V’, S is not referenced.

out
sep

Double precision array, dimension (mm). If job = ‘V’ or ‘B’, the estimated reciprocal condition numbers of the selected eigenvectors. If job = ‘E’, sep is not referenced.

in
mm

The number of elements in the arrays S and/or sep. mm >= m.

out
m

The number of elements of S and/or sep actually used.

out
work

Complex array, dimension (ldwork, n+6). If job = ‘E’, work is not referenced.

in
ldwork

The leading dimension of work. ldwork >= 1; if job = ‘V’ or ‘B’, ldwork >= n.

out
rwork

Double precision array, dimension (n). If job = ‘E’, rwork is not referenced.

out
info

  • = 0: successful exit

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