これは非常に簡単な質問です。三角形の行列で作業し、C++の疎行列で作業するのはどのようなベストプラクティスですか?C++の三角形と疎行列
は三角行列のために私は、カスタムクラス内のデータ構造として
double* myMatrix;
int dimension;
ように簡単なデータ形式を示唆しています。 (私はそれが完全な形の正方行列であることを示唆しています)。そして、要素の設定とアクセスのためのメソッドがあります。
スパース行列の場合 - 行/列内の要素の位置とその値を保存するという2つの方法があります。これはあなたの経験のための質問です - 疎な行列の実装は最高のものになりますか?
P.S.より少ないメモリ、より少ないCPU使用量 - それは私の目標です、私は最も簡単なソリューションではなく、最良のソリューションを探しています。すべての行列は、線形方程式のシステムを解くために使用されます。そして、行列のサイズは膨大になります。
アドバイスをいただきありがとうございます。
Eigenのようなサードパーティライブラリはどうですか? –
あなたが専門家でないかぎり、既存のライブラリを使用してください。 Tim Davisのコードをお勧めします。 CSparse、UMFPACK。 –
私の状況ではサードパーティのライブラリは解決策ではありません。たぶん、私はオープンソースのソリューションを探して、ライセンスが許す限りいくつかのパーツを使うことができますが、何らかの理由でexternモジュールをプロジェクトにdllやlibsとして追加することはできません。 –