hbtrd#

Functions

void chbtrd(
    const char*          vect,
    const char*          uplo,
    const INT            n,
    const INT            kd,
          c64*  restrict AB,
    const INT            ldab,
          f32*  restrict D,
          f32*  restrict E,
          c64*  restrict Q,
    const INT            ldq,
          c64*  restrict work,
          INT*           info
);
void chbtrd(const char *vect, const char *uplo, const INT n, const INT kd, c64 *restrict AB, const INT ldab, f32 *restrict D, f32 *restrict E, c64 *restrict Q, const INT ldq, c64 *restrict work, INT *info)#

CHBTRD reduces a complex Hermitian band matrix A to real symmetric tridiagonal form T by a unitary similarity transformation: Q**H * A * Q = T.

Parameters

in
vect

= ‘N’: do not form Q = ‘V’: form Q = ‘U’: update a matrix X, by forming X*Q

in
uplo

= ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is stored

in
n

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

in
kd

The number of super-diagonals (if uplo=’U’) or sub-diagonals (if uplo=’L’). kd >= 0.

inout
AB

Complex*16 array, dimension (ldab, n). On entry, the upper or lower triangle of the Hermitian band matrix A, stored in the first kd+1 rows. On exit, the diagonal elements are overwritten by the diagonal elements of T; if kd > 0, the elements on the first superdiagonal (if uplo=’U’) or subdiagonal (if uplo=’L’) are overwritten by the off-diagonal elements of T; the rest is overwritten by values generated during the reduction.

in
ldab

The leading dimension of AB. ldab >= kd+1.

out
D

Single precision array, dimension (n). The diagonal elements of T.

out
E

Single precision array, dimension (n-1). The off-diagonal elements of T.

inout
Q

Complex*16 array, dimension (ldq, n). On entry, if vect=’U’, an n-by-n matrix X. On exit, if vect=’V’, the unitary Q. If vect=’U’, the product X*Q. If vect=’N’, not referenced.

in
ldq

The leading dimension of Q. ldq >= 1, and ldq >= n if vect=’V’ or ‘U’.

out
work

Complex*16 workspace array, dimension (n).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value

Functions

void zhbtrd(
    const char*          vect,
    const char*          uplo,
    const INT            n,
    const INT            kd,
          c128* restrict AB,
    const INT            ldab,
          f64*  restrict D,
          f64*  restrict E,
          c128* restrict Q,
    const INT            ldq,
          c128* restrict work,
          INT*           info
);
void zhbtrd(const char *vect, const char *uplo, const INT n, const INT kd, c128 *restrict AB, const INT ldab, f64 *restrict D, f64 *restrict E, c128 *restrict Q, const INT ldq, c128 *restrict work, INT *info)#

ZHBTRD reduces a complex Hermitian band matrix A to real symmetric tridiagonal form T by a unitary similarity transformation: Q**H * A * Q = T.

Parameters

in
vect

= ‘N’: do not form Q = ‘V’: form Q = ‘U’: update a matrix X, by forming X*Q

in
uplo

= ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is stored

in
n

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

in
kd

The number of super-diagonals (if uplo=’U’) or sub-diagonals (if uplo=’L’). kd >= 0.

inout
AB

Complex*16 array, dimension (ldab, n). On entry, the upper or lower triangle of the Hermitian band matrix A, stored in the first kd+1 rows. On exit, the diagonal elements are overwritten by the diagonal elements of T; if kd > 0, the elements on the first superdiagonal (if uplo=’U’) or subdiagonal (if uplo=’L’) are overwritten by the off-diagonal elements of T; the rest is overwritten by values generated during the reduction.

in
ldab

The leading dimension of AB. ldab >= kd+1.

out
D

Double precision array, dimension (n). The diagonal elements of T.

out
E

Double precision array, dimension (n-1). The off-diagonal elements of T.

inout
Q

Complex*16 array, dimension (ldq, n). On entry, if vect=’U’, an n-by-n matrix X. On exit, if vect=’V’, the unitary Q. If vect=’U’, the product X*Q. If vect=’N’, not referenced.

in
ldq

The leading dimension of Q. ldq >= 1, and ldq >= n if vect=’V’ or ‘U’.

out
work

Complex*16 workspace array, dimension (n).

out
info

  • = 0: successful exit

  • < 0: if info = -i, the i-th argument had an illegal value