sbtrd#

Functions

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

SSBTRD reduces a real symmetric band matrix A to symmetric tridiagonal form T by an orthogonal similarity transformation: Q**T * 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

The banded matrix A. Array of dimension (ldab, n). On exit, the diagonal and off-diagonal elements are overwritten by the tridiagonal matrix T.

in
ldab

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

out
D

The diagonal elements of T. Array of dimension (n).

out
E

The off-diagonal elements of T. Array of dimension (n-1).

inout
Q

On entry, if vect=’U’, an n-by-n matrix X. On exit, if vect=’V’, the orthogonal Q. If vect=’U’, the product X*Q. Array of dimension (ldq, n).

in
ldq

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

out
work

Workspace array of dimension (n).

out
info

  • = 0: successful exit

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

Functions

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

DSBTRD reduces a real symmetric band matrix A to symmetric tridiagonal form T by an orthogonal similarity transformation: Q**T * 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

The banded matrix A. Array of dimension (ldab, n). On exit, the diagonal and off-diagonal elements are overwritten by the tridiagonal matrix T.

in
ldab

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

out
D

The diagonal elements of T. Array of dimension (n).

out
E

The off-diagonal elements of T. Array of dimension (n-1).

inout
Q

On entry, if vect=’U’, an n-by-n matrix X. On exit, if vect=’V’, the orthogonal Q. If vect=’U’, the product X*Q. Array of dimension (ldq, n).

in
ldq

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

out
work

Workspace array of dimension (n).

out
info

  • = 0: successful exit

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