1ZHERK(1)                         BLAS routine                         ZHERK(1)
2
3
4

NAME

6       ZHERK  -  performs  one  of  the  hermitian  rank  k  operations   C :=
7       alpha*A*conjg( A' ) + beta*C,
8

SYNOPSIS

10       SUBROUTINE ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
11
12           DOUBLE                                              PRECISION
13                                                               ALPHA,BETA
14
15           INTEGER                                             K,LDA,LDC,N
16
17           CHARACTER                                           TRANS,UPLO
18
19           DOUBLE                                              COMPLEX
20                                                               A(LDA,*),C(LDC,*)
21

PURPOSE

23       ZHERK  performs one of the hermitian rank k operations
24
25       or
26
27          C := alpha*conjg( A' )*A + beta*C,
28
29       where   alpha  and beta  are  real scalars,  C is an  n by n  hermitian
30       matrix and  A  is an  n by k  matrix in the  first case and a  k  by  n
31       matrix in the second case.
32
33

ARGUMENTS

35       UPLO   - CHARACTER*1.
36              On   entry,    UPLO   specifies   whether  the  upper  or  lower
37              triangular  part  of the  array  C  is  to  be   referenced   as
38              follows:
39
40              UPLO  = 'U' or 'u'   Only the  upper triangular part of  C is to
41              be referenced.
42
43              UPLO = 'L' or 'l'   Only the  lower triangular part of  C is  to
44              be referenced.
45
46              Unchanged on exit.
47
48       TRANS  - CHARACTER*1.
49              On  entry,   TRANS   specifies  the operation to be performed as
50              follows:
51
52              TRANS = 'N' or 'n'   C := alpha*A*conjg( A' ) + beta*C.
53
54              TRANS = 'C' or 'c'   C := alpha*conjg( A' )*A + beta*C.
55
56              Unchanged on exit.
57
58       N      - INTEGER.
59              On entry,  N specifies the order of the matrix C.  N must be  at
60              least zero.  Unchanged on exit.
61
62       K      - INTEGER.
63              On  entry with  TRANS = 'N' or 'n',  K  specifies  the number of
64              columns   of  the   matrix   A,   and  on   entry   with TRANS =
65              'C'  or  'c',  K  specifies  the number of rows of the matrix A.
66              K must be at least zero.  Unchanged on exit.
67
68       ALPHA  - DOUBLE PRECISION            .
69              On entry, ALPHA specifies the scalar alpha.  Unchanged on exit.
70
71       A      - COMPLEX*16       array of DIMENSION ( LDA, ka ), where ka is
72              k  when  TRANS = 'N' or 'n',   and  is   n   otherwise.   Before
73              entry  with   TRANS  = 'N' or 'n',  the  leading  n by k part of
74              the array  A  must contain the matrix  A,  otherwise the leading
75              k  by  n   part  of  the  array   A  must contain  the matrix A.
76              Unchanged on exit.
77
78       LDA    - INTEGER.
79              On entry, LDA specifies the first dimension of A as declared  in
80              the   calling   (sub)   program.   When  TRANS = 'N' or 'n' then
81              LDA must be at least  max( 1, n ), otherwise   LDA  must  be  at
82              least  max( 1, k ).  Unchanged on exit.
83
84       BETA   - DOUBLE PRECISION.
85              On entry, BETA specifies the scalar beta.  Unchanged on exit.
86
87       C      - COMPLEX*16          array of DIMENSION ( LDC, n ).
88              Before  entry   with   UPLO  =  'U' or 'u',  the leading  n by n
89              upper triangular part of the array C must contain the upper tri‐
90              angular  part   of the  hermitian matrix  and the strictly lower
91              triangular part of C is not referenced.  On exit, the upper tri‐
92              angular  part of the array  C is overwritten by the upper trian‐
93              gular part of the updated matrix.  Before entry   with   UPLO  =
94              'L'  or  'l',   the leading  n by n lower triangular part of the
95              array C must contain the lower triangular part  of the   hermit‐
96              ian  matrix   and the strictly upper triangular part of C is not
97              referenced.  On exit, the lower triangular part of the array   C
98              is  overwritten  by  the  lower  triangular  part of the updated
99              matrix.  Note that the imaginary parts of the diagonal  elements
100              need not be set,  they are assumed to be zero,  and on exit they
101              are set to zero.
102
103       LDC    - INTEGER.
104              On entry, LDC specifies the first dimension of C as declared  in
105              the  calling  (sub)  program.   LDC  must  be  at  least max( 1,
106              n ).  Unchanged on exit.
107

FURTHER DETAILS

109       Level 3 Blas routine.
110
111       -- Written on 8-February-1989.
112          Jack Dongarra, Argonne National Laboratory.
113          Iain Duff, AERE Harwell.
114          Jeremy Du Croz, Numerical Algorithms Group Ltd.
115          Sven Hammarling, Numerical Algorithms Group Ltd.
116
117       -- Modified 8-Nov-93 to set C(J,J) to DBLE( C(J,J) ) when BETA = 1.
118          Ed Anderson, Cray Research Inc.
119
120
121
122
123BLAS routine                     November 2008                        ZHERK(1)
Impressum