カスタム化された行列ライブラリに大きく依存しているコードを最適化しています(これはどこにでもあるのでプロジェクトから除外されません。 ...)多くの計算が10〜20行と列の行列で行われ、多くの計算が、私は多くの場合、Aが希薄であることに気づき、私はこの事実を利用したいと思いスパース行列を使用した2次形式の行列乗算のアルゴリズム
C = A*B*A'
のような二次形式が含まれます。だから私はこのケースを処理するアルゴリズムを探しています。数値的安定性が重要です。私が使用できるものはありますか? (私はライブラリを書いていないので、考慮すべき落とし穴があるかどうかはわかりません)
単純なO(n^3)乗法は、数値的な安定性が必要でマトリックスがあまり大きくないので、StrassenのアルゴリズムとCoppersmith-Winogradのアルゴリズムは、私が探しているアルゴリズムではないと思います。代わりに、それはちょうどAのゼロをチェックできる方法での二次形式の乗算です。
ありがとうございました!
「クローズ」に投票した人は誰ですか?私はこの質問が完全に有効であり、プログラミングに関連していることを知ります – nacho4d
私はあなたが小さな行列でスパース性を利用することから多くの利益を得ることは確かではありません。 –