sytd2#

Functions

void ssytd2(
    const char*          uplo,
    const INT            n,
          f32*  restrict A,
    const INT            lda,
          f32*  restrict D,
          f32*  restrict E,
          f32*  restrict tau,
          INT*           info
);
void ssytd2(const char *uplo, const INT n, f32 *restrict A, const INT lda, f32 *restrict D, f32 *restrict E, f32 *restrict tau, INT *info)#

SSYTD2 reduces a real symmetric matrix A 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 triangular = ‘L’: Lower triangular

in
n

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

inout
A

Double precision array, dimension (lda, n). On entry, the symmetric matrix A. If uplo = ‘U’, the leading n-by-n upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If uplo = ‘L’, the leading n-by-n lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced. 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.

in
lda

The leading dimension of the array A. lda >= max(1, n).

out
D

Double precision array, dimension (n). The diagonal elements of the tridiagonal matrix T: D[i] = A[i + i*lda].

out
E

Double precision array, dimension (n-1). The off-diagonal elements of the tridiagonal matrix T: E[i] = A[i + (i+1)*lda] if uplo = ‘U’, E[i] = A[(i+1) + i*lda] if uplo = ‘L’.

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 dsytd2(
    const char*          uplo,
    const INT            n,
          f64*  restrict A,
    const INT            lda,
          f64*  restrict D,
          f64*  restrict E,
          f64*  restrict tau,
          INT*           info
);
void dsytd2(const char *uplo, const INT n, f64 *restrict A, const INT lda, f64 *restrict D, f64 *restrict E, f64 *restrict tau, INT *info)#

DSYTD2 reduces a real symmetric matrix A 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 triangular = ‘L’: Lower triangular

in
n

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

inout
A

Double precision array, dimension (lda, n). On entry, the symmetric matrix A. If uplo = ‘U’, the leading n-by-n upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If uplo = ‘L’, the leading n-by-n lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced. 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.

in
lda

The leading dimension of the array A. lda >= max(1, n).

out
D

Double precision array, dimension (n). The diagonal elements of the tridiagonal matrix T: D[i] = A[i + i*lda].

out
E

Double precision array, dimension (n-1). The off-diagonal elements of the tridiagonal matrix T: E[i] = A[i + (i+1)*lda] if uplo = ‘U’, E[i] = A[(i+1) + i*lda] if uplo = ‘L’.

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.