适用于矩阵稀疏模式的哈希函数

Suitable hash function for matrix sparsity pattern

本文关键字:哈希 函数 模式 适用于      更新时间:2023-10-16

我正在使用以一般稀疏格式(压缩行(存储的稀疏矩阵。 即我存储矩阵:

0 x y 0
0 0 0 0 
z 0 0 0

以以下形式:

  • 矩阵尺寸: [3,4]
  • 每行的偏移量:[0,2,2,3]
  • 每个非零条目的列:[1,2,0]
  • 非零元素:[x,y,z]

正在寻找允许我"缓存"稀疏模式(即上面带有整数的前三个向量(的哈希函数。为此,我想我需要一个好的哈希函数,我可以将其提供给我计划使用的哈希映射实现,即C++的std::unordered_map

有没有人对如何为这样的问题找到一个好的哈希函数有一些提示?

如果你的CSR表示在每个矩阵中都是唯一的,即非零元素以从左到右,从上到下的顺序出现,那么你可以对所有向量进行哈希处理并使用boost::hash_combine组合哈希(如果你不想依赖Boost,只需复制粘贴它,它很短(。