|
|
◆ ssc_ssor_solve()
| void ssc_ssor_solve |
( |
char |
uplo, |
|
|
int |
n, |
|
|
double |
omega, |
|
|
const double |
val[], |
|
|
const int |
colptr[], |
|
|
const int |
rowind[], |
|
|
int |
base, |
|
|
const double |
d[], |
|
|
const double |
b[], |
|
|
double |
x[], |
|
|
int * |
info |
|
) |
| |
対称逐次的過剰緩和(SSOR)前処理 (CSC) (対称行列用)
- 目的
- 連立一次方程式の疎で対称な係数行列 A に対する対称逐次的過剰緩和(SSOR)前処理を行う. すなわち, 連立一次方程式 M*x = b を解く. ここで, M は前処理行列である. A の上三角部分または下三角部分のみを使って計算を行う.
- 引数
-
| [in] | uplo | = 'U': 行列 A は上三角部分に格納されている.
= 'L': 行列 A は下三角部分に格納されている. |
| [in] | n | 行列 A の次数. (n >= 0) (n = 0 の場合, 処理を行わずに戻る) |
| [in] | omega | 緩和パラメータω. (0 < ω < 2) |
| [in] | val[] | 配列 val[lval] (lval >= nnz)
行列 A の非ゼロ要素の値. (nnz は非ゼロ要素数) (対角要素と上または下三角要素のみ参照する) |
| [in] | colptr[] | 配列 colptr[lcolptr] (lcolptr >= n + 1)
行列 A の列ポインタ. |
| [in] | rowind[] | 配列 rowind[lrowind] (lrowind >= nnz)
行列 A の行インデクス. (nnz は非ゼロ要素数) |
| [in] | base | colptr[] および rowind[] のインデクス形式.
= 0: 0-ベース(C形式): 開始インデクス値が 0.
= 1: 1-ベース(Fortran形式): 開始インデクス値が 1. |
| [in] | d[] | 配列 d[ld] (ld >= n)
csc_ssor() で求めた前処理行列 M の対角要素. |
| [in] | b[] | 配列 b[lb] (lb >= n)
右辺ベクトル b. |
| [out] | x[] | 配列 x[lx] (lx >= n)
解ベクトル x. |
| [out] | info | = 0: 正常終了.
< 0: (-info)番目の入力パラメータの誤り. |
|