私は ublas::Compressed Matrix を使用して、スパース線形ソルバーである UMFPACK を操作しています。私はシミュレーションを行っているため、係数行列の拡大/縮小といくつかの疎行列の乗算が含まれる可能性がある線形システムがわずかに異なる方法で構築されるたびに。線形システムの規模は約 25k です。
Boost が UMFPACK で動作するためのバインディング パッチがあっても、マトリックスを時々変更する必要があります。行列を初期化するときのゼロ以外の値)。また、ublas::range を使用して列/行を動的に追加します。
私の質問は次のとおりです。これを行う効率的な方法はありますか? 今のところ、私には遅すぎます。15k のような次元の行列を転置すると、ほぼ 6 秒かかり、約 12k 行を追加するのは高速ですが (これは行優先の行列だと思います)、行列に同じ数の列を追加すると、最大 20 秒かかります (同じだと思います)。そのため、列優先の行列を使用しても、必要な合計時間は同じになります)。
ここでちょっと必死になっています。どんな提案でも大歓迎です。
乾杯。