Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?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: Q^{T}*A*Q = T ( Q^{H}*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. Specifies the order of the matrix A. The value of n must be at least zero.
- 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.