Homepage > Man Pages > Category > Subroutines
Homepage > Man Pages > Name > Z

# zher2k

## man page of zher2k

### zher2k: perform one of the hermitian rank 2k operations C := alpha*A*conjg( B' ) + conjg( alpha )*B*conjg( A' ) + beta*C,

```NAME
ZHER2K  -  perform  one  of  the  hermitian  rank  2k operations   C :=
alpha*A*conjg( B' ) + conjg( alpha )*B*conjg( A' ) + beta*C,

SYNOPSIS
SUBROUTINE ZHER2K( UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB,  BETA,  C,
LDC )

CHARACTER*1    UPLO, TRANS

INTEGER        N, K, LDA, LDB, LDC

DOUBLE         PRECISION BETA

COMPLEX*16     ALPHA

COMPLEX*16     A( LDA, * ), B( LDB, * ), C( LDC, * )

PURPOSE
ZHER2K  performs one of the hermitian rank 2k operations

or

C := alpha*conjg( A' )*B + conjg( alpha )*conjg( B' )*A + beta*C,

where   alpha  and beta  are scalars with  beta  real,  C is an  n by n
hermitian matrix and  A and B  are  n by k matrices in the  first  case
and  k by n  matrices in the second case.

PARAMETERS
UPLO   - CHARACTER*1.
On   entry,    UPLO   specifies   whether  the  upper  or  lower
triangular  part  of the  array  C  is  to  be   referenced   as
follows:

UPLO  = 'U' or 'u'   Only the  upper triangular part of  C is to
be referenced.

UPLO = 'L' or 'l'   Only the  lower triangular part of  C is  to
be referenced.

Unchanged on exit.

TRANS  - CHARACTER*1.
On  entry,   TRANS   specifies  the operation to be performed as
follows:

TRANS = 'N' or 'n'    C := alpha*A*conjg( B' )          + conjg(
alpha )*B*conjg( A' ) + beta*C.

TRANS = 'C' or 'c'    C := alpha*conjg( A' )*B          + conjg(
alpha )*conjg( B' )*A + beta*C.

Unchanged on exit.

N      - INTEGER.
On entry,  N specifies the order of the matrix C.  N must be  at
least zero.  Unchanged on exit.

K      - INTEGER.
On  entry with  TRANS = 'N' or 'n',  K  specifies  the number of
columns  of the  matrices  A and B,  and on  entry  with TRANS =
'C' or 'c',  K  specifies  the number of rows of the matrices  A
and B.  K must be at least zero.  Unchanged on exit.

ALPHA  - COMPLEX*16      .
On entry, ALPHA specifies the scalar alpha.  Unchanged on exit.

A      - COMPLEX*16       array of DIMENSION ( LDA, ka ), where ka is
k  when  TRANS = 'N' or 'n',   and  is   n   otherwise.   Before
entry  with   TRANS  = 'N' or 'n',  the  leading  n by k part of
the array  A  must contain the matrix  A,  otherwise the leading
k  by  n   part  of  the  array   A  must contain  the matrix A.
Unchanged on exit.

LDA    - INTEGER.
On entry, LDA specifies the first dimension of A as declared  in
the   calling   (sub)   program.   When  TRANS = 'N' or 'n' then
LDA must be at least  max( 1, n ), otherwise   LDA  must  be  at
least  max( 1, k ).  Unchanged on exit.

B      - COMPLEX*16       array of DIMENSION ( LDB, kb ), where kb is
k   when   TRANS  =  'N'  or 'n',  and is  n  otherwise.  Before
entry with  TRANS = 'N' or 'n',  the  leading  n by  k  part  of
the array  B  must contain the matrix  B,  otherwise the leading
k by n  part of the  array   B   must  contain   the  matrix  B.
Unchanged on exit.

LDB    - INTEGER.
On  entry, LDB specifies the first dimension of B as declared in
the  calling  (sub)  program.   When  TRANS = 'N'  or  'n'  then
LDB  must  be  at  least  max( 1, n ), otherwise  LDB must be at
least  max( 1, k ).  Unchanged on exit.

BETA   - DOUBLE PRECISION.
On entry, BETA specifies the scalar beta.  Unchanged on exit.

C      - COMPLEX*16       array of DIMENSION ( LDC, n ).
Before entry  with  UPLO = 'U' or 'u',   the  leading   n  by  n
upper  triangular  part  of  the  array C must contain the upper
triangular part  of the   hermitian  matrix   and  the  strictly
lower  triangular  part  of  C  is not referenced.  On exit, the
upper triangular part of the array   C  is  overwritten  by  the
upper triangular part of the updated matrix.  Before entry  with
UPLO = 'L' or 'l',  the leading  n by n lower triangular part of
the  array  C  must  contain  the  lower triangular part  of the
hermitian matrix  and the strictly upper triangular part of C is
not referenced.  On exit, the lower triangular part of the array
C is overwritten by the lower triangular  part  of  the  updated
matrix.   Note that the imaginary parts of the diagonal elements
need not be set,  they are assumed to be zero,  and on exit they
are set to zero.

LDC    - INTEGER.
On  entry, LDC specifies the first dimension of C as declared in
the  calling  (sub)  program.   LDC  must  be  at  least max( 1,
n ).  Unchanged on exit.

Level 3 Blas routine.

--  Written on 8-February-1989.  Jack Dongarra, Argonne National
Laboratory.  Iain Duff, AERE Harwell.  Jeremy Du Croz, Numerical
Algorithms  Group  Ltd.   Sven  Hammarling, Numerical Algorithms
Group Ltd.

ZHER2K(3)
```