Sparse Matrix

行列の和を計算するメソッドが

for ( i: 1 .. M )
for ( j: 1 .. N )
c[i][j] = a[i][j] + b[i][j]

なのは、まずい。
空間計算量はハッシュが均一と仮定するとO(非ゼロ要素数)だが、
時間計算量が O(次元数 ^ 2) になってしまい、 SparseMatrixにする意味がない。

イテレータでまわしましょう。

掛け算はどうするかなあ。

sparse matrix multiplication でぐぐるといろいろあるね。