ZLAVHE

   Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
   November 2006

Purpose

   ZLAVHE  performs one of the matrix-vector operations
      x := A*x  or  x := A^H*x,
   where x is an N element vector and  A is one of the factors
   from the symmetric factorization computed by ZHETRF.
   ZHETRF produces a factorization of the form
        U * D * U^H     or     L * D * L^H,
   where U (or L) is a product of permutation and unit upper (lower)
   triangular matrices, U^H (or L^H) is the conjugate transpose of
   U (or L), and D is Hermitian and block diagonal with 1 x 1 and
   2 x 2 diagonal blocks.  The multipliers for the transformations
   and the upper or lower triangular parts of the diagonal blocks
   are stored in the leading upper or lower triangle of the 2-D
   array A.

   If TRANS = 'N' or 'n', ZLAVHE multiplies either by U or U * D
   (or L or L * D).
   If TRANS = 'C' or 'c', ZLAVHE multiplies either by U^H or D * U^H
   (or L^H or D * L^H ).

Arguments

UPLO
CHARACTER*1
On entry, UPLO specifies whether the triangular matrix
stored in A is upper or lower triangular.
   UPLO = 'U' or 'u'   The matrix is upper triangular.
   UPLO = 'L' or 'l'   The matrix is lower triangular.
Unchanged on exit.
TRANS
CHARACTER*1
On entry, TRANS specifies the operation to be performed as
follows:
   TRANS = 'N' or 'n'   x := A*x.
   TRANS = 'C' or 'c'   x := A^H*x.
Unchanged on exit.
DIAG
CHARACTER*1
On entry, DIAG specifies whether the diagonal blocks are
assumed to be unit matrices:
   DIAG = 'U' or 'u'   Diagonal blocks are unit matrices.
   DIAG = 'N' or 'n'   Diagonal blocks are non-unit.
Unchanged on exit.
N
INTEGER
On entry, N specifies the order of the matrix A.
N must be at least zero.
Unchanged on exit.
NRHS
INTEGER
On entry, NRHS specifies the number of right hand sides,
i.e., the number of vectors x to be multiplied by A.
NRHS must be at least zero.
Unchanged on exit.
A
COMPLEX*16 array, dimension( LDA, N )
On entry, A contains a block diagonal matrix and the
multipliers of the transformations used to obtain it,
stored as a 2-D triangular matrix.
Unchanged on exit.
LDA
INTEGER
On entry, LDA specifies the first dimension of A as declared
in the calling ( sub ) program. LDA must be at least
max( 1, N ).
Unchanged on exit.
IPIV
INTEGER array, dimension( N )
On entry, IPIV contains the vector of pivot indices as
determined by ZSYTRF or ZHETRF.
If IPIV( K ) = K, no interchange was done.
If IPIV( K ) <> K but IPIV( K ) > 0, then row K was inter-
changed with row IPIV( K ) and a 1 x 1 pivot block was used.
If IPIV( K ) < 0 and UPLO = 'U', then row K-1 was exchanged
with row | IPIV( K ) | and a 2 x 2 pivot block was used.
If IPIV( K ) < 0 and UPLO = 'L', then row K+1 was exchanged
with row | IPIV( K ) | and a 2 x 2 pivot block was used.
B
COMPLEX*16 array, dimension( LDB, NRHS )
On entry, B contains NRHS vectors of length N.
On exit, B is overwritten with the product A * B.
LDB
INTEGER
On entry, LDB contains the leading dimension of B as
declared in the calling program.  LDB must be at least
max( 1, N ).
Unchanged on exit.
INFO
INTEGER
INFO is the error flag.
On exit, a value of 0 indicates a successful exit.
A negative value, say -K, indicates that the K-th argument
has an illegal value.

Call Graph

Caller Graph