sptrd#

Functions

void ssptrd(
    const char*          uplo,
    const INT            n,
          f32*  restrict AP,
          f32*  restrict D,
          f32*  restrict E,
          f32*  restrict tau,
          INT*           info
);
void ssptrd(const char *uplo, const INT n, f32 *restrict AP, f32 *restrict D, f32 *restrict E, f32 *restrict tau, INT *info)#

SSPTRD reduces a real symmetric matrix A stored in packed form to symmetric tridiagonal form T by an orthogonal similarity transformation: Q**T * A * Q = T.

Parameters

in
uplo

Specifies whether the upper or lower triangular part of the symmetric matrix A is stored: = ‘U’: Upper triangle of A is stored; = ‘L’: Lower triangle of A is stored.

in
n

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

inout
AP

Double precision array, dimension (n*(n+1)/2). On entry, the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array. On exit, if uplo = ‘U’, the diagonal and first superdiagonal of A are overwritten by the corresponding elements of the tridiagonal matrix T, and the elements above the first superdiagonal, with the array tau, represent the orthogonal matrix Q as a product of elementary reflectors; if uplo = ‘L’, the diagonal and first subdiagonal of A are overwritten by the corresponding elements of the tridiagonal matrix T, and the elements below the first subdiagonal, with the array tau, represent the orthogonal matrix Q as a product of elementary reflectors.

out
D

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

out
E

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

out
tau

Double precision array, dimension (n-1). The scalar factors of the elementary reflectors.

out
info

  • = 0: successful exit

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

Functions

void dsptrd(
    const char*          uplo,
    const INT            n,
          f64*  restrict AP,
          f64*  restrict D,
          f64*  restrict E,
          f64*  restrict tau,
          INT*           info
);
void dsptrd(const char *uplo, const INT n, f64 *restrict AP, f64 *restrict D, f64 *restrict E, f64 *restrict tau, INT *info)#

DSPTRD reduces a real symmetric matrix A stored in packed form to symmetric tridiagonal form T by an orthogonal similarity transformation: Q**T * A * Q = T.

Parameters

in
uplo

Specifies whether the upper or lower triangular part of the symmetric matrix A is stored: = ‘U’: Upper triangle of A is stored; = ‘L’: Lower triangle of A is stored.

in
n

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

inout
AP

Double precision array, dimension (n*(n+1)/2). On entry, the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array. On exit, if uplo = ‘U’, the diagonal and first superdiagonal of A are overwritten by the corresponding elements of the tridiagonal matrix T, and the elements above the first superdiagonal, with the array tau, represent the orthogonal matrix Q as a product of elementary reflectors; if uplo = ‘L’, the diagonal and first subdiagonal of A are overwritten by the corresponding elements of the tridiagonal matrix T, and the elements below the first subdiagonal, with the array tau, represent the orthogonal matrix Q as a product of elementary reflectors.

out
D

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

out
E

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

out
tau

Double precision array, dimension (n-1). The scalar factors of the elementary reflectors.

out
info

  • = 0: successful exit

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