Strassen matrix-matrix multiply

 

DGEMMS/ZGEMMS

Input

transa

Transposition option for A:

 

 

’N’ or ’n’

Use m-by-kmatrix A

 

 

’T’ or ’t’

Use AT where A is a k-by-mmatrix

 

 

’C’ or ’c’

Use A* where A is a k-by-mmatrix

 

 

where AT is the transpose of A and A* is the conjugate

 

 

transpose. In the real subprograms, ’C’ and ’c’ have the

 

 

same meaning as ’T’ and ’t’.

 

transb

Transposition option for B:

 

 

’N’ or ’n’

Use k-by-nmatrix B

 

 

’T’ or ’t’

Use BT where B is an n-by-kmatrix

 

 

’C’ or ’c’

Use B* where B is an n-by-kmatrix

 

 

where BT is the transpose of B and B* is the conjugate

 

 

transpose. In the real subprograms, ’C’ and ’c’ have the

 

 

same meaning as ’T’ and ’t’.

 

m

Number of rows in matrix C, m ≥ 0. If m = 0, the

 

 

subprograms do not reference a, b, or c.

 

n

Number of columns in matrix C, n ≥ 0. If n = 0, the

 

 

subprograms do not reference a, b, or c.

 

k

The middle dimension of the matrix multiply, k ≥ 0. If

 

 

k = 0, the subprograms compute C ← βC without

 

 

referencing a or b.

 

alpha

The scalar α. If alpha = 0, the subprograms compute

 

 

C ← βC without referencing a or b.

 

a

Array containing the matrix A, whose size is indicated

 

 

by transa:

 

 

 

’N’ or ’n’

A is an m-by-kmatrix

 

 

otherwise

A is a k-by-mmatrix

 

lda

The leading dimension of array a as declared in the

 

 

calling program unit, with lda ≥ max (the number of

 

 

rows of A,1).

 

 

b

Array containing the matrix B, whose size is indicated

 

 

by transb:

 

 

 

’N’ or ’n’

B is a k-by-nmatrix

 

 

otherwise

B is an n-by-kmatrix

 

ldb

The leading dimension of array b as declared in the

 

 

calling program unit, with ldb ≥ max (the number of

rows of B,1).

Chapter 3 Basic Matrix Operations 229