XLPack 7.0
XLPack 数値計算ライブラリ (C API) リファレンスマニュアル
読み取り中…
検索中…
一致する文字列を見つけられません

◆ mm_write()

void mm_write ( char *  fname,
char *  matcode,
int  nrow,
int  ncol,
int  nnz,
double  val[],
int  lval,
int  ptr[],
int  lptr,
int  ind[],
int  lind,
int  base,
int  fchk,
int  format,
int *  info 
)

Matrix Market形式ファイルへの書き込み

目的
Matrix Market形式ファイルに疎行列(CSR, CSC または COO形式)または密行列を書き込む.

疎行列データの内容チェックは行わずに格納順にそのまま書き込む.
引数
[in]fname入力ファイル名.
fname = NULL の場合, stdoutが使われる.
[in]matcode[]配列 matcode[4]
行列タイプコード.
matcode[0]:
= 'M': matrixを表す.
matcode[1]: 格納形式.
= 'C': 疎行列 (COO形式).
= 'A': 密行列 (列優先).
matcode[2]: データ型.
= 'R': 実数.
= 'I': 整数.
= 'C': 複素数.
= 'P': パターン (rowindとcolindのみ格納され, データ val は格納されない)
matcode[3]: 行列の形状.
= 'G': 一般行列.
= 'S': 対称行列.
= 'Z': 歪対称行列.
= 'H': エルミート行列.
[in]nrow行列の行数. (nrow >= 0) (nrow = 0 の場合, 処理を行わずに戻る)
[in]ncol行列の列数. (ncol >= 0) (ncol = 0 の場合, 処理を行わずに戻る)
[in]nnz行列の非ゼロ要素数. (nnz >= 0) (nnz = 0 の場合, 処理を行わずに戻る)
[in]val[]配列 val[lval]
疎行列の非ゼロ要素, または, 密行列の全要素.
データ型が整数のときには書き込み時に丸められる.
matcode[2] = 'P' のときは参照されない.
[in]lvalval[] の配列サイズ. (lvalは次のとおり)
格納タイプ  データ型              行列の形状       lval (最小値)
----------- -------------------- ---------------- -----------------
疎行列,     実数 または 整数:                     nnz
            複素数:                               2*nnz
密行列,     実数 または 整数,    一般行列:        nrow*ncol
                                 対称行列:        ncol*(ncol + 1)/2
                                 歪対称行列:      ncol*(ncol - 1)/2
            複素数,              一般行列:        2*nrow*ncol
                                 対称行列:        ncol*(ncol + 1)
                                 歪対称行列:      ncol*(ncol - 1)
                                 エルミート行列:  ncol*(ncol + 1)
[in]ptr[]配列 ptr[lptr]
非ゼロ要素の行ポインタ(CSR形式で格納されている場合), 列ポインタ(CSC形式で格納されている場合), または, 行インデクス(COO形式で格納されている場合).
matcode[1] = 'A' のときは参照されない.
[in]lptrptr[] の配列サイズ. (lptr >= ncol + 1 (CSC形式で格納されている場合), lptr >= nrow + 1 (CSR形式で格納されている場合), lptr >= nnz (COO形式で格納されている場合))
[in]ind[]配列 ind[lind]
非ゼロ要素の行インデクス(CSC形式で格納されている場合)または列インデクス(CSRまたはCOO形式で格納されている場合).
matcode[1] = 'A' のときは参照されない.
[in]lindind[] の配列サイズ. (lind >= nnz)
[in]baseptr[] および ind[] のインデクス形式.
= 0: 0-ベース(C形式): 開始インデクス値が 0.
= 1: 1-ベース(Fortran形式): 開始インデクス値が 1.
[in]fchk指定されたファイルがすでに存在してかどうかチェックするかを指定する.
= 0: チェックせずに上書きする.
= 1: 指定されたファイルがすでに存在していればエラー(info = 2)を返す.
[in]format入力行列の格納形式.
= 0: CSR形式.
= 1: CSC形式.
= 2: COO形式.
[out]info= 0: 正常終了.
= i < 0: (-i)番目の入力パラメータの誤り.
= 1: ファイルがオープンできなかった.
= 2: ファイルがすでに存在する.