|
|
◆ hb_write()
| void hb_write |
( |
char * |
fname, |
|
|
char * |
title, |
|
|
char * |
key, |
|
|
char * |
mxtype, |
|
|
int |
nrow, |
|
|
int |
ncol, |
|
|
int |
nnz, |
|
|
int |
neltvl, |
|
|
double |
val[], |
|
|
int |
lval, |
|
|
int |
ptr[], |
|
|
int |
lptr, |
|
|
int |
ind[], |
|
|
int |
lind, |
|
|
char * |
rhstyp, |
|
|
int |
nrhs, |
|
|
int |
nrhsix, |
|
|
double |
rhsval[], |
|
|
int |
lrhsval, |
|
|
int |
rhsptr[], |
|
|
int |
lrhsptr, |
|
|
int |
rhsind[], |
|
|
int |
lrhsind, |
|
|
double |
sguess[], |
|
|
int |
lsguess, |
|
|
double |
xexact[], |
|
|
int |
lxexact, |
|
|
int |
base, |
|
|
int |
fchk, |
|
|
int |
format, |
|
|
int |
int_n, |
|
|
int |
int_w, |
|
|
int |
dbl_n, |
|
|
int |
dbl_w, |
|
|
int |
dbl_d, |
|
|
int * |
info |
|
) |
| |
Harwell-Boeing形式ファイルへの書き込み
- 目的
- Harwell-Boeing形式ファイルに疎行列 (CSR, CSC または COO形式), または, 有限要素行列 (非組立形式) を書き込む.
データの順番など内容のチェックは行わずにそのまま書き込む.
- 引数
-
| [in] | fname | 出力ファイル名.
fname = NULL の場合, stdoutが使われる. |
| [out] | title | 配列 title[ltitle]
Title 文字列 (先頭から72文字目までが有効).
|
| [out] | key | 配列 key[lkey]
Key 文字列 (先頭から8文字目までが有効).
|
| [in] | mxtype[] | 配列 mxtype[3]
行列タイプ.
mxtype[0]: データ型.
= 'R': 実数.
= 'C': 複素数.
= 'P': パターン(行列データなし).
mxtype[1]: 行列の形状.
= 'U': 非対称行列.
= 'S': 対称行列.
= 'Z': 歪対称行列.
= 'H': エルミート行列.
= 'R': 長方形行列.
mxtype[2]: 格納形式.
= 'A': 疎行列.
= 'E': 有限要素行列. |
| [in] | nrow | 行列の行数 (疎行列の場合).
変数の数 (nu) (有限要素行列の場合).
(nrow >= 0) (nrow = 0 の場合, 処理を行わずに戻る) |
| [in] | ncol | 行列の列数 (疎行列の場合).
基本行列の数 (ne) (有限要素行列の場合).
(ncol >= 0) (ncol = 0 の場合, 処理を行わずに戻る) |
| [in] | nnz | 非ゼロ要素数 (疎行列の場合). (通常 ptr[nrow] - ptr[0] (CSR) または ptr[ncol] - ptr[0] (CSC) に等しい)
変数インデクス数 (nind) (有限要素行列の場合). (通常 ptr[ne] - ptr[0] に等しい)
(nnz >= 0) (nnz = 0 の場合, 処理を行わずに戻る) |
| [in] | neltvl | 使用しない (疎行列の場合).
要素数 (有限要素行列の場合). (neltvl >= 0) (neltvl = 0 の場合, 処理を行わずに戻る) |
| [in] | val[] | 配列 val[lval]
非ゼロ要素 (疎行列の場合).
要素の数値データ (有限要素行列の場合).
mxtype[0] = 'P' (データ型 = パターン) の場合, 参照されない. |
| [in] | lval | val[] の配列サイズ. (lval >= nnz)
mxtype[0] = 'C' (データ型 = 複素数) の場合, lval は2倍になる. |
| [in] | ptr[] | 配列 ptr[lptr]
行ポインタ(CSRの場合), 列ポインタ(CSC の場合), または 行インデクス(COO の場合) (疎行列の場合).
変数インデクスへのポインタ (有限要素行列の場合). |
| [in] | lptr | ptr[] の配列サイズ. (lptr >= nrow + 1 (CSR), lptr >= ncol + 1 (CSC, 有限要素行列), または lptr >= nnz (COO)) |
| [in] | ind[] | 配列 ind[lind]
列インデクス(CSR あるいは COO の場合), または 行インデクス(CSC の場合) (疎行列の場合).
変数インデクス (有限要素行列の場合) |
| [in] | lind | ind[] の配列サイズ. (lind >= nnz) |
| [in] | rhstyp[] | 配列 rhstyp[3]
右辺行列タイプ.
rhstyp[0]: 行列データ格納形式.
= 'F': 密行列.
= 'M': 係数行列と同形式.
rhstyp[1]: 初期推定ベクトル.
= 'G': 初期推定ベクトルを格納.
rhstyp[2]: 解ベクトル.
= 'X': 解ベクトルを格納.
注 - 右辺行列が格納されていないとき(nrhs <= 0)は rhstyp[] は参照されない. |
| [in] | nrhs | 右辺行列の列数. (nrhs >= 0) |
| [in] | nrhsix | 右辺行列の行インデックス数. (nrhsix > 0) (rhstyp[0] = 'M', mxtype[2] = 'A' (疎行列) の場合) |
| [in] | rhsval[] | 配列 rhsval[lrhsval]
右辺行列値. |
| [in] | lrhsval | rhsval[] の配列サイズ. (lrhsval >= nrow*nrhs (rhstyp[0] = 'F' (密行列) の場合), lrhsval >= nrhsix (rhstyp[0] = 'M', mxtype[2] = 'A' (疎行列) の場合), lrhsval >= nnz*nrhs (rhstyp[0] = 'M', mxtype[2] = 'E' (有限要素行列) の場合))
mxtype[0] = 'C' (データ型 = 複素数) の場合, lrhsval は2倍になる. |
| [in] | rhsptr[] | 配列 rhsptr[lrhsptr]
右辺行列の行ポインタ(CSRの場合), 列ポインタ(CSC の場合), 行インデクス(COO の場合). (rhstyp[0] = 'M', mxtype[2] = 'A' (疎行列) の場合) |
| [in] | lrhsptr | rhsptr[] の配列サイズ. (lrhsptr >= nrow + 1 (CSRの場合), lrhsptr >= nrhs + 1 (CSCの場合), lrhsptr >= nrhsix (COOの場合)) |
| [in] | rhsind[] | 配列 rhsind[lrhsind]
右辺行列の列インデクス(CSR あるいは COO の場合), または 行インデクス(CSC の場合). (rhstyp[0] = 'M', mxtype[2] = 'A' (疎行列) の場合) |
| [in] | lrhsind | rhsind[] の配列サイズ. (lrhsind >= nrhsix) |
| [in] | sguess[] | 配列 sguess[lsguess]
初期推定ベクトル. (rhstyp[1] = 'G' の場合) |
| [in] | lsguess | sguess[] の配列サイズ. (lsguess >= nrow*nrhs)
mxtype[0] = 'C' (データ型 = 複素数) の場合, lsguess は2倍になる. |
| [in] | xexact[] | 配列 xexact[lxexact]
解ベクトル. (rhstyp[2] = 'X' の場合) |
| [in] | lxexact | xexact[] の配列サイズ. (lxexact >= nrow*nrhs)
mxtype[0] = 'C' (データ型 = 複素数) の場合, lxexact は2倍になる. |
| [in] | base | ptr, ind, rhsptr および rhsind のインデクス形式.
= 0: 0-ベース(C形式): 開始インデクス値が 0.
= 1: 1-ベース(Fortran形式): 開始インデクス値が 1. |
| [in] | fchk | 指定されたファイルがすでに存在してかどうかをチェックするかを指定する.
= 0: チェックせずに上書きする.
= 1: 指定されたファイルがすでに存在していればエラー (info = 2) を返す. |
| [in] | format | 疎行列の格納形式.
= 0: CSR形式.
= 1: CSC形式.
= 2: COO形式. |
| [in] | int_n | (省略可)
整数の出力フォーマット(行あたりの出力数). (int_n = 0 の場合, int_n = 9 および int_w = 10 とみなす) |
| [in] | int_w | (省略可)
整数の出力フォーマット(出力幅(桁数)). |
| [in] | dbl_n | (省略可)
浮動小数の出力フォーマット(行あたりの出力数). (dbl_n = 0 の場合, dbl_n = 3, dbl_w = 23 および dbl_d = 15 とみなす) |
| [in] | dbl_w | (省略可)
浮動小数の出力フォーマット(全体の出力幅(桁数)). |
| [in] | dbl_d | (省略可)
浮動小数の出力フォーマット(小数点以下の出力幅(桁数)). |
| [out] | info | = 0: 正常終了.
< 0: (-info)番目の入力パラメータの誤り.
= 1: ファイルがオープンできなかった.
= 2: ファイルがすでに存在する.
= 4: 読み出しフォーマットの誤り. |
|