|
|
◆ z_csr_ssor_solve()
| void z_csr_ssor_solve |
( |
char |
trans, |
|
|
int |
n, |
|
|
double |
omega, |
|
|
const doublecomplex |
val[], |
|
|
const int |
rowptr[], |
|
|
const int |
colind[], |
|
|
int |
base, |
|
|
const doublecomplex |
d[], |
|
|
const doublecomplex |
b[], |
|
|
doublecomplex |
x[], |
|
|
int * |
info |
|
) |
| |
対称逐次的過剰緩和(SSOR)前処理 (複素行列) (CSR)
- 目的
- 連立一次方程式の疎な係数行列 A に対する対称逐次的過剰緩和(SSOR)前処理を行う. すなわち, 連立一次方程式 M*x = b, M^T*x = b または M^H*x = b を解く. ここで, M は前処理行列である.
- 引数
-
| [in] | trans | = 'N': M*x = b を解く.
= 'T': M^T*x = b を解く.
= 'C': M^H*x = b を解く. |
| [in] | n | 行列 A の次数. (n >= 0) (n = 0 の場合, 処理を行わずに戻る) |
| [in] | omega | 緩和パラメータω. (0 < ω < 2) |
| [in] | val[] | 配列 val[lval] (lval >= nnz)
行列 A の非ゼロ要素の値. (nnz は非ゼロ要素数) |
| [in] | rowptr[] | 配列 rowptr[lrowptr] (lrowptr >= n + 1)
行列 A の行ポインタ. |
| [in] | colind[] | 配列 colind[lcolind] (lcolind >= nnz)
行列 A の列インデクス. (nnz は非ゼロ要素数) |
| [in] | base | rowptr[] および colind[] のインデクス形式.
= 0: 0-ベース(C形式): 開始インデクス値が 0.
= 1: 1-ベース(Fortran形式): 開始インデクス値が 1. |
| [in] | d[] | 配列 d[ld] (ld >= n)
csr_ssor()で求めた前処理行列 M の対角要素. |
| [in] | b[] | 配列 b[lb] (lb >= n)
右辺ベクトル b. |
| [out] | x[] | 配列 x[lx] (lx >= n)
解ベクトル x. |
| [out] | info | = 0: 正常終了.
< 0: (-info)番目の入力パラメータの誤り. |
|