0

有人能告诉我,我在哪里可以找到 OpenFOAM、PETSc 或类似工具实现的矩阵乘法的源代码?它不能是微不足道的算法。我找到了 OpenFOAM 和 PETSc 的主页,但在文档中我找不到乘法方法和源代码。

4

1 回答 1

1

PETSc 实现了多种格式的矩阵乘法,看这部分MatMult_SeqAIJ了解最基本的实现。对于以压缩稀疏行形式存储的稀疏矩阵,具有行开始ai、列索引aj和条目aa,乘法由以下简单内核组成。

for (i=0; i<m; i++) {
  y[i] = 0;
  for (j=ai[i]; j<ai[i+1]; j++)
    y[i] += aa[j] * x[aj[j]];
}
于 2011-02-15T15:56:48.430 回答