SRC/zgehrd.f(3)

NAME
SRC/zgehrd.f

SYNOPSIS

  Functions/Subroutines
subroutine zgehrd (n, ilo, ihi, a, lda, tau, work, lwork, info)
ZGEHRD

Function/Subroutine Documentation

  subroutine zgehrd (integer n, integer ilo, integer ihi, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( * ) tau, complex*16, dimension( * ) work, integer lwork, integer info)

ZGEHRD

Purpose:

    !>
    !> ZGEHRD reduces a complex general matrix A to upper Hessenberg form H by
    !> an unitary similarity transformation:  Q**H * A * Q = H .
    !>

Parameters
    N

    !>          N is INTEGER
    !>          The order of the matrix A.  N >= 0.
    !>

    ILO

    !>          ILO is INTEGER
    !>

    IHI

    !>          IHI is 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 ZGEBAL; otherwise they should be
    !>          set to 1 and N respectively. See Further Details.
    !>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
    !>

    A

    !>          A is COMPLEX*16 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 Further Details.
    !>

    LDA

    !>          LDA is INTEGER
    !>          The leading dimension of the array A.  LDA >= max(1,N).
    !>

    TAU

    !>          TAU is COMPLEX*16 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

    !>          WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
    !>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
    !>

    LWORK

    !>          LWORK is INTEGER
    !>          The length of the array WORK.  LWORK >= max(1,N).
    !>          For good performance, LWORK should generally be larger.
    !>
    !>          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

    !>          INFO is INTEGER
    !>          = 0:  successful exit
    !>          < 0:  if INFO = -i, the i-th argument had an illegal value.
    !>

Author
    Univ. of Tennessee

    Univ. of California Berkeley

    Univ. of Colorado Denver

    NAG Ltd.

Further Details:

    !>
    !>  The matrix Q is represented as a product of (ihi-ilo) elementary
    !>  reflectors
    !>
    !>     Q = H(ilo) H(ilo+1) . . . H(ihi-1).
    !>
    !>  Each H(i) has the form
    !>
    !>     H(i) = I - tau * v * v**H
    !>
    !>  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 example, 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 denotes a
    !>  modified element of the upper Hessenberg matrix H, and vi denotes an
    !>  element of the vector defining H(i).
    !>
    !>  This file is a slight modification of LAPACK-3.0's ZGEHRD
    !>  subroutine incorporating improvements proposed by Quintana-Orti and
    !>  Van de Geijn (2006). (See ZLAHR2.)
    !>

Definition at line 166 of file zgehrd.f.

Author

Generated automatically by Doxygen for LAPACK from the source code.