|
|
◆ csr_ssr()
| void csr_ssr |
( |
char |
uplo, |
|
|
int |
n, |
|
|
const double |
val[], |
|
|
const int |
rowptr[], |
|
|
const int |
colind[], |
|
|
int |
base, |
|
|
int |
maxnnz2, |
|
|
double |
val2[], |
|
|
int |
rowptr2[], |
|
|
int |
colind2[], |
|
|
int |
base2, |
|
|
int * |
info |
|
) |
| |
CSR (対称なフル行列) -> SSR (CSR 対称行列形式)
- 目的
- 全要素を格納する一般のCSR形式疎行列を上または下三角要素のみを格納するCSR形式対称疎行列に変換する.
現バージョンでは, 入力行列の uplo で指定された以外の三角部分(対角成分を含まない)を単に無視し, 対称性の検査は行わない.
- 引数
-
| [in] | uplo | 出力行列が上三角部分あるいは下三角部分のどちらを格納するか指定する.
= 'U': 上三角部分.
= 'L': 下三角部分. |
| [in] | n | 行列の行および列数. (n >= 0) (n = 0 の場合, 処理を行わずに戻る) |
| [in] | val[] | 配列 val[lval] (lval >= nnz)
入力行列の非ゼロ要素の値. (nnz は非ゼロ要素数) |
| [in] | rowptr[] | 配列 rowptr[lrowptr] (lrowptr >= n + 1)
入力行列の行ポインタ. |
| [in] | colind[] | 配列 colind[lcolind] (lcolind >= nnz)
入力行列の列インデクス. (nnz は非ゼロ要素数) |
| [in] | base | rowptr[] および colind[] のインデクス形式.
= 0: 0-ベース(C形式): 開始インデクス値が 0.
= 1: 1-ベース(Fortran形式): 開始インデクス値が 1. |
| [in] | maxnnz2 | 配列 val2[] および colind2[] の大きさ (入力行列の上または下三角部分の非ゼロ要素数より大きくなければならない). (maxnnz2 > 0) |
| [out] | val2[] | 配列 val2[lval2] (lval2 >= maxnnz2)
出力行列の非ゼロ要素の値. |
| [out] | rowptr2[] | 配列 rowptr2[lrowptr2] (lrowptr2 >= n + 1)
出力行列の行ポインタ. |
| [out] | colind2[] | 配列 colind2[lcolind2] (lcolind2 >= maxnnz2)
出力行列の列インデクス. |
| [in] | base2 | rowptr2[] および colind2[] のインデクス形式.
= 0: 0-ベース(C形式): 開始インデクス値が 0.
= 1: 1-ベース(Fortran形式): 開始インデクス値が 1. |
| [out] | info | = 0: 正常終了.
= i < 0: (-i)番目の入力パラメータの誤り.
= j > 0: 入力行列において j 個の要素が無視された. |
|