Sun S3L provides 18 matrix multiplication routines that compute one or more instances of matrix products. For each instance, these routines perform the operations listed in Table 8-5.
In these descriptions, AT and AH denote A transpose and A Hermitian, respectively.
Routine |
Operation |
Data Type |
---|---|---|
S3L_mat_mult | C = C + AB |
real or complex |
S3L_mat_mult_noadd | C = AB |
real or complex |
S3L_mat_mult_addto | C = D + AB |
real or complex |
S3L_mat_mult_t1 | C = C + ATB |
real or complex |
S3L_mat_mult_t1_noadd | C = ATB |
real or complex |
S3L_mat_mult_t1_addto | C = D + ATB |
real or complex |
S3L_mat_mult_h1 | C = C + AHB |
complex only |
S3L_mat_mult_h1_noadd | C = AHB |
complex only |
S3L_mat_mult_h1_addto | C = D + AHB |
complex only |
S3L_mat_mult_t2 |
C = C + ABT |
real or complex |
S3L_mat_mult_t2_noadd | C = ABT |
real or complex |
S3L_mat_mult_t2_addto | C = D + ABT |
real or complex |
S3L_mat_mult_h2 | C = C + ABH |
complex only |
S3L_mat_mult_h2_noadd | C = ABH |
complex only |
S3L_mat_mult_h2_addto | C = D + ABH |
complex only |
S3L_mat_mult_t1_t2 |
C = C + ATBT |
real or complex |
S3L_mat_mult_t1_t2 |
C = C + ATBT |
real or complex |
S3L_mat_mult_t1_t2_noadd | C = ATBT |
real or complex |
S3L_mat_mult_t1_t2_addto | C = D + ATBT |
real or complex |
The algorithm used depends on the axis lengths of the variables supplied.
For calls that do not transpose either matrix A or B, the variables conform correctly with the axis lengths for row_axis and col_axis shown in Table 8-6.
Table 8-6 Recommended row_axis and col_axis Values When Matrix A and Matrix B Are Not Transposed
Variable |
row_axis Length |
col_axis Length |
---|---|---|
A |
p |
q |
B |
q |
r |
C |
p |
r |
D |
p |
r |
For calls that transpose the matrix A (AT), the variables conform correctly with the axis lengths for row_axis and col_axis shown in Table 8-7.
Table 8-7 Recommended row_axis and col_axis Values When Matrices Are Transposed
Variable |
row_axis Length |
col_axis Length |
---|---|---|
A |
q |
p |
B |
q |
r |
C |
p |
r |
D |
p |
r |
For calls that transpose the matrix B (BT), the variables conform correctly with the axis lengths for row_axis and col_axis shown in Table 8-8.
Table 8-8 Recommended row_axis and col_axis Values When Matrix B Is Transposed
Variable |
row_axis Length |
col_axis Length |
---|---|---|
A |
q |
q |
B |
r |
q |
C |
p |
r |
D |
p |
r |
For calls that transpose both A and B (ATBT), the variables conform correctly with the axis lengths for row_axis and col_axis shown in Table 8-9.
Table 8-9 Recommended row_axis and col_axis Values When Both Matrix A and Matrix B Are Transposed
Variable |
row_axis Length |
col_axis Length |
---|---|---|
A |
q |
p |
B |
r |
q |
C |
p |
r |
D |
p |
r |
The algorithm is numerically stable.