|
|
◆ z_csc_check()
| void z_csc_check |
( |
int |
m, |
|
|
int |
n, |
|
|
const doublecomplex |
val[], |
|
|
const int |
ptr[], |
|
|
const int |
ind[], |
|
|
int |
result[], |
|
|
int * |
info |
|
) |
| |
疎行列のチェック (複素行列) (CSC)
- 目的
- CSC形式疎行列をチェックする. 対称性のチェックは別途 z_csx_check_sym を使って行う.
- 引数
-
| [in] | m | 行列の行数. (m >= 0) (m = 0 の場合, 処理を行わずに戻る) |
| [in] | n | 行列の列数. (n >= 0) (n = 0 の場合, 処理を行わずに戻る) |
| [in] | val[] | 配列 val[lval] (lval >= nnz) (nnz は入力行列の非ゼロ要素数)
入力行列の非ゼロ要素の値. |
| [in] | ptr[] | 配列 ptr[lptr] (lptr >= n + 1)
入力行列の列ポインタ. |
| [in] | ind[] | 配列 ind[lind] (lind >= nnz) (nnz は入力行列の非ゼロ要素数)
入力行列の行インデクス. |
| [out] | result[] | 配列 result[lresult] (lresult >= 10)
チェック結果(0 <= info <= 15 の場合に有効).
result[0]: ptr[] および ind[] のインデクス形式(0 または 1). (base = ptr[0])
result[1]: 非ゼロ要素数. (nnz = ptr[m] - ptr[0])
result[2]: 下三角部分の非ゼロ要素数. (nnz_lower)
result[3]: 上三角部分の非ゼロ要素数. (nnz_upper)
result[4]: 対角部分の非ゼロ要素数. (nnz_diag)
result[5]: 値が 0 (val[i] = 0) の要素数. (n_zero)
result[6]: 値が 0 (val[i] = 0) の対角要素数. (n_zero_diag)
result[7]: 要素数が 0 の列数. (empty_cols)
result[8]: 行インデックスが昇順になっていない列数. (unsorted_cols)
result[9]: 不正な行インデックス数. (invalid_inds) |
| [out] | info | = 0: 正常終了.
= i < 0: (-i)番目の入力パラメータの誤り.
= 1: 要素数が 0 の列がある.(*)
= 2: 行インデックスが昇順になっていない列がある.(*)
= 4: 値が 0 (val = 0) の対角要素がある.(*)
= 8: 不正な行インデックスがある.(*)
(*)これらの合算値を返す(例. 15 = 1 + 2 + 4 + 8 の場合, 4つとも検出されたことを示す).
= 16: ptr[0] の値が正しくない.
= 17: ptr[m] - ptr[0] の値が正しくない.
= 18: ptr[i](i > 0) の値が正しくない. |
|