一般的なスパース形式(圧縮された行)で格納されたスパース行列を使用しています。つまり、行列を保存します。
0 x y 0
0 0 0 0
z 0 0 0
次の形式で:
- マトリックスの寸法:[3,4]
- 各行のオフセット:[0,2,2,3]
- ゼロ以外の各エントリの列:[1,2,0]
- ゼロ以外の要素:[x、y、z]
スパースパターン(つまり、上記の整数を持つ最初の3つのベクトル)を「キャッシュ」できるハッシュ関数を探しています。そのためには、使用する予定のハッシュマップ実装に提供できる優れたハッシュ関数、つまりC++が必要だと思いますstd::unordered_map
。
このような問題に適したハッシュ関数を見つけるためのヒントはありますか?