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

◆ mm_read()

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

Matrix Market形式ファイルの読み出し

目的
Matrix Market形式ファイルから疎行列(CSR, CSC または COO形式)または密行列を読み出す.
引数
[in]fname入力ファイル名.
fname = NULL の場合, stdinが使われる.
[out]matcode[]配列 matcode[4]
行列タイプコード.
matcode[0]:
= 'M': matrixを表す.
matcode[1]: 格納形式.
= 'C': 疎行列 (COO形式).
= 'A': 密行列 (列優先).
matcode[2]: データ型.
= 'R': 実数.
= 'I': 整数.
= 'C': 複素数.
= 'P': パターン (ptr と ind のみ格納され, データ val は格納されない)
matcode[3]: 行列の形状.
= 'G': 一般行列.
= 'S': 対称行列.
= 'Z': 歪対称行列.
= 'H': エルミート行列.
[out]nrow行列の行数.
[out]ncol行列の列数.
[out]nnz行列の非ゼロ要素数 (疎行列の場合のみ).
[out]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)
[out]ptr[]配列 ptr[lptr]
非ゼロ要素の行ポインタ(CSR形式で格納する場合), 列ポインタ(CSC形式で格納する場合), または, 行インデクス(COO形式で格納する場合).
matcode[1] = 'A' のときは参照されない.
[in]lptrptr[] の配列サイズ. (lptr >= ncol + 1 (CSC形式で格納する場合), lptr >= nrow + 1 (CSR形式で格納する場合), lptr >= nnz (COO形式で格納する場合))
[out]ind[]配列 ind[lind]
非ゼロ要素の行インデクス(CSC形式で格納する場合)または列インデクス(CSRまたはCOO形式で格納する場合).
matcode[1] = 'A' のときは参照されない.
[in]lindind[] の配列サイズ. (lind >= nnz)
[in]skip一部のデータだけを読み出すかどうかを指定する.
= 0: すべてのデータを読み出す.
= 1: ヘッダーとサイズだけを読み出す(行列データを読み出さない).
[in]baseptr[] および ind[] のインデクス形式.
= 0: 0-ベース(C形式): 開始インデクス値が 0.
= 1: 1-ベース(Fortran形式): 開始インデクス値が 1.
[in]format読み出した行列の格納形式.
= 0: CSR形式.
= 1: CSC形式.
= 2: COO形式.
[in]sort読み出した疎行列を行内で列番号の昇順(CSR の場合) または 列内で行番号の昇順(CSC の場合)に並べ替えるかどうかを指定.
= 0: 並べ替えを行わない.
= 1: 並べ替えを行う.
[out]info= 0: 正常終了.
= i < 0: (-i)番目の入力パラメータの誤り.
= 1: ファイルがオープンできなかった.
= 3: ファイル読み出しエラー.
= 4: タイプ指定の誤り.