|
|
◆ CsrDusmm()
| Sub CsrDusmm |
( |
Trans As |
String, |
|
|
M As |
Long, |
|
|
N As |
Long, |
|
|
Nrhs As |
Long, |
|
|
Alpha As |
Double, |
|
|
Val() As |
Double, |
|
|
Rowptr() As |
Long, |
|
|
Colind() As |
Long, |
|
|
B() As |
Double, |
|
|
Beta As |
Double, |
|
|
C() As |
Double, |
|
|
Optional Info As |
Long, |
|
|
Optional Base As |
Long = -1 |
|
) |
| |
C <- αAB + βC または C <- αATB + βC (CSR)
- 目的
- CSR形式の疎行列 A について次の行列×ベクトル演算を行う.
C <- αAB + βC または C <- αA^TB + βC
ここで, αおよびβはスカラー, A または A^T は M×N 疎行列, B は N×Nrhs 密行列, また, C は M×Nrhs 密行列である.
- 引数
-
| [in] | Trans | 操作を指定.
= "N": C <- αAB + βC.
= "T" または "C": C <- αA^TB + βC. |
| [in] | M | 行列 A または A^T の行数. (M >= 0) (M = 0 の場合, 処理を行わずに戻る) |
| [in] | N | 行列 A または A^T の列数. (N >= 0) (N = 0 の場合, 処理を行わずに戻る) |
| [in] | Nrhs | 行列 B および C の列数. (Nrhs >= 0) (Nrhs = 0 の場合, 処理を行わずに戻る) |
| [in] | Alpha | スカラー α. |
| [in] | Val() | 配列 Val(LVal - 1) (LVal >= Nnz) (Nnz は行列 A の非ゼロ要素数)
行列 A の非ゼロ要素の値. |
| [in] | Rowptr() | 配列 Rowptr(LRowptr - 1) (LRowptr >= N + 1)
行列 A の行ポインタ. |
| [in] | Colind() | 配列 Colind(LColind - 1) (LColind >= Nnz)
行列 A の列インデクス. |
| [in] | B() | 配列 B(LB1 - 1, LB2 - 1) (LB1 >= N, LB2 >= Nrhs)
行列 B. |
| [in] | Beta | スカラー β. |
| [in,out] | C() | 配列 C(LC1 - 1, LC2 - 1) (LC1 >= M, LC2 >= Nrhs)
[in] 入力行列 C (Beta の値が0の場合, C()の入力値は設定不要である).
[out] 出力行列 (= αAB + βC). |
| [out] | Info | (省略可)
= 0: 正常終了.
= i < 0: (-i)番目の入力パラメータの誤り. |
| [in] | Base | (省略可)
Rowptr() および Colind() のインデクス形式.
= 0: 0-ベース(C形式): 開始インデクス値が 0.
= 1: 1-ベース(Fortran形式): 開始インデクス値が 1.
(省略時: Rowptr(0) = 1 であれば 1, そうでなければ 0 とみなす) |
|