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

NAME

6       CGEMM - performs one of the matrix-matrix operations   C := alpha*op( A
7       )*op( B ) + beta*C,
8

SYNOPSIS

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

PURPOSE

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

ARGUMENTS

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

FURTHER DETAILS

116       Level 3 Blas routine.
117
118       -- Written on 8-February-1989.
119          Jack Dongarra, Argonne National Laboratory.
120          Iain Duff, AERE Harwell.
121          Jeremy Du Croz, Numerical Algorithms Group Ltd.
122          Sven Hammarling, Numerical Algorithms Group Ltd.
123
124
125
126
127BLAS routine                     November 2008                        CGEMM(1)
Impressum