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
);
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

in
jobz

‘N’: eigenvalues only; ‘V’: eigenvalues and eigenvectors.

in
range

‘A’: all; ‘V’: in (vl,vu]; ‘I’: il-th through iu-th.

in
n

The order of the matrix. n >= 0.

inout
D

Double precision array, dimension (n). Diagonal elements.

inout
E

Double precision array, dimension (n). Subdiagonal elements.

in
vl

Lower bound of interval (if range=’V’).

in
vu

Upper bound of interval (if range=’V’).

in
il

Index of smallest eigenvalue (0-based, if range=’I’).

in
iu

Index of largest eigenvalue (0-based, if range=’I’).

out
m

Total number of eigenvalues found.

out
W

Double precision array, dimension (n). Eigenvalues.

out
Z

Double precision array, dimension (ldz, nzc). Eigenvectors.

in
ldz

Leading dimension of Z.

in
nzc

Number of eigenvector columns available. -1 for query.

out
isuppz

Integer array, dimension (2*max(1,m)). Support of eigenvectors.

inout
tryrac

If nonzero, try for relative accuracy.

out
work

Double precision workspace, dimension (lwork).

in
lwork

Dimension of work. -1 for query.

out
iwork

Integer workspace, dimension (liwork).

in
liwork

Dimension of iwork. -1 for query.

out
info

  • = 0: success. < 0: illegal argument. > 0: internal error.

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
);
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

in
jobz

‘N’: eigenvalues only; ‘V’: eigenvalues and eigenvectors.

in
range

‘A’: all; ‘V’: in (vl,vu]; ‘I’: il-th through iu-th.

in
n

The order of the matrix. n >= 0.

inout
D

Double precision array, dimension (n). Diagonal elements.

inout
E

Double precision array, dimension (n). Subdiagonal elements.

in
vl

Lower bound of interval (if range=’V’).

in
vu

Upper bound of interval (if range=’V’).

in
il

Index of smallest eigenvalue (0-based, if range=’I’).

in
iu

Index of largest eigenvalue (0-based, if range=’I’).

out
m

Total number of eigenvalues found.

out
W

Double precision array, dimension (n). Eigenvalues.

out
Z

Double precision array, dimension (ldz, nzc). Eigenvectors.

in
ldz

Leading dimension of Z.

in
nzc

Number of eigenvector columns available. -1 for query.

out
isuppz

Integer array, dimension (2*max(1,m)). Support of eigenvectors.

inout
tryrac

If nonzero, try for relative accuracy.

out
work

Double precision workspace, dimension (lwork).

in
lwork

Dimension of work. -1 for query.

out
iwork

Integer workspace, dimension (liwork).

in
liwork

Dimension of iwork. -1 for query.

out
info

  • = 0: success. < 0: illegal argument. > 0: internal error.

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
);
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

in
jobz

‘N’: eigenvalues only; ‘V’: eigenvalues and eigenvectors.

in
range

‘A’: all; ‘V’: in (vl,vu]; ‘I’: il-th through iu-th.

in
n

The order of the matrix. n >= 0.

inout
D

Single precision array, dimension (n). Diagonal elements.

inout
E

Single precision array, dimension (n). Subdiagonal elements.

in
vl

Lower bound of interval (if range=’V’).

in
vu

Upper bound of interval (if range=’V’).

in
il

Index of smallest eigenvalue (0-based, if range=’I’).

in
iu

Index of largest eigenvalue (0-based, if range=’I’).

out
m

Total number of eigenvalues found.

out
W

Single precision array, dimension (n). Eigenvalues.

out
Z

Complex array, dimension (ldz, nzc). Eigenvectors.

in
ldz

Leading dimension of Z.

in
nzc

Number of eigenvector columns available. -1 for query.

out
isuppz

Integer array, dimension (2*max(1,m)). Support of eigenvectors.

inout
tryrac

If nonzero, try for relative accuracy.

out
work

Single precision workspace, dimension (lwork).

in
lwork

Dimension of work. -1 for query.

out
iwork

Integer workspace, dimension (liwork).

in
liwork

Dimension of iwork. -1 for query.

out
info

  • = 0: success. < 0: illegal argument. > 0: internal error.

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
);
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

in
jobz

‘N’: eigenvalues only; ‘V’: eigenvalues and eigenvectors.

in
range

‘A’: all; ‘V’: in (vl,vu]; ‘I’: il-th through iu-th.

in
n

The order of the matrix. n >= 0.

inout
D

Double precision array, dimension (n). Diagonal elements.

inout
E

Double precision array, dimension (n). Subdiagonal elements.

in
vl

Lower bound of interval (if range=’V’).

in
vu

Upper bound of interval (if range=’V’).

in
il

Index of smallest eigenvalue (0-based, if range=’I’).

in
iu

Index of largest eigenvalue (0-based, if range=’I’).

out
m

Total number of eigenvalues found.

out
W

Double precision array, dimension (n). Eigenvalues.

out
Z

Complex array, dimension (ldz, nzc). Eigenvectors.

in
ldz

Leading dimension of Z.

in
nzc

Number of eigenvector columns available. -1 for query.

out
isuppz

Integer array, dimension (2*max(1,m)). Support of eigenvectors.

inout
tryrac

If nonzero, try for relative accuracy.

out
work

Double precision workspace, dimension (lwork).

in
lwork

Dimension of work. -1 for query.

out
iwork

Integer workspace, dimension (liwork).

in
liwork

Dimension of iwork. -1 for query.

out
info

  • = 0: success. < 0: illegal argument. > 0: internal error.