スパース行列と線形代数のJavaライブラリ
Java使いです。
これまでSparse matrixのライブラリには
古き良きColt*1を利用していました。
SparseDoubleMatrix2D, ですね。
ただ、今回自分史上最大のsparse matrixを作ろうとしたら
matrix:too largeと言われて作れなくなってしまいました。
次に、最近メインで使っているApache commonsを見ると
なんとsparse matrixはdeprecated...
Apache Commons - Apache Commons
SparseRealMatrix (Apache Commons Math 3.3-SNAPSHOT API) <-- Deprecated!!
というわけで探してたどり着いたのが
la4j - Linear Algebra for Java
です。
すると、大きなsparse matrixもちゃんと作れました!すばらしい。
なお、CRS (Compressed Row-wise Sparse) かCCS (Compressed Column-wise Sparse)を使うかは良く考えるといいと思います。読み込み効率が全然違ったりします。
なおこのライブラリ、線形代数ライブラリですね。
sparse, dense matrixの取り扱いもできて、分かり易そうなので、Javaの線形演算は今後このライブラリでいいかもしれません。
*1:大古典だけど今でも一番良く使っている