在 Eigen 中,稀疏矩阵可以包含向量/对象而不是简单的标量值吗?

计算科学 稀疏矩阵 表现 向量 本征
2021-11-26 20:29:28

我需要一个稀疏矩阵,其元素不是简单的数字,而是对象,例如几个浮点值和一堆整数索引。

我想知道 Eigen 是否有类似的东西,除了它的Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >类模板(到目前为止我发现的唯一稀疏矩阵),它只接受一个标量模板参数。

我知道我可以使用 SoA(数组结构)方法,但在这种特定情况下,出于数据局部性的原因,我正在尝试使用 AoS(结构数组)方法。

1个回答

当然。您必须为文档中的此页面上列出的类型定义一些内容:

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

它基本上归结为为您的类型适当地定义算术运算符,以及专门描述您的类型的特征模板 NumTraits。上面的链接有几个示例可供您参考。