|
|
◆ CscDusmv()
| Sub CscDusmv |
( |
Trans As |
String, |
|
|
M As |
Long, |
|
|
N As |
Long, |
|
|
Alpha As |
Double, |
|
|
Val() As |
Double, |
|
|
Colptr() As |
Long, |
|
|
Rowind() As |
Long, |
|
|
X() As |
Double, |
|
|
Beta As |
Double, |
|
|
Y() As |
Double, |
|
|
Optional Info As |
Long, |
|
|
Optional Base As |
Long = -1, |
|
|
Optional IncX As |
Long = 1, |
|
|
Optional IncY As |
Long = 1 |
|
) |
| |
y <- αAx + βy または y <- αATx + βy (CSC)
- 目的
- CSC形式の疎行列 A について次の行列×ベクトル演算を行う.
y <- αAx + βy または y <- αA^Tx + βy
ここで, αおよびβはスカラー, xおよびyはベクトル, また, A は M×N 疎行列である.
- 引数
-
| [in] | Trans | 操作を指定.
= "N": y <- αAx + βy.
= "T" または "C": y <- αA^Tx + βy. |
| [in] | M | 行列 A の行数. (M >= 0) (M = 0 の場合, 処理を行わずに戻る) |
| [in] | N | 行列 A の列数. (N >= 0) (N = 0 の場合, 処理を行わずに戻る) |
| [in] | Alpha | スカラー α. |
| [in] | Val() | 配列 Val(LVal - 1) (LVal >= Nnz) (Nnz は行列 A の非ゼロ要素数)
行列 A の非ゼロ要素の値. |
| [in] | Colptr() | 配列 Colptr(LColptr - 1) (LColptr >= N + 1)
行列 A の列ポインタ. |
| [in] | Rowind() | 配列 Rowind(LRowind - 1) (LRowind >= Nnz)
行列 A の行インデクス. |
| [in] | X() | 配列 X(LX - 1) (LX >= 1 + (N - 1)*|IncX| (Trans = "N"), LX >= 1 + (M - 1)*|IncX| (Trans = "T" または "C"))
ベクトル x. |
| [in] | Beta | スカラー β. |
| [in,out] | Y() | 配列 Y(LY - 1) (LY >= 1 + (M - 1)*|IncY| (Trans = "N"), LY >= 1 + (N - 1)*|IncY| (Trans = "T" または "C"))
[in] 入力ベクトル y (Beta の値が 0 の場合, Y() の入力値は設定不要である).
[out] 出力ベクトル. (= αAx + βy) |
| [out] | Info | (省略可)
= 0: 正常終了.
= i < 0: (-i)番目の入力パラメータの誤り. |
| [in] | Base | (省略可)
Colptr() および Rowind() のインデクス形式.
= 0: 0-ベース(C形式): 開始インデクス値が 0.
= 1: 1-ベース(Fortran形式): 開始インデクス値が 1.
(省略時: Colptr(0) = 1 であれば 1, そうでなければ 0 とみなす) |
| [in] | IncX | (省略可)
X() の要素間隔 (IncX <> 0). (省略時 = 1) |
| [in] | IncY | (省略可)
Y() の要素間隔 (IncY <> 0). (省略時 = 1) |
|