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)#
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
invect= ‘N’: do not form Q = ‘V’: form Q = ‘U’: update a matrix X, by forming X*Q
inuplo= ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is stored
innThe order of the matrix A. n >= 0.
inkdThe number of super-diagonals (if uplo=’U’) or sub-diagonals (if uplo=’L’). kd >= 0.
inoutABComplex*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.
inldabThe leading dimension of AB. ldab >= kd+1.
outDSingle precision array, dimension (n). The diagonal elements of T.
outESingle precision array, dimension (n-1). The off-diagonal elements of T.
inoutQComplex*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.
inldqThe leading dimension of Q. ldq >= 1, and ldq >= n if vect=’V’ or ‘U’.
outworkComplex*16 workspace array, dimension (n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
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
);
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)#
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
invect= ‘N’: do not form Q = ‘V’: form Q = ‘U’: update a matrix X, by forming X*Q
inuplo= ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is stored
innThe order of the matrix A. n >= 0.
inkdThe number of super-diagonals (if uplo=’U’) or sub-diagonals (if uplo=’L’). kd >= 0.
inoutABComplex*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.
inldabThe leading dimension of AB. ldab >= kd+1.
outDDouble precision array, dimension (n). The diagonal elements of T.
outEDouble precision array, dimension (n-1). The off-diagonal elements of T.
inoutQComplex*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.
inldqThe leading dimension of Q. ldq >= 1, and ldq >= n if vect=’V’ or ‘U’.
outworkComplex*16 workspace array, dimension (n).
outinfo= 0: successful exit
< 0: if info = -i, the i-th argument had an illegal value
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
);