matrix json arrayをcholmodで解く

1. text inputの形式

[[0,2,0,...],[0,0,3,0,......],...,[...]]

2. vimで変換

:%s/\],\[/\r/g
:%s/\[\[//g
:%s/\]\]//g

=>

0,2,0,..........
0,0,3,0,.........
.......

という形式になる
これをmatrix.json.txtとして保存した

3. MATLABでMatrix Market Formatに変換する
ここのmmwrite.mを使った
http://math.nist.gov/MatrixMarket/mmio/matlab/mmiomatlab.html

A = dlmread('matrix.json.txt');
B = sparse(A);
mmwrite('output.tri',B);

これでoutput.triが出力される
あとはcholmodに食わせればよい。

4. 計算実行

$ time ./cholmod_demo < output.tri

---------------------------------- cholmod_demo:
cholmod version 3.0.4
SuiteSparse version 4.4.2
norm (A,inf) = 1.95833
norm (A,1)   = 4.60089
CHOLMOD sparse:  A:  1852-by-1852, nz 12988, up/lo.  OK
CHOLMOD dense:   B:  1852-by-1,   OK
bnorm 1.99946
Analyze: flop 2.73833e+06 lnz 64137
Factorizing A*A'+beta*I
CHOLMOD factor:  L:  1852-by-1852  supernodal, LL'.  nz 77557  OK
Ordering: AMD     fl/lnz       42.7  lnz/anz        3.1
ints in L:           10655, doubles in L:           95907
factor flops 2.73833e+06 nnz(L)           64137 (w/no amalgamation)
nnz(A):              20844
flops / nnz(L):      42.7
nnz(L) / nnz(A):      3.1
analyze cputime:        0.0000
factor  cputime:         0.0000 mflop:      0.0
solve   cputime:         0.0000 mflop:      0.0
overall cputime:         0.0000 mflop:      0.0
solve   cputime:         0.0000 mflop:      0.0 (100 trials)
solve2  cputime:         0.0000 mflop:      0.0 (100 trials)
peak memory usage:            2 (MB)
residual (|Ax-b|/(|A||x|+|b|)): 4.99e-16 4.73e-16 4.73e-16 6.20e-17
rcond     1.5e-01


CHOLMOD GPU/CPU statistics:
SYRK  CPU calls          505 time   0.0000e+00
      GPU calls            0 time   0.0000e+00
GEMM  CPU calls          335 time   0.0000e+00
      GPU calls            0 time   0.0000e+00
POTRF CPU calls          171 time   0.0000e+00
      GPU calls            0 time   0.0000e+00
TRSM  CPU calls          170 time   0.0000e+00
      GPU calls            0 time   0.0000e+00
time in the BLAS: CPU   0.0000e+00 GPU   0.0000e+00 total:   0.0000e+00
assembly time   0.0000e+00    0.0000e+00
./cholmod_demo < output.tri  0.19s user 0.00s system 97% cpu 0.195 total