Compression 如何以CSR格式表示对称矩阵?

Compression 如何以CSR格式表示对称矩阵?,compression,sparse-matrix,numerical-methods,data-compression,Compression,Sparse Matrix,Numerical Methods,Data Compression,虽然我使用的是C语言,但我相信编程语言和代码是无关的 我想用CSR格式表示一个对称矩阵,用于快速矩阵向量积 我从中读取的输入流只给出矩阵的上三角部分,从左到右,从一行到一行 例如: 0 2 3 5 2 0 1 4 3 1 0 9 5 4 9 0 输入流: 0 2 3 5 0 1 4 0 9 0 如果我用二维数组来建立一个规则矩阵,那就很容易了。我所需要的只是我得到的数据。对于CSR表示,情况并非如此。我所要做的就是在CSR中转置矩阵。这样,矩阵向量积仍然是高效且易于实现的 构建转置需要花费大

虽然我使用的是C语言,但我相信编程语言和代码是无关的

我想用CSR格式表示一个对称矩阵,用于快速矩阵向量积

我从中读取的输入流只给出矩阵的上三角部分,从左到右,从一行到一行

例如:

0 2 3 5
2 0 1 4
3 1 0 9
5 4 9 0
输入流:

0 2 3 5 0 1 4 0 9 0

如果我用二维数组来建立一个规则矩阵,那就很容易了。我所需要的只是我得到的数据。对于CSR表示,情况并非如此。

我所要做的就是在CSR中转置矩阵。这样,矩阵向量积仍然是高效且易于实现的

构建转置需要花费大量的时间,而且内存使用率也会翻一番


这是我能想到的最好的主意。我很欣赏其他方法。

我的一个想法是创建上三角矩阵的转置。在做矩阵向量积的时候,我不会损失任何效率。