XLPack 7.0
XLPack 数値計算ライブラリ (Excel VBA) リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ 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 とみなす)