|
◆ csr_zusmv()
void csr_zusmv |
( |
char |
trans, |
|
|
int |
m, |
|
|
int |
n, |
|
|
doublecomplex |
alpha, |
|
|
const doublecomplex |
val[], |
|
|
const int |
rowptr[], |
|
|
const int |
colind[], |
|
|
int |
base, |
|
|
const doublecomplex |
x[], |
|
|
int |
incx, |
|
|
doublecomplex |
beta, |
|
|
doublecomplex |
y[], |
|
|
int |
incy, |
|
|
int * |
info |
|
) |
| |
y <- αAx + βy, y <- αATx + βy または y <- αAHx + βy (複素行列) (CSR)
- 目的
- CSR形式の疎行列 A について次の行列×ベクトル演算を行う.
y <- αAx + βy, y <- αA^Tx + βy または y <- αA^Hx + βy
ここで, αおよびβはスカラー, xおよびyはベクトル, また, A は m×n 疎行列である.
- 引数
-
[in] | trans | 操作を指定.
= 'N': αAx + βy.
= 'T': y <- αA^Tx + βy.
= 'C': y <- αA^Hx + βy. |
[in] | m | 行列 A の行数. (m >= 0) (m = 0 の場合, 処理を行わずに戻る) |
[in] | n | 行列 A の列数. (n >= 0) (n = 0 の場合, 処理を行わずに戻る) |
[in] | alpha | スカラー α. |
[in] | val[] | 配列 val[lval] (lval >= nnz)
行列 A の非ゼロ要素の値. (nnz は非ゼロ要素数) |
[in] | rowptr[] | 配列 rowptr[lrowptr] (lrowptr >= m + 1)
行列 A の行ポインタ. |
[in] | colind[] | 配列 colind[lcolind] (lcolind >= nnz)
行列 A の列インデクス. (nnz は非ゼロ要素数) |
[in] | base | rowptr[] および colind[] のインデクス形式.
= 0: 0-ベース(C形式): 開始インデクス値が 0.
= 1: 1-ベース(Fortran形式): 開始インデクス値が 1. |
[in] | x[] | 配列 x[lx] (lx >= 1 + (n - 1)*|incx| (trans = 'N'), lx >= 1 + (m - 1)*|incx| (trans = 'T' または 'C'))
ベクトル x. |
[in] | incx | x[] の要素間隔. |
[in] | beta | スカラー β. |
[in,out] | y[] | 配列 y[ly] (ly >= 1 + (m - 1)*|incy| (trans = 'N'), ly >= 1 + (n - 1)*|incy| (trans = 'T' または 'C'))
[in] 入力ベクトル y (beta の値が0の場合, y[]の入力値は設定不要である).
[out] 出力ベクトル. (= αAx + βy) |
[in] | incy | y[] の要素間隔. |
[out] | info | = 0: 正常終了.
= i < 0: (-i)番目の入力パラメータの誤り. |
|