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