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)#
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
injobSpecifies 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).
inhowmny= ‘A’: compute condition numbers for all eigenpairs; = ‘S’: compute condition numbers for selected eigenpairs specified by the array select.
inselectInteger array, dimension (n). If howmny = ‘S’, select specifies the eigenpairs for which condition numbers are required (nonzero = selected). If howmny = ‘A’, not referenced.
innThe order of the matrix T. n >= 0.
inTThe upper quasi-triangular matrix T, in Schur canonical form. Dimension (ldt, n).
inldtThe leading dimension of T. ldt >= max(1, n).
inVLIf job = ‘E’ or ‘B’, left eigenvectors of T. Dimension (ldvl, m). If job = ‘V’, VL is not referenced.
inldvlThe leading dimension of VL. ldvl >= 1; if job = ‘E’ or ‘B’, ldvl >= n.
inVRIf job = ‘E’ or ‘B’, right eigenvectors of T. Dimension (ldvr, m). If job = ‘V’, VR is not referenced.
inldvrThe leading dimension of VR. ldvr >= 1; if job = ‘E’ or ‘B’, ldvr >= n.
outSArray, dimension (mm). If job = ‘E’ or ‘B’, the reciprocal condition numbers of the selected eigenvalues. If job = ‘V’, S is not referenced.
outsepArray, dimension (mm). If job = ‘V’ or ‘B’, the estimated reciprocal condition numbers of the selected eigenvectors. If job = ‘E’, sep is not referenced.
inmmThe number of elements in the arrays S and/or sep. mm >= m.
outmThe number of elements of S and/or sep actually used.
outworkWorkspace array, dimension (ldwork, n+6). If job = ‘E’, work is not referenced.
inldworkThe leading dimension of work. ldwork >= 1; if job = ‘V’ or ‘B’, ldwork >= n.
outiworkInteger array, dimension (2*(n-1)). If job = ‘E’, iwork is not referenced.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
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
);
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)#
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
injobSpecifies 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).
inhowmny= ‘A’: compute condition numbers for all eigenpairs; = ‘S’: compute condition numbers for selected eigenpairs specified by the array select.
inselectInteger array, dimension (n). If howmny = ‘S’, select specifies the eigenpairs for which condition numbers are required (nonzero = selected). If howmny = ‘A’, not referenced.
innThe order of the matrix T. n >= 0.
inTThe upper quasi-triangular matrix T, in Schur canonical form. Dimension (ldt, n).
inldtThe leading dimension of T. ldt >= max(1, n).
inVLIf job = ‘E’ or ‘B’, left eigenvectors of T. Dimension (ldvl, m). If job = ‘V’, VL is not referenced.
inldvlThe leading dimension of VL. ldvl >= 1; if job = ‘E’ or ‘B’, ldvl >= n.
inVRIf job = ‘E’ or ‘B’, right eigenvectors of T. Dimension (ldvr, m). If job = ‘V’, VR is not referenced.
inldvrThe leading dimension of VR. ldvr >= 1; if job = ‘E’ or ‘B’, ldvr >= n.
outSArray, dimension (mm). If job = ‘E’ or ‘B’, the reciprocal condition numbers of the selected eigenvalues. If job = ‘V’, S is not referenced.
outsepArray, dimension (mm). If job = ‘V’ or ‘B’, the estimated reciprocal condition numbers of the selected eigenvectors. If job = ‘E’, sep is not referenced.
inmmThe number of elements in the arrays S and/or sep. mm >= m.
outmThe number of elements of S and/or sep actually used.
outworkWorkspace array, dimension (ldwork, n+6). If job = ‘E’, work is not referenced.
inldworkThe leading dimension of work. ldwork >= 1; if job = ‘V’ or ‘B’, ldwork >= n.
outiworkInteger array, dimension (2*(n-1)). If job = ‘E’, iwork is not referenced.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
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
);
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)#
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
injobSpecifies 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).
inhowmny= ‘A’: compute condition numbers for all eigenpairs; = ‘S’: compute condition numbers for selected eigenpairs specified by the array select.
inselectInteger array, dimension (n). If howmny = ‘S’, select specifies the eigenpairs for which condition numbers are required (nonzero = selected). If howmny = ‘A’, not referenced.
innThe order of the matrix T. n >= 0.
inTComplex array, dimension (ldt, n). The upper triangular matrix T.
inldtThe leading dimension of T. ldt >= max(1, n).
inVLComplex array, dimension (ldvl, m). If job = ‘E’ or ‘B’, left eigenvectors of T. If job = ‘V’, VL is not referenced.
inldvlThe leading dimension of VL. ldvl >= 1; if job = ‘E’ or ‘B’, ldvl >= n.
inVRComplex array, dimension (ldvr, m). If job = ‘E’ or ‘B’, right eigenvectors of T. If job = ‘V’, VR is not referenced.
inldvrThe leading dimension of VR. ldvr >= 1; if job = ‘E’ or ‘B’, ldvr >= n.
outSSingle precision array, dimension (mm). If job = ‘E’ or ‘B’, the reciprocal condition numbers of the selected eigenvalues. If job = ‘V’, S is not referenced.
outsepSingle 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.
inmmThe number of elements in the arrays S and/or sep. mm >= m.
outmThe number of elements of S and/or sep actually used.
outworkComplex array, dimension (ldwork, n+6). If job = ‘E’, work is not referenced.
inldworkThe leading dimension of work. ldwork >= 1; if job = ‘V’ or ‘B’, ldwork >= n.
outrworkSingle precision array, dimension (n). If job = ‘E’, rwork is not referenced.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
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
);
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)#
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
injobSpecifies 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).
inhowmny= ‘A’: compute condition numbers for all eigenpairs; = ‘S’: compute condition numbers for selected eigenpairs specified by the array select.
inselectInteger array, dimension (n). If howmny = ‘S’, select specifies the eigenpairs for which condition numbers are required (nonzero = selected). If howmny = ‘A’, not referenced.
innThe order of the matrix T. n >= 0.
inTComplex array, dimension (ldt, n). The upper triangular matrix T.
inldtThe leading dimension of T. ldt >= max(1, n).
inVLComplex array, dimension (ldvl, m). If job = ‘E’ or ‘B’, left eigenvectors of T. If job = ‘V’, VL is not referenced.
inldvlThe leading dimension of VL. ldvl >= 1; if job = ‘E’ or ‘B’, ldvl >= n.
inVRComplex array, dimension (ldvr, m). If job = ‘E’ or ‘B’, right eigenvectors of T. If job = ‘V’, VR is not referenced.
inldvrThe leading dimension of VR. ldvr >= 1; if job = ‘E’ or ‘B’, ldvr >= n.
outSDouble precision array, dimension (mm). If job = ‘E’ or ‘B’, the reciprocal condition numbers of the selected eigenvalues. If job = ‘V’, S is not referenced.
outsepDouble 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.
inmmThe number of elements in the arrays S and/or sep. mm >= m.
outmThe number of elements of S and/or sep actually used.
outworkComplex array, dimension (ldwork, n+6). If job = ‘E’, work is not referenced.
inldworkThe leading dimension of work. ldwork >= 1; if job = ‘V’ or ‘B’, ldwork >= n.
outrworkDouble precision array, dimension (n). If job = ‘E’, rwork is not referenced.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value.
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
);