hseqr#
Functions
-
void shseqr(const char *job, const char *compz, const INT n, const INT ilo, const INT ihi, f32 *H, const INT ldh, f32 *wr, f32 *wi, f32 *Z, const INT ldz, f32 *work, const INT lwork, INT *info)#
SHSEQR computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z^T, where T is an upper quasi-triangular matrix (the Schur form), and Z is the orthogonal matrix of Schur vectors.
Optionally Z may be postmultiplied into an input orthogonal matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the orthogonal matrix Q: A = Q*H*Q^T = (QZ)*T*(QZ)^T.
Parameters
injob‘E’ for eigenvalues only; ‘S’ for Schur form T.
incompz‘N’ no Schur vectors; ‘I’ initialize Z to identity; ‘V’ Z contains input orthogonal matrix Q.
innThe order of the matrix H. n >= 0.
iniloFirst index of isolated block (0-based). 0 <= ilo <= ihi <= n-1, if n > 0; ilo=0 and ihi=-1, if n=0.
inihiLast index of isolated block (0-based). It is assumed that H is already upper triangular in rows and columns 0:ilo-1 and ihi+1:n-1.
inoutHDouble precision array, dimension (ldh, n). On entry, the upper Hessenberg matrix H. On exit, if info = 0 and job = ‘S’, then H contains the upper quasi-triangular matrix T (the Schur form).
inldhLeading dimension of H. ldh >= max(1, n).
outwrDouble precision array, dimension (n). Real parts of the computed eigenvalues.
outwiDouble precision array, dimension (n). Imaginary parts of the computed eigenvalues.
inoutZDouble precision array, dimension (ldz, n). If compz = ‘N’, Z is not referenced. If compz = ‘I’, Z is initialized to identity and returns the orthogonal matrix of Schur vectors. If compz = ‘V’, Z contains an orthogonal matrix Q on entry, and returns Q*Z.
inldzLeading dimension of Z. ldz >= 1; if compz = ‘I’ or ‘V’, ldz >= max(1, n).
outworkDouble precision array, dimension (lwork).
inlworkDimension of work array. lwork >= max(1, n). If lwork = -1, workspace query is assumed.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: if info = i, SHSEQR failed to compute all eigenvalues. Elements 0:ilo-1 and i+1:n-1 of WR and WI contain those eigenvalues which have been successfully computed.
void shseqr(
const char* job,
const char* compz,
const INT n,
const INT ilo,
const INT ihi,
f32* H,
const INT ldh,
f32* wr,
f32* wi,
f32* Z,
const INT ldz,
f32* work,
const INT lwork,
INT* info
);
Functions
-
void dhseqr(const char *job, const char *compz, const INT n, const INT ilo, const INT ihi, f64 *H, const INT ldh, f64 *wr, f64 *wi, f64 *Z, const INT ldz, f64 *work, const INT lwork, INT *info)#
DHSEQR computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z^T, where T is an upper quasi-triangular matrix (the Schur form), and Z is the orthogonal matrix of Schur vectors.
Optionally Z may be postmultiplied into an input orthogonal matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the orthogonal matrix Q: A = Q*H*Q^T = (QZ)*T*(QZ)^T.
Parameters
injob‘E’ for eigenvalues only; ‘S’ for Schur form T.
incompz‘N’ no Schur vectors; ‘I’ initialize Z to identity; ‘V’ Z contains input orthogonal matrix Q.
innThe order of the matrix H. n >= 0.
iniloFirst index of isolated block (0-based). 0 <= ilo <= ihi <= n-1, if n > 0; ilo=0 and ihi=-1, if n=0.
inihiLast index of isolated block (0-based). It is assumed that H is already upper triangular in rows and columns 0:ilo-1 and ihi+1:n-1.
inoutHDouble precision array, dimension (ldh, n). On entry, the upper Hessenberg matrix H. On exit, if info = 0 and job = ‘S’, then H contains the upper quasi-triangular matrix T (the Schur form).
inldhLeading dimension of H. ldh >= max(1, n).
outwrDouble precision array, dimension (n). Real parts of the computed eigenvalues.
outwiDouble precision array, dimension (n). Imaginary parts of the computed eigenvalues.
inoutZDouble precision array, dimension (ldz, n). If compz = ‘N’, Z is not referenced. If compz = ‘I’, Z is initialized to identity and returns the orthogonal matrix of Schur vectors. If compz = ‘V’, Z contains an orthogonal matrix Q on entry, and returns Q*Z.
inldzLeading dimension of Z. ldz >= 1; if compz = ‘I’ or ‘V’, ldz >= max(1, n).
outworkDouble precision array, dimension (lwork).
inlworkDimension of work array. lwork >= max(1, n). If lwork = -1, workspace query is assumed.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: if info = i, DHSEQR failed to compute all eigenvalues. Elements 0:ilo-1 and i+1:n-1 of WR and WI contain those eigenvalues which have been successfully computed.
void dhseqr(
const char* job,
const char* compz,
const INT n,
const INT ilo,
const INT ihi,
f64* H,
const INT ldh,
f64* wr,
f64* wi,
f64* Z,
const INT ldz,
f64* work,
const INT lwork,
INT* info
);
Functions
-
void chseqr(const char *job, const char *compz, const INT n, const INT ilo, const INT ihi, c64 *H, const INT ldh, c64 *W, c64 *Z, const INT ldz, c64 *work, const INT lwork, INT *info)#
CHSEQR computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z^H, where T is an upper triangular matrix (the Schur form), and Z is the unitary matrix of Schur vectors.
Optionally Z may be postmultiplied into an input unitary matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the unitary matrix Q: A = Q*H*Q^H = (QZ)*T*(QZ)^H.
Parameters
injob‘E’ for eigenvalues only; ‘S’ for Schur form T.
incompz‘N’ no Schur vectors; ‘I’ initialize Z to identity; ‘V’ Z contains input unitary matrix Q.
innThe order of the matrix H. n >= 0.
iniloFirst index of isolated block (0-based).
inihiLast index of isolated block (0-based).
inoutHComplex array, dimension (ldh, n). On entry, the upper Hessenberg matrix H. On exit, if info = 0 and job = ‘S’, then H contains the upper triangular matrix T (the Schur form).
inldhLeading dimension of H. ldh >= max(1, n).
outWComplex array, dimension (n). The computed eigenvalues.
inoutZComplex array, dimension (ldz, n).
inldzLeading dimension of Z. ldz >= 1; if compz = ‘I’ or ‘V’, ldz >= max(1, n).
outworkComplex array, dimension (lwork).
inlworkDimension of work array. lwork >= max(1, n). If lwork = -1, workspace query is assumed.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: if info = i, CHSEQR failed to compute all eigenvalues.
void chseqr(
const char* job,
const char* compz,
const INT n,
const INT ilo,
const INT ihi,
c64* H,
const INT ldh,
c64* W,
c64* Z,
const INT ldz,
c64* work,
const INT lwork,
INT* info
);
Functions
-
void zhseqr(const char *job, const char *compz, const INT n, const INT ilo, const INT ihi, c128 *H, const INT ldh, c128 *W, c128 *Z, const INT ldz, c128 *work, const INT lwork, INT *info)#
ZHSEQR computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z^H, where T is an upper triangular matrix (the Schur form), and Z is the unitary matrix of Schur vectors.
Optionally Z may be postmultiplied into an input unitary matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the unitary matrix Q: A = Q*H*Q^H = (QZ)*T*(QZ)^H.
Parameters
injob‘E’ for eigenvalues only; ‘S’ for Schur form T.
incompz‘N’ no Schur vectors; ‘I’ initialize Z to identity; ‘V’ Z contains input unitary matrix Q.
innThe order of the matrix H. n >= 0.
iniloFirst index of isolated block (0-based).
inihiLast index of isolated block (0-based).
inoutHComplex array, dimension (ldh, n). On entry, the upper Hessenberg matrix H. On exit, if info = 0 and job = ‘S’, then H contains the upper triangular matrix T (the Schur form).
inldhLeading dimension of H. ldh >= max(1, n).
outWComplex array, dimension (n). The computed eigenvalues.
inoutZComplex array, dimension (ldz, n).
inldzLeading dimension of Z. ldz >= 1; if compz = ‘I’ or ‘V’, ldz >= max(1, n).
outworkComplex array, dimension (lwork).
inlworkDimension of work array. lwork >= max(1, n). If lwork = -1, workspace query is assumed.
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
> 0: if info = i, ZHSEQR failed to compute all eigenvalues.
void zhseqr(
const char* job,
const char* compz,
const INT n,
const INT ilo,
const INT ihi,
c128* H,
const INT ldh,
c128* W,
c128* Z,
const INT ldz,
c128* work,
const INT lwork,
INT* info
);