cgehrd(3)
NAME
- CGEHRD - reduce a complex general matrix A to upper Hes
- senberg form H by a unitary similarity transformation
SYNOPSIS
SUBROUTINE CGEHRD( N, ILO, IHI, A, LDA, TAU, WORK, LWORK,
INFO )
INTEGER IHI, ILO, INFO, LDA, LWORK, N
COMPLEX A( LDA, * ), TAU( * ), WORK( * )
PURPOSE
- CGEHRD reduces a complex general matrix A to upper Hessen
- berg form H by a unitary similarity transformation: Q' * A * Q =
- H .
ARGUMENTS
- N (input) INTEGER
- The order of the matrix A. N >= 0.
- ILO (input) INTEGER
- IHI (input) INTEGER It is assumed that A is
- already upper triangular in rows and columns 1:ILO-1 and IHI+1:N.
- ILO and IHI are normally set by a previous call to CGEBAL; other
- wise they should be set to 1 and N respectively. See Further De
- tails.
- A (input/output) COMPLEX array, dimension (LDA,N)
- On entry, the N-by-N general matrix to be reduced.
- 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
- unitary matrix Q as a product of elementary reflectors. See Fur
- ther Details. LDA (input) INTEGER The leading dimension of
- the array A. LDA >= max(1,N).
- TAU (output) COMPLEX array, dimension (N-1)
- The scalar factors of the elementary reflectors
- (see Further Details). Elements 1:ILO-1 and IHI:N-1 of TAU are
- set to zero.
- WORK (workspace/output) COMPLEX array, dimension
- (LWORK)
- On exit, if INFO = 0, WORK(1) returns the optimal
- LWORK.
- LWORK (input) INTEGER
- The length of the array WORK. LWORK >= max(1,N).
- For optimum performance LWORK >= N*NB, where NB is the optimal
- blocksize.
- If LWORK = -1, then a workspace query is assumed;
- the routine only calculates the optimal size of the WORK array,
- returns this value as the first entry of the WORK array, and no
- error message related to LWORK is issued by XERBLA.
- INFO (output) INTEGER
- = 0: successful exit
< 0: if INFO = -i, the i-th argument had an ille
- gal value.
FURTHER DETAILS
- The matrix Q is represented as a product of (ihi-ilo) ele
- mentary reflectors
Q = H(ilo) H(ilo+1) . . . H(ihi-1).
- Each H(i) has the form
H(i) = I - tau * v * v'
- where tau is a complex scalar, and v is a complex vector
- with v(1:i) = 0, v(i+1) = 1 and v(ihi+1:n) = 0; v(i+2:ihi) is
- stored on exit in A(i+2:ihi,i), and tau in TAU(i).
- The contents of A are illustrated by the following exam
- ple, with n = 7, ilo = 2 and ihi = 6:
- on entry, on exit,
- ( a a a a a a a ) ( a a h h h h
- a ) ( a a a a a a ) ( a h h h h a
- ) ( a a a a a a ) ( h h h h h h )
- ( a a a a a a ) ( v2 h h h h h ) (
- a a a a a a ) ( v2 v3 h h h h ) ( a
- a a a a a ) ( v2 v3 v4 h h h ) (
- a ) ( a )
- where a denotes an element of the original matrix A, h de
- notes a modified element of the upper Hessenberg matrix H, and vi
- denotes an element of the vector defining H(i).
- LAPACK version 3.0 15 June 2000