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