Linux で巨大な疎行列を効率的に計算するための C/C++ インターフェイスを探しています。マトリックスは、数百万×数千/数千になる可能性があります。いくつかの既存のライブラリを確認しましたが、私の要件をすべて満たすものはないようです。
1、要素を動的に追加して疎行列を作成する必要があります。(SparseLib++ ではありません)
2、別の疎行列の列を異なるスカラーでスケーリングできるように、疎対角行列を作成できる必要もあります。(このためのライブラリが見つかりませんでした。また、疎行列を列ごとにスケーリングする別の方法があるかもしれません)
3、行列/ベクトルで乗算された行列の操作をサポートする必要があります(多くのライブラリがこれらの基本的な操作をサポートしています)
4、MATLAB の .* や ./ のように、2 つのスパース行列またはベクトル間のエントリごとの乗算または除算をサポートする必要があります (このためのライブラリが見つかりませんでした。1 つのスパースのいくつかのエントリを選別するためにこの操作が必要です)行列と別の疎行列)
5、マトリックス反転または線形ソルバー。(ほとんどのライブラリは、線形システムのソルバーを提供します)
私は元々、アルゴリズムを実装するために Python で scipy を使用していました。Python はメモリを消費しすぎて遅いので、プログラムを C に変換したいと考えています。
ありがとう。