【问题标题】:What are the differences between the various boost ublas sparse vectors?各种 boost ublas 稀疏向量之间有什么区别?
【发布时间】:2010-08-03 18:29:38
【问题描述】:

boost::numeric::ublas中,有three sparse vector types

我可以看到mapped_vector 本质上是一个从索引到值的stl::map,它将所有未找到的值都视为 0(或任何常见值)。

但是关于compressed_vectorcoordinate_vector 的信息的文档很少(哈哈)。

有人能解释一下吗?我试图弄清楚将项目添加到各种向量的算法复杂性,以及两个这样的向量之间的点积。

提供了一个非常有用的答案,compressed_vector 与compressed_matrix 非常相似。但是,例如,compressed row storage 似乎仅用于存储矩阵——而不仅仅是向量。

我看到unbounded_array 是存储类型,但我也不太确定规范是什么。如果我创建一个大小为 200,000,000 但只有 5 个非零位置的压缩向量,这是否比创建大小为 10 和 5 个非零位置的压缩向量效率低?

非常感谢!

【问题讨论】:

    标签: c++ data-structures boost ublas


    【解决方案1】:

    用向量替换矩阵,你就有答案了

    http://www.guwi17.de/ublas/matrix_sparse_usage.html

    【讨论】:

    • @mohawkjohn 对于您可能想要的产品压缩向量
    • 好的,毕竟这并不能完全回答我的问题。例如,compressed_matrix 使用压缩行存储进行存储。但是compressed_vector 不能这样存储,不是吗?
    • @mohawkjohn 当然可以,它所做的只是存储连续的非零元素块。
    猜你喜欢
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 2011-05-24
    • 2012-09-17
    相关资源
    最近更新 更多