代码之家  ›  专栏  ›  技术社区  ›  Daiver

稀疏解算器的特征非常数矩阵替换

  •  1
  • Daiver  · 技术社区  · 6 年前

    https://eigen.tuxfamily.org/dox/group__MatrixfreeSolverExample.html

    但在本例中,由于通用的\u product\u impl签名,自定义矩阵产品对象应该是常量

    template<typename Dest>
    static void scaleAndAddTo(
        Dest& dst, 
        const MatrixReplacement& lhs, 
        const Rhs& rhs, 
        const Scalar& alpha)
    

    在我的许多问题中,每次产品调用都需要很多临时缓冲区。分配它们一次是非常明智的,但我不能把它们存储在里面 MatrixReplacement

    在Eigen中有可能克服这个问题吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Max Langhof    6 年前

    1. 使用 mutable 需要在中更改的成员的关键字 const 方法(即临时缓冲区)。当类的可观察行为发生时,这个关键字是有意义的

    2. C++对传播不是完全严格的 . A. const unique_ptr<T> 将返回一个(非常量) T&

    我建议选择1。