Boost::uBLAS mapped_matrix 是如何运作的?

How Boost::uBLAS mapped_matrix works?

有很多关于 Boost::uBLAS compressed_matrix 和 coordinate_matrix 的参考。但是我没有找到关于mapped_matrix的解释。它是如何实现的?

它采用了哪种稀疏存储策略?

另外:有人可以提供一些论文或书籍的参考吗?

Plus: can someone provide me some reference in papers or books?

该图书馆似乎没有实际的图书。文档在这里

http://www.boost.org/doc/libs/1_66_0/libs/numeric/ublas/doc/matrix_sparse.html#mapped_matrix

快速扫描它会回答您的问题:

How is it implemented.

它作为容器适配器实现。它只存储 non-zero 个元素。这些存储在内部关联容器中。

默认情况下,底层关联容器是 std::map,但可以使用 A 模板参数对其进行自定义。

Wich strategy of sparse storage it uses?

它只存储 non-zero 个元素。这些在内部存储在关联容器中。见上文。

此外,您可以注意到将元素索引转换为关联容器键的精确方式(取决于 F:row-major 或 column-major 组织)和与相应的密集矩阵模型相比,是什么保证了稀疏矩阵中元素的弱总排序。 (见上文)。