F06ZAF (ZGEMM) performs one of the matrix-matrix operations
where
A,
B and
C are complex matrices, and
α and
β are complex scalars;
C is always
m by
n.
SUBROUTINE F06ZAF ( |
TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC) |
INTEGER |
M, N, K, LDA, LDB, LDC |
COMPLEX (KIND=nag_wp) |
ALPHA, A(LDA,*), B(LDB,*), BETA, C(LDC,*) |
CHARACTER(1) |
TRANSA, TRANSB |
|
None.
None.
- 1: TRANSA – CHARACTER(1)Input
On entry: specifies whether the operation involves
A,
AT or
AH.
- TRANSA='N'
- The operation involves A.
- TRANSA='T'
- The operation involves AT.
- TRANSA='C'
- The operation involves AH.
Constraint:
TRANSA='N', 'T' or 'C'.
- 2: TRANSB – CHARACTER(1)Input
On entry: specifies whether the operation involves
B,
BT or
BH.
- TRANSB='N'
- The operation involves B.
- TRANSB='T'
- The operation involves BT.
- TRANSB='C'
- The operation involves BH.
Constraint:
TRANSB='N', 'T' or 'C'.
- 3: M – INTEGERInput
On entry: m, the number of rows of the matrix C; the number of rows of A if TRANSA='N', or the number of columns of A if TRANSA='T' or 'C'.
Constraint:
M≥0.
- 4: N – INTEGERInput
On entry: n, the number of columns of the matrix C; the number of columns of B if TRANSB='N', or the number of rows of B if TRANSB='T' or 'C'.
Constraint:
N≥0.
- 5: K – INTEGERInput
On entry: k, the number of columns of A if TRANSA='N', or the number of rows of A if TRANSA='T' or 'C'; the number of rows of B if TRANSB='N', or the number of columns of B if TRANSB='T' or 'C'.
Constraint:
K≥0.
- 6: ALPHA – COMPLEX (KIND=nag_wp)Input
On entry: the scalar α.
- 7: A(LDA,*) – COMPLEX (KIND=nag_wp) arrayInput
-
Note: the second dimension of the array
A
must be at least
max1,K if
TRANSA='N' and at least
max1,M if
TRANSA='T' or
'C'.
On entry: the matrix A; A is m by k if TRANSA='N', or k by m if TRANSA='T' or 'C'.
- 8: LDA – INTEGERInput
On entry: the first dimension of the array
A as declared in the (sub)program from which F06ZAF (ZGEMM) is called.
Constraints:
- if TRANSA='N', LDA≥ max1,M ;
- if TRANSA='T' or 'C', LDA≥ max1,K .
- 9: B(LDB,*) – COMPLEX (KIND=nag_wp) arrayInput
-
Note: the second dimension of the array
B
must be at least
max1,N if
TRANSB='N' and at least
max1,K if
TRANSB='T' or
'C'.
On entry: the matrix B; B is k by n if TRANSB='N', or n by k if TRANSB='T' or 'C'.
- 10: LDB – INTEGERInput
On entry: the first dimension of the array
B as declared in the (sub)program from which F06ZAF (ZGEMM) is called.
Constraints:
- if TRANSB='N', LDB≥ max1,K ;
- if TRANSB='T' or 'C', LDB≥ max1,N .
- 11: BETA – COMPLEX (KIND=nag_wp)Input
On entry: the scalar β.
- 12: C(LDC,*) – COMPLEX (KIND=nag_wp) arrayInput/Output
-
Note: the second dimension of the array
C
must be at least
max1,N.
On entry: the
m by
n matrix
C.
If
BETA=0,
C need not be set.
On exit: the updated matrix C.
- 13: LDC – INTEGERInput
On entry: the first dimension of the array
C as declared in the (sub)program from which F06ZAF (ZGEMM) is called.
Constraint:
LDC≥ max1,M .
None.
Not applicable.
None.
None.