1ZHEMM(1) BLAS routine ZHEMM(1)
2
3
4
6 ZHEMM - performs one of the matrix-matrix operations C := alpha*A*B +
7 beta*C,
8
10 SUBROUTINE ZHEMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
11
12 DOUBLE COMPLEX
13 ALPHA,BETA
14
15 INTEGER LDA,LDB,LDC,M,N
16
17 CHARACTER SIDE,UPLO
18
19 DOUBLE COMPLEX
20 A(LDA,*),B(LDB,*),C(LDC,*)
21
23 ZHEMM performs one of the matrix-matrix operations
24
25 or
26
27 C := alpha*B*A + beta*C,
28
29 where alpha and beta are scalars, A is an hermitian matrix and B and C
30 are m by n matrices.
31
32
34 SIDE - CHARACTER*1.
35 On entry, SIDE specifies whether the hermitian matrix A
36 appears on the left or right in the operation as follows:
37
38 SIDE = 'L' or 'l' C := alpha*A*B + beta*C,
39
40 SIDE = 'R' or 'r' C := alpha*B*A + beta*C,
41
42 Unchanged on exit.
43
44 UPLO - CHARACTER*1.
45 On entry, UPLO specifies whether the upper or lower
46 triangular part of the hermitian matrix A is to be
47 referenced as follows:
48
49 UPLO = 'U' or 'u' Only the upper triangular part of the her‐
50 mitian matrix is to be referenced.
51
52 UPLO = 'L' or 'l' Only the lower triangular part of the her‐
53 mitian matrix is to be referenced.
54
55 Unchanged on exit.
56
57 M - INTEGER.
58 On entry, M specifies the number of rows of the matrix C. M
59 must be at least zero. Unchanged on exit.
60
61 N - INTEGER.
62 On entry, N specifies the number of columns of the matrix C. N
63 must be at least zero. Unchanged on exit.
64
65 ALPHA - COMPLEX*16 .
66 On entry, ALPHA specifies the scalar alpha. Unchanged on exit.
67
68 A - COMPLEX*16 array of DIMENSION ( LDA, ka ), where ka is
69 m when SIDE = 'L' or 'l' and is n otherwise. Before entry
70 with SIDE = 'L' or 'l', the m by m part of the array A
71 must contain the hermitian matrix, such that when UPLO = 'U'
72 or 'u', the leading m by m upper triangular part of the array A
73 must contain the upper triangular part of the hermitian matrix
74 and the strictly lower triangular part of A is not refer‐
75 enced, and when UPLO = 'L' or 'l', the leading m by m lower
76 triangular part of the array A must contain the lower tri‐
77 angular part of the hermitian matrix and the strictly upper
78 triangular part of A is not referenced. Before entry with
79 SIDE = 'R' or 'r', the n by n part of the array A must con‐
80 tain the hermitian matrix, such that when UPLO = 'U' or 'u',
81 the leading n by n upper triangular part of the array A must
82 contain the upper triangular part of the hermitian matrix and
83 the strictly lower triangular part of A is not referenced,
84 and when UPLO = 'L' or 'l', the leading n by n lower triangu‐
85 lar part of the array A must contain the lower triangular
86 part of the hermitian matrix and the strictly upper triangu‐
87 lar part of A is not referenced. Note that the imaginary
88 parts of the diagonal elements need not be set, they are
89 assumed to be zero. Unchanged on exit.
90
91 LDA - INTEGER.
92 On entry, LDA specifies the first dimension of A as declared in
93 the calling (sub) program. When SIDE = 'L' or 'l' then LDA
94 must be at least max( 1, m ), otherwise LDA must be at least
95 max( 1, n ). Unchanged on exit.
96
97 B - COMPLEX*16 array of DIMENSION ( LDB, n ).
98 Before entry, the leading m by n part of the array B must
99 contain the matrix B. Unchanged on exit.
100
101 LDB - INTEGER.
102 On entry, LDB specifies the first dimension of B as declared in
103 the calling (sub) program. LDB must be at least max( 1,
104 m ). Unchanged on exit.
105
106 BETA - COMPLEX*16 .
107 On entry, BETA specifies the scalar beta. When BETA is
108 supplied as zero then C need not be set on input. Unchanged on
109 exit.
110
111 C - COMPLEX*16 array of DIMENSION ( LDC, n ).
112 Before entry, the leading m by n part of the array C must
113 contain the matrix C, except when beta is zero, in which
114 case C need not be set on entry. On exit, the array C is
115 overwritten by the m by n updated matrix.
116
117 LDC - INTEGER.
118 On entry, LDC specifies the first dimension of C as declared in
119 the calling (sub) program. LDC must be at least max( 1,
120 m ). Unchanged on exit.
121
123 Level 3 Blas routine.
124
125 -- Written on 8-February-1989.
126 Jack Dongarra, Argonne National Laboratory.
127 Iain Duff, AERE Harwell.
128 Jeremy Du Croz, Numerical Algorithms Group Ltd.
129 Sven Hammarling, Numerical Algorithms Group Ltd.
130
131
132
133
134BLAS routine November 2008 ZHEMM(1)