|
|
◆ z_csx_ssor()
| void z_csx_ssor |
( |
int |
n, |
|
|
double |
omega, |
|
|
const doublecomplex |
val[], |
|
|
const int |
ptr[], |
|
|
const int |
ind[], |
|
|
int |
base, |
|
|
doublecomplex |
d[], |
|
|
int |
iwork[], |
|
|
int * |
info |
|
) |
| |
対称逐次的過剰緩和(SSOR)前処理のための初期化 (複素行列) (CSC/CSR)
- 目的
- 連立一次方程式の疎な係数行列 A に対する対称逐次的過剰緩和(SSOR)前処理のための初期化を行う. 前処理行列は次のように定義される.
M(ω) = (1/(2 - ω))(D/ω + L)(D/ω)^(-1)(D/ω + U)
ここで, L, D, U はそれぞれ係数行列 A の下三角部分, 対角部分, 上三角部分である.
出力 d[] を z_csc_ssor_solve(), z_hsc_ssor_solve(), z_ssc_ssor_solve(), z_csr_ssor_solve(), z_hsr_ssor_solve() または z_ssr_ssor_solve() が使用する.
- 引数
-
| [in] | n | 行列 A の次数. (n >= 0) (n = 0 の場合, 処理を行わずに戻る) |
| [in] | omega | 緩和パラメータω. (0 < ω < 2) |
| [in] | val[] | 配列 val[lval] (lval >= nnz)
行列 A の非ゼロ要素の値. (nnz は非ゼロ要素数) |
| [in] | ptr[] | 配列 ptr[lptr] (lptr >= n + 1)
行列 A の列ポインタ(CSC)/行ポインタ(CSR). |
| [in] | ind[] | 配列 ind[lind] (lind >= nnz)
行列 A の行インデクス(CSC)/行インデクス(CSR). (nnz は非ゼロ要素数) |
| [in] | base | ptr[] および ind[] のインデクス形式.
= 0: 0-ベース(C形式): 開始インデクス値が 0.
= 1: 1-ベース(Fortran形式): 開始インデクス値が 1. |
| [out] | d[] | 配列 d[ld] (ld >= n)
対角要素 D/ω を返す. |
| [out] | iwork[] | 配列 iwork[liwork] (liwork >= n)
作業領域. |
| [out] | info | = 0: 正常終了.
= i < 0: (-i)番目の入力パラメータの誤り.
= j > 0: j 個の対角要素が 0 である (該当要素については d[] に 1/ω を返す). |
|