hbevx_2stage#
Functions
-
void chbevx_2stage(const char *jobz, const char *range, const char *uplo, const INT n, const INT kd, c64 *restrict AB, const INT ldab, c64 *restrict Q, const INT ldq, const f32 vl, const f32 vu, const INT il, const INT iu, const f32 abstol, INT *m, f32 *restrict W, c64 *restrict Z, const INT ldz, c64 *restrict work, const INT lwork, f32 *restrict rwork, INT *restrict iwork, INT *restrict ifail, INT *info)#
CHBEVX_2STAGE computes selected eigenvalues and, optionally, eigenvectors of a complex Hermitian band matrix A using the 2stage technique for the reduction to tridiagonal.
Eigenvalues and eigenvectors can be selected by specifying either a range of values or a range of indices for the desired eigenvalues.
Parameters
injobz= ‘N’: eigenvalues only; = ‘V’: not available in this release.
inrange= ‘A’: all eigenvalues; = ‘V’: eigenvalues in (vl,vu]; = ‘I’: il-th through iu-th eigenvalues.
inuplo= ‘U’: upper triangle stored; = ‘L’: lower triangle stored
innThe order of the matrix A. n >= 0.
inkdNumber of super/sub-diagonals. kd >= 0.
inoutABComplex band matrix, overwritten on exit.
inldabLeading dimension of AB. ldab >= kd+1.
outQUnitary matrix if jobz=’V’; not referenced if jobz=’N’.
inldqLeading dimension of Q. ldq >= 1, or ldq >= n if jobz=’V’.
invlLower bound if range=’V’.
invuUpper bound if range=’V’. vl < vu.
inilSmallest eigenvalue index if range=’I’.
iniuLargest eigenvalue index if range=’I’.
inabstolAbsolute error tolerance for eigenvalues.
outmNumber of eigenvalues found.
outWSelected eigenvalues in ascending order.
outZEigenvectors if jobz=’V’; not referenced if jobz=’N’.
inldzLeading dimension of Z. ldz >= 1, or ldz >= n if jobz=’V’.
outworkComplex workspace. On exit, work[0] = optimal LWORK.
inlworkLength of work. If -1, workspace query.
outrworkSingle precision workspace, dimension (7*n).
outiworkInteger workspace, dimension (5*n).
outifailIndices of eigenvectors that failed to converge.
outinfo= 0: success; < 0: illegal argument; > 0: convergence failure.
void chbevx_2stage(
const char* jobz,
const char* range,
const char* uplo,
const INT n,
const INT kd,
c64* restrict AB,
const INT ldab,
c64* restrict Q,
const INT ldq,
const f32 vl,
const f32 vu,
const INT il,
const INT iu,
const f32 abstol,
INT* m,
f32* restrict W,
c64* restrict Z,
const INT ldz,
c64* restrict work,
const INT lwork,
f32* restrict rwork,
INT* restrict iwork,
INT* restrict ifail,
INT* info
);
Functions
-
void zhbevx_2stage(const char *jobz, const char *range, const char *uplo, const INT n, const INT kd, c128 *restrict AB, const INT ldab, c128 *restrict Q, const INT ldq, const f64 vl, const f64 vu, const INT il, const INT iu, const f64 abstol, INT *m, f64 *restrict W, c128 *restrict Z, const INT ldz, c128 *restrict work, const INT lwork, f64 *restrict rwork, INT *restrict iwork, INT *restrict ifail, INT *info)#
ZHBEVX_2STAGE computes selected eigenvalues and, optionally, eigenvectors of a complex Hermitian band matrix A using the 2stage technique for the reduction to tridiagonal.
Eigenvalues and eigenvectors can be selected by specifying either a range of values or a range of indices for the desired eigenvalues.
Parameters
injobz= ‘N’: eigenvalues only; = ‘V’: not available in this release.
inrange= ‘A’: all eigenvalues; = ‘V’: eigenvalues in (vl,vu]; = ‘I’: il-th through iu-th eigenvalues.
inuplo= ‘U’: upper triangle stored; = ‘L’: lower triangle stored
innThe order of the matrix A. n >= 0.
inkdNumber of super/sub-diagonals. kd >= 0.
inoutABComplex band matrix, overwritten on exit.
inldabLeading dimension of AB. ldab >= kd+1.
outQUnitary matrix if jobz=’V’; not referenced if jobz=’N’.
inldqLeading dimension of Q. ldq >= 1, or ldq >= n if jobz=’V’.
invlLower bound if range=’V’.
invuUpper bound if range=’V’. vl < vu.
inilSmallest eigenvalue index if range=’I’.
iniuLargest eigenvalue index if range=’I’.
inabstolAbsolute error tolerance for eigenvalues.
outmNumber of eigenvalues found.
outWSelected eigenvalues in ascending order.
outZEigenvectors if jobz=’V’; not referenced if jobz=’N’.
inldzLeading dimension of Z. ldz >= 1, or ldz >= n if jobz=’V’.
outworkComplex workspace. On exit, work[0] = optimal LWORK.
inlworkLength of work. If -1, workspace query.
outrworkDouble precision workspace, dimension (7*n).
outiworkInteger workspace, dimension (5*n).
outifailIndices of eigenvectors that failed to converge.
outinfo= 0: success; < 0: illegal argument; > 0: convergence failure.
void zhbevx_2stage(
const char* jobz,
const char* range,
const char* uplo,
const INT n,
const INT kd,
c128* restrict AB,
const INT ldab,
c128* restrict Q,
const INT ldq,
const f64 vl,
const f64 vu,
const INT il,
const INT iu,
const f64 abstol,
INT* m,
f64* restrict W,
c128* restrict Z,
const INT ldz,
c128* restrict work,
const INT lwork,
f64* restrict rwork,
INT* restrict iwork,
INT* restrict ifail,
INT* info
);