以下愚痴です。
200x200、場合によってはもっと大きなスカスカの行列(疎行列っていうの?)があって、出来るだけ高速にこいつの積が欲しい。
ってことで、boost の Sparse Matrix に注目してみた。
とりあえず mapped_matrix を使ってみたところ、メモリ消費はかなり少なくなっているよう。
けれど prod してみると…遅ぇ〜!!
コンパイラオプションで最適化がガンガン効くようにして、更に BOOST_UBLAS_INLINE=__forceinline を定義しても、素直に自前で書いた行列積の方が速い。
Sparse Matrix ってのはメモリを節約するだけで、演算の省略はしてくれないのかな。
symmetric_matrix とか banded_matrix なんかが良いのかもしれないけれど、使い方が面倒なのでとりあえず保留。
誰か「これを使え!」みたいなのを知ってる人教えてください。