hbev_2stage#

Functions

void chbev_2stage(
    const char*          jobz,
    const char*          uplo,
    const INT            n,
    const INT            kd,
          c64*  restrict AB,
    const INT            ldab,
          f32*  restrict W,
          c64*  restrict Z,
    const INT            ldz,
          c64*  restrict work,
    const INT            lwork,
          f32*  restrict rwork,
          INT*           info
);
void chbev_2stage(const char *jobz, const char *uplo, const INT n, const INT kd, c64 *restrict AB, const INT ldab, f32 *restrict W, c64 *restrict Z, const INT ldz, c64 *restrict work, const INT lwork, f32 *restrict rwork, INT *info)#

CHBEV_2STAGE computes all the eigenvalues and, optionally, eigenvectors of a complex Hermitian band matrix A using the 2stage technique for the reduction to tridiagonal.

Parameters

in
jobz

= ‘N’: eigenvalues only; = ‘V’: not available in this release.

in
uplo

= ‘U’: upper triangle stored; = ‘L’: lower triangle stored.

in
n

The order of the matrix A. n >= 0.

in
kd

Number of super/sub-diagonals. kd >= 0.

inout
AB

Complex*16 array, dimension (ldab, n). Band matrix, overwritten on exit.

in
ldab

Leading dimension of AB. ldab >= kd+1.

out
W

Single precision array, dimension (n). Eigenvalues in ascending order.

out
Z

Complex*16 array, dimension (ldz, n). Eigenvectors if jobz=’V’; not referenced if jobz=’N’.

in
ldz

Leading dimension of Z. ldz >= 1, or ldz >= n if jobz=’V’.

out
work

Complex*16 workspace. On exit, work[0] = optimal LWORK.

in
lwork

Length of work. If -1, workspace query.

out
rwork

Single precision array, dimension (max(1, 3*n-2)).

out
info

  • = 0: success; < 0: illegal argument; > 0: convergence failure.

Functions

void zhbev_2stage(
    const char*          jobz,
    const char*          uplo,
    const INT            n,
    const INT            kd,
          c128* restrict AB,
    const INT            ldab,
          f64*  restrict W,
          c128* restrict Z,
    const INT            ldz,
          c128* restrict work,
    const INT            lwork,
          f64*  restrict rwork,
          INT*           info
);
void zhbev_2stage(const char *jobz, const char *uplo, const INT n, const INT kd, c128 *restrict AB, const INT ldab, f64 *restrict W, c128 *restrict Z, const INT ldz, c128 *restrict work, const INT lwork, f64 *restrict rwork, INT *info)#

ZHBEV_2STAGE computes all the eigenvalues and, optionally, eigenvectors of a complex Hermitian band matrix A using the 2stage technique for the reduction to tridiagonal.

Parameters

in
jobz

= ‘N’: eigenvalues only; = ‘V’: not available in this release.

in
uplo

= ‘U’: upper triangle stored; = ‘L’: lower triangle stored.

in
n

The order of the matrix A. n >= 0.

in
kd

Number of super/sub-diagonals. kd >= 0.

inout
AB

Complex*16 array, dimension (ldab, n). Band matrix, overwritten on exit.

in
ldab

Leading dimension of AB. ldab >= kd+1.

out
W

Double precision array, dimension (n). Eigenvalues in ascending order.

out
Z

Complex*16 array, dimension (ldz, n). Eigenvectors if jobz=’V’; not referenced if jobz=’N’.

in
ldz

Leading dimension of Z. ldz >= 1, or ldz >= n if jobz=’V’.

out
work

Complex*16 workspace. On exit, work[0] = optimal LWORK.

in
lwork

Length of work. If -1, workspace query.

out
rwork

Double precision array, dimension (max(1, 3*n-2)).

out
info

  • = 0: success; < 0: illegal argument; > 0: convergence failure.