Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?gehd2
Reduces a general square matrix to upper Hessenberg form using an unblocked algorithm.
Syntax
call sgehd2(n, ilo, ihi, a, lda, tau, work, info)
call dgehd2(n, ilo, ihi, a, lda, tau, work, info)
call cgehd2(n, ilo, ihi, a, lda, tau, work, info)
call zgehd2(n, ilo, ihi, a, lda, tau, work, info)
Include Files
mkl.fi
Description
The routine reduces a real/complex general matrix A to upper Hessenberg form H by an orthogonal or unitary similarity transformation Q^{T}*A*Q = H (for real flavors) or Q^{H}*A*Q = H (for complex flavors).
The routine does not form the matrix Q explicitly. Instead, Q is represented as a product of elementary reflectors .
Input Parameters
- n
-
INTEGER. Specifies the order of the matrix A. The value of n must be at least zero.
- ilo , ihi
-
INTEGER . It is assumed that A is already upper triangular in rows and columns 1:ilo -1 and ihi+1:n . If A has been output by ?gebal , then ilo and ihi must contain the values returned by that routine. Otherwise they should be set to ilo = 1 and ihi = n . Constraint: 1 ≤ ilo ≤ ihi ≤ max(1, n) .
- a , work
-
REAL for sgehd2 DOUBLE PRECISION for dgehd2 COMPLEX for cgehd2 DOUBLE COMPLEX for zgehd2 . Arrays: a (lda,*) contains the n -by- n matrix A to be reduced. The second dimension of a must be at least max(1, n) . work(n) is a workspace array.
- lda
-
INTEGER . The leading dimension of a ; at least max(1, n) .
Output Parameters
- a
-
On exit, the upper triangle and the first subdiagonal of A are overwritten with the upper Hessenberg matrix H and the elements below the first subdiagonal, with the array tau , represent the orthogonal/unitary matrix Q as a product of elementary reflectors. See Application Notes below.
- tau
-
REAL for sgehd2 DOUBLE PRECISION for dgehd2 COMPLEX for cgehd2 DOUBLE COMPLEX for zgehd2 . Array, DIMENSION at least max (1, n-1) . Contains the scalar factors of elementary reflectors. See Application Notes below.
info
INTEGER .
If info = 0 , the execution is successful.
If info = - i , the i -th parameter had an illegal value.
Application Notes
The matrix \(Q\) is represented as a product of ( ihi - ilo ) elementary reflectors
\(Q = H(\text{ilo}) H(\text{ilo}+1) \cdots H(\text{ihi}-1)\)
Each \(H\) (i) has the form
\(H(i) = I - \tau v v^{T}\) for real flavors, or
\(H(i) = I - \tau v v^{H}\) for complex flavors
where tau is a real/complex scalar, and v is a real/complex vector with v(1:i) = 0 , v(i+1) = 1 and v(ihi+1:n) = 0 .
On exit, v(i+2:ihi) is stored in a(i+2:ihi, i) and tau in tau(i) .
The contents of a are illustrated by the following example, with n = 7 , ilo = 2 and ihi = 6 :
where a denotes an element of the original matrix \(A\) , h denotes a modified element of the upper Hessenberg matrix \(H\) , and vi denotes an element of the vector defining \(H\) (i).