stemr#
Functions
-
void sstemr(const char *jobz, const char *range, const INT n, f32 *D, f32 *E, const f32 vl, const f32 vu, const INT il, const INT iu, INT *m, f32 *W, f32 *Z, const INT ldz, const INT nzc, INT *isuppz, INT *tryrac, f32 *work, const INT lwork, INT *iwork, const INT liwork, INT *info)#
SSTEMR computes selected eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix T.
Any such unreduced matrix has a well defined set of pairwise different real eigenvalues, the corresponding real eigenvectors are pairwise orthogonal.
Parameters
injobz‘N’: eigenvalues only; ‘V’: eigenvalues and eigenvectors.
inrange‘A’: all; ‘V’: in (vl,vu]; ‘I’: il-th through iu-th.
innThe order of the matrix. n >= 0.
inoutDDouble precision array, dimension (n). Diagonal elements.
inoutEDouble precision array, dimension (n). Subdiagonal elements.
invlLower bound of interval (if range=’V’).
invuUpper bound of interval (if range=’V’).
inilIndex of smallest eigenvalue (0-based, if range=’I’).
iniuIndex of largest eigenvalue (0-based, if range=’I’).
outmTotal number of eigenvalues found.
outWDouble precision array, dimension (n). Eigenvalues.
outZDouble precision array, dimension (ldz, nzc). Eigenvectors.
inldzLeading dimension of Z.
innzcNumber of eigenvector columns available. -1 for query.
outisuppzInteger array, dimension (2*max(1,m)). Support of eigenvectors.
inouttryracIf nonzero, try for relative accuracy.
outworkDouble precision workspace, dimension (lwork).
inlworkDimension of work. -1 for query.
outiworkInteger workspace, dimension (liwork).
inliworkDimension of iwork. -1 for query.
outinfo= 0: success. < 0: illegal argument. > 0: internal error.
void sstemr(
const char* jobz,
const char* range,
const INT n,
f32* D,
f32* E,
const f32 vl,
const f32 vu,
const INT il,
const INT iu,
INT* m,
f32* W,
f32* Z,
const INT ldz,
const INT nzc,
INT* isuppz,
INT* tryrac,
f32* work,
const INT lwork,
INT* iwork,
const INT liwork,
INT* info
);
Functions
-
void dstemr(const char *jobz, const char *range, const INT n, f64 *D, f64 *E, const f64 vl, const f64 vu, const INT il, const INT iu, INT *m, f64 *W, f64 *Z, const INT ldz, const INT nzc, INT *isuppz, INT *tryrac, f64 *work, const INT lwork, INT *iwork, const INT liwork, INT *info)#
DSTEMR computes selected eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix T.
Any such unreduced matrix has a well defined set of pairwise different real eigenvalues, the corresponding real eigenvectors are pairwise orthogonal.
Parameters
injobz‘N’: eigenvalues only; ‘V’: eigenvalues and eigenvectors.
inrange‘A’: all; ‘V’: in (vl,vu]; ‘I’: il-th through iu-th.
innThe order of the matrix. n >= 0.
inoutDDouble precision array, dimension (n). Diagonal elements.
inoutEDouble precision array, dimension (n). Subdiagonal elements.
invlLower bound of interval (if range=’V’).
invuUpper bound of interval (if range=’V’).
inilIndex of smallest eigenvalue (0-based, if range=’I’).
iniuIndex of largest eigenvalue (0-based, if range=’I’).
outmTotal number of eigenvalues found.
outWDouble precision array, dimension (n). Eigenvalues.
outZDouble precision array, dimension (ldz, nzc). Eigenvectors.
inldzLeading dimension of Z.
innzcNumber of eigenvector columns available. -1 for query.
outisuppzInteger array, dimension (2*max(1,m)). Support of eigenvectors.
inouttryracIf nonzero, try for relative accuracy.
outworkDouble precision workspace, dimension (lwork).
inlworkDimension of work. -1 for query.
outiworkInteger workspace, dimension (liwork).
inliworkDimension of iwork. -1 for query.
outinfo= 0: success. < 0: illegal argument. > 0: internal error.
void dstemr(
const char* jobz,
const char* range,
const INT n,
f64* D,
f64* E,
const f64 vl,
const f64 vu,
const INT il,
const INT iu,
INT* m,
f64* W,
f64* Z,
const INT ldz,
const INT nzc,
INT* isuppz,
INT* tryrac,
f64* work,
const INT lwork,
INT* iwork,
const INT liwork,
INT* info
);
Functions
-
void cstemr(const char *jobz, const char *range, const INT n, f32 *D, f32 *E, const f32 vl, const f32 vu, const INT il, const INT iu, INT *m, f32 *W, c64 *Z, const INT ldz, const INT nzc, INT *isuppz, INT *tryrac, f32 *work, const INT lwork, INT *iwork, const INT liwork, INT *info)#
CSTEMR computes selected eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix T.
Any such unreduced matrix has a well defined set of pairwise different real eigenvalues, the corresponding real eigenvectors are pairwise orthogonal.
Parameters
injobz‘N’: eigenvalues only; ‘V’: eigenvalues and eigenvectors.
inrange‘A’: all; ‘V’: in (vl,vu]; ‘I’: il-th through iu-th.
innThe order of the matrix. n >= 0.
inoutDSingle precision array, dimension (n). Diagonal elements.
inoutESingle precision array, dimension (n). Subdiagonal elements.
invlLower bound of interval (if range=’V’).
invuUpper bound of interval (if range=’V’).
inilIndex of smallest eigenvalue (0-based, if range=’I’).
iniuIndex of largest eigenvalue (0-based, if range=’I’).
outmTotal number of eigenvalues found.
outWSingle precision array, dimension (n). Eigenvalues.
outZComplex array, dimension (ldz, nzc). Eigenvectors.
inldzLeading dimension of Z.
innzcNumber of eigenvector columns available. -1 for query.
outisuppzInteger array, dimension (2*max(1,m)). Support of eigenvectors.
inouttryracIf nonzero, try for relative accuracy.
outworkSingle precision workspace, dimension (lwork).
inlworkDimension of work. -1 for query.
outiworkInteger workspace, dimension (liwork).
inliworkDimension of iwork. -1 for query.
outinfo= 0: success. < 0: illegal argument. > 0: internal error.
void cstemr(
const char* jobz,
const char* range,
const INT n,
f32* D,
f32* E,
const f32 vl,
const f32 vu,
const INT il,
const INT iu,
INT* m,
f32* W,
c64* Z,
const INT ldz,
const INT nzc,
INT* isuppz,
INT* tryrac,
f32* work,
const INT lwork,
INT* iwork,
const INT liwork,
INT* info
);
Functions
-
void zstemr(const char *jobz, const char *range, const INT n, f64 *D, f64 *E, const f64 vl, const f64 vu, const INT il, const INT iu, INT *m, f64 *W, c128 *Z, const INT ldz, const INT nzc, INT *isuppz, INT *tryrac, f64 *work, const INT lwork, INT *iwork, const INT liwork, INT *info)#
ZSTEMR computes selected eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix T.
Any such unreduced matrix has a well defined set of pairwise different real eigenvalues, the corresponding real eigenvectors are pairwise orthogonal.
Parameters
injobz‘N’: eigenvalues only; ‘V’: eigenvalues and eigenvectors.
inrange‘A’: all; ‘V’: in (vl,vu]; ‘I’: il-th through iu-th.
innThe order of the matrix. n >= 0.
inoutDDouble precision array, dimension (n). Diagonal elements.
inoutEDouble precision array, dimension (n). Subdiagonal elements.
invlLower bound of interval (if range=’V’).
invuUpper bound of interval (if range=’V’).
inilIndex of smallest eigenvalue (0-based, if range=’I’).
iniuIndex of largest eigenvalue (0-based, if range=’I’).
outmTotal number of eigenvalues found.
outWDouble precision array, dimension (n). Eigenvalues.
outZComplex array, dimension (ldz, nzc). Eigenvectors.
inldzLeading dimension of Z.
innzcNumber of eigenvector columns available. -1 for query.
outisuppzInteger array, dimension (2*max(1,m)). Support of eigenvectors.
inouttryracIf nonzero, try for relative accuracy.
outworkDouble precision workspace, dimension (lwork).
inlworkDimension of work. -1 for query.
outiworkInteger workspace, dimension (liwork).
inliworkDimension of iwork. -1 for query.
outinfo= 0: success. < 0: illegal argument. > 0: internal error.
void zstemr(
const char* jobz,
const char* range,
const INT n,
f64* D,
f64* E,
const f64 vl,
const f64 vu,
const INT il,
const INT iu,
INT* m,
f64* W,
c128* Z,
const INT ldz,
const INT nzc,
INT* isuppz,
INT* tryrac,
f64* work,
const INT lwork,
INT* iwork,
const INT liwork,
INT* info
);