1ZGEMM(1) BLAS routine ZGEMM(1)
2
3
4
6 ZGEMM - one of the matrix-matrix operations C := alpha*op( A )*op( B
7 ) + beta*C,
8
10 SUBROUTINE ZGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
11
12 DOUBLE COM‐
13 PLEX
14 ALPHA,BETA
15
16 INTEGER K,LDA,LDB,LDC,M,N
17
18 CHARACTER TRANSA,TRANSB
19
20 DOUBLE COM‐
21 PLEX
22 A(LDA,*),B(LDB,*),C(LDC,*)
23
25 ZGEMM performs one of the matrix-matrix operations
26
27 where op( X ) is one of
28
29 op( X ) = X or op( X ) = X' or op( X ) = conjg( X' ),
30
31 alpha and beta are scalars, and A, B and C are matrices, with op( A )
32 an m by k matrix, op( B ) a k by n matrix and C an m by n matrix.
33
34
36 TRANSA - CHARACTER*1. On entry, TRANSA specifies the form of op( A )
37 to be used in the matrix multiplication as follows:
38
39 TRANSA = 'N' or 'n', op( A ) = A.
40
41 TRANSA = 'T' or 't', op( A ) = A'.
42
43 TRANSA = 'C' or 'c', op( A ) = conjg( A' ).
44
45 Unchanged on exit.
46
47 TRANSB - CHARACTER*1. On entry, TRANSB specifies the form of op( B )
48 to be used in the matrix multiplication as follows:
49
50 TRANSB = 'N' or 'n', op( B ) = B.
51
52 TRANSB = 'T' or 't', op( B ) = B'.
53
54 TRANSB = 'C' or 'c', op( B ) = conjg( B' ).
55
56 Unchanged on exit.
57
58 M - INTEGER.
59 On entry, M specifies the number of rows of the matrix op(
60 A ) and of the matrix C. M must be at least zero.
61 Unchanged on exit.
62
63 N - INTEGER.
64 On entry, N specifies the number of columns of the matrix op(
65 B ) and the number of columns of the matrix C. N must be at
66 least zero. Unchanged on exit.
67
68 K - INTEGER.
69 On entry, K specifies the number of columns of the matrix op(
70 A ) and the number of rows of the matrix op( B ). K must be at
71 least zero. Unchanged on exit.
72
73 ALPHA - COMPLEX*16 .
74 On entry, ALPHA specifies the scalar alpha. Unchanged on exit.
75
76 A - COMPLEX*16 array of DIMENSION ( LDA, ka ), where ka is
77 k when TRANSA = 'N' or 'n', and is m otherwise. Before
78 entry with TRANSA = 'N' or 'n', the leading m by k part of
79 the array A must contain the matrix A, otherwise the leading
80 k by m part of the array A must contain the matrix A.
81 Unchanged on exit.
82
83 LDA - INTEGER.
84 On entry, LDA specifies the first dimension of A as declared in
85 the calling (sub) program. When TRANSA = 'N' or 'n' then LDA
86 must be at least max( 1, m ), otherwise LDA must be at least
87 max( 1, k ). Unchanged on exit.
88
89 B - COMPLEX*16 array of DIMENSION ( LDB, kb ), where kb is
90 n when TRANSB = 'N' or 'n', and is k otherwise. Before
91 entry with TRANSB = 'N' or 'n', the leading k by n part of
92 the array B must contain the matrix B, otherwise the leading
93 n by k part of the array B must contain the matrix B.
94 Unchanged on exit.
95
96 LDB - INTEGER.
97 On entry, LDB specifies the first dimension of B as declared in
98 the calling (sub) program. When TRANSB = 'N' or 'n' then LDB
99 must be at least max( 1, k ), otherwise LDB must be at least
100 max( 1, n ). Unchanged on exit.
101
102 BETA - COMPLEX*16 .
103 On entry, BETA specifies the scalar beta. When BETA is
104 supplied as zero then C need not be set on input. Unchanged on
105 exit.
106
107 C - COMPLEX*16 array of DIMENSION ( LDC, n ).
108 Before entry, the leading m by n part of the array C must
109 contain the matrix C, except when beta is zero, in which
110 case C need not be set on entry. On exit, the array C is
111 overwritten by the m by n matrix ( alpha*op( A )*op( B ) +
112 beta*C ).
113
114 LDC - INTEGER.
115 On entry, LDC specifies the first dimension of C as declared in
116 the calling (sub) program. LDC must be at least max( 1,
117 m ). Unchanged on exit.
118
119 Level 3 Blas routine.
120
121 -- Written on 8-February-1989. Jack Dongarra, Argonne National
122 Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical
123 Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms
124 Group Ltd.
125
126
127
128
129
130
131BLAS routine November 2006 ZGEMM(1)