【问题标题】:Suitable hash function for matrix sparsity pattern适用于矩阵稀疏模式的哈希函数
【发布时间】:2012-05-25 04:28:30
【问题描述】:

我正在处理以一般稀疏格式(压缩行)存储的稀疏矩阵。 IE。我存储矩阵:

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

对于如何为此类问题找到一个好的散列函数,有人有一些提示吗?

【问题讨论】:

    标签: c++ hash hashmap sparse-matrix unordered-map


    【解决方案1】:

    如果您的 CSR 表示每个矩阵都是唯一的,即非零元素以从左到右、从上到下的顺序出现,那么您可以散列所有向量并使用 boost::hash_combine 组合散列(如果您不'不想依赖 Boost,只需复制粘贴它,它很短)。

    【讨论】:

    • 关于boost::hash_combine 的重要提示。我会仔细看看的。我的非零元素确实像你建议的那样排序。
    猜你喜欢
    • 2015-03-19
    • 2019-07-31
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 2014-05-22
    • 1970-01-01
    相关资源
    最近更新 更多