学习日记-spmv(1)

SPMV稀疏矩阵向量乘笔记(1)

存储格式

  1. COO格式
    三元组来表示,分别是(行号,列号,数值)。
    学习日记-spmv(1)_第1张图片
  2. CSR格式
    三类数据来表达:行偏移,数值所属列号,数值。通常,行偏移是最难理解的,其中一种比较好理解是前n行有多少个非零元素(n就是索引,从0开始),例如当n=1,值为2表示前1行有两个元素,当n=2,值为4表示前2行有四个非零元素。
    学习日记-spmv(1)_第2张图片
  3. CSC格式
    同理,第二种为行便宜,该种为列偏移,不过多解释。
  4. ELLPACK (ELL)
    用两个和原始矩阵相同行数的矩阵来存:第一个矩阵存的是第二个矩阵元素对应的原始矩阵列号,第二个矩阵存的是每行的非零数值,对应原始的每行。以标志比如*结束。
    学习日记-spmv(1)_第3张图片
  5. Diagonal (DIA)
    DIA格式是对于矩阵元分布在主对角线以及主对角线附近的稀疏矩阵,采取这种存储方式比较有效。如下面的例子。我们沿着对角线划分矩阵,主对角线的指标为0,左下方的对角线依次用-1,-2 等表示,右上方的对角线分布用1,2,3等表示。例子中仅有0,-2,1三条对角线的矩阵元不为零。因此用一个4x3的矩阵存储这些矩阵元,每一列代表其中的一条对角线。由于次对角线的长度小于行的长度。因此对于左下方的对角线的元素,从下往上存储,而右上方的对角线从上往下存储。
    的元素,从下往上存储,而右上方的对角线从上往下存储。
    学习日记-spmv(1)_第4张图片

你可能感兴趣的:(SPMV,学习)