|
|
◆ Zgemm()
| Sub Zgemm |
( |
Transa As |
String, |
|
|
Transb As |
String, |
|
|
M As |
Long, |
|
|
N As |
Long, |
|
|
K As |
Long, |
|
|
Alpha As |
Complex, |
|
|
A() As |
Complex, |
|
|
B() As |
Complex, |
|
|
Beta As |
Complex, |
|
|
C() As |
Complex, |
|
|
Optional Info As |
Long |
|
) |
| |
C <- αOp(A)Op(B) + βC (Op(X) = X, XT または XH) (複素行列) (BLAS 3)
- 目的
- 本ルーチンは次の行列×行列操作を行う. ここで, Op(X)は次のいずれかである.
Op(X) = X, Op(X) = X^T または Op(X) = X^H
αおよびβはスカラー, また, A, BおよびCは行列で, Op(A)はm×k行列, Op(B)はk×n行列, そして, Op(C)はm×n行列である.
- 引数
-
| [in] | Transa | 行列×行列操作で使われるOp(A)の形式を指定.
= "N": Op(A) = A
= "T": Op(A) = A^T
= "C": Op(A) = A^H |
| [in] | Transb | 行列×行列操作で使われるOp(B)の形式を指定.
= "N": Op(B) = B
= "T": Op(B) = B^T
= "C": Op(B) = B^H |
| [in] | M | 行列Op(A)および行列Cの行数. (M >= 0) (M = 0 の場合, 処理を行わずに戻る) |
| [in] | N | 行列Op(B)および行列Cの列数. (N >= 0) (N = 0 の場合, 処理を行わずに戻る) |
| [in] | K | 行列Op(A)の列数および行列Op(B)の行数. (K >= 0) |
| [in] | Alpha | スカラーα. |
| [in] | A() | 配列 A(LA1 - 1, LA2 - 1) (LA1 >= M, LA2 >= K (Transa = "N" の場合), LA1 >= K, LA2 >= M (Transa = "T"または"C" の場合))
行列 A. |
| [in] | B() | 配列 B(LB1 - 1, LB2 - 1) (LB1 >= K, LB2 >= N (Transb = "N" の場合), LB1 >= N, LB2 >= K (Transb = "T"または"C" の場合))
行列 B. |
| [in] | Beta | スカラーβ. βが0の場合, Cの入力値は設定不要である. |
| [in,out] | C() | 配列 C(LC1 - 1, LC2 - 1) (LC1 >= M, LC2 >= N)
[in] 行列 C.
[out] 行列 αOp(A)Op(B) + βC. |
| [out] | Info | (省略可)
= 0: 正常終了.
= -1: パラメータ Transa の誤り. (Transa <> "N", "T"および"C")
= -2: パラメータ Transb の誤り. (Transb <> "N", "T"および"C")
= -3: パラメータ M の誤り. (M < 0)
= -4: パラメータ N の誤り. (N < 0)
= -5: パラメータ K の誤り. (K < 0)
= -7: パラメータ A() の誤り.
= -8: パラメータ B() の誤り.
= -10: パラメータ C() の誤り. |
- 出典
- BLAS
|