Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 10/31/2024
Public
Document Table of Contents

?sytd2/?hetd2

Reduces a symmetric/Hermitian matrix to real symmetric tridiagonal form by an orthogonal/unitary similarity transformation(unblocked algorithm).

Syntax

call ssytd2( uplo, n, a, lda, d, e, tau, info )

call dsytd2( uplo, n, a, lda, d, e, tau, info )

call chetd2( uplo, n, a, lda, d, e, tau, info )

call zhetd2( uplo, n, a, lda, d, e, tau, info )

Include Files

  • mkl.fi

Description

The routine ?sytd2/?hetd2 reduces a real symmetric/complex Hermitian matrix A to real symmetric tridiagonal form T by an orthogonal/unitary similarity transformation: QT*A*Q = T (QH*A*Q = T ).

Input Parameters

uplo

CHARACTER*1.

Specifies whether the upper or lower triangular part of the symmetric/Hermitian matrix A is stored:

= 'U': upper triangular

= 'L': lower triangular

n

INTEGER. The order of the matrix A. n 0.

a

REAL for ssytd2

DOUBLE PRECISION for dsytd2

COMPLEX for chetd2

DOUBLE COMPLEX for zhetd2.

Array, DIMENSION (lda, n).

On entry, the symmetric/Hermitian 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.

lda

INTEGER. The leading dimension of the array a. lda max(1,n).

Output Parameters

a

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/unitary 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/unitary matrix Q as a product of elementary reflectors.

d

REAL for ssytd2/chetd2

DOUBLE PRECISION for dsytd2/zhetd2.

Array, DIMENSION (n).

The diagonal elements of the tridiagonal matrix T:

d(i) = a(i,i).

e

REAL for ssytd2/chetd2

DOUBLE PRECISION for dsytd2/zhetd2.

Array, DIMENSION (n-1).

The off-diagonal elements of the tridiagonal matrix T:

e(i) = a(i,i+1) if uplo = 'U',

e(i) = a(i+1,i) if uplo = 'L'.

tau

REAL for ssytd2

DOUBLE PRECISION for dsytd2

COMPLEX for chetd2

DOUBLE COMPLEX for zhetd2.

Array, DIMENSION (n).

The first n-1 elements contain scalar factors of the elementary reflectors. tau(n) is used as workspace.

info

INTEGER.

= 0: successful exit

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