我需要一个稀疏矩阵,其元素不是简单的数字,而是对象,例如几个浮点值和一堆整数索引。
我想知道 Eigen 是否有类似的东西,除了它的Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >
类模板(到目前为止我发现的唯一稀疏矩阵),它只接受一个标量模板参数。
我知道我可以使用 SoA(数组结构)方法,但在这种特定情况下,出于数据局部性的原因,我正在尝试使用 AoS(结构数组)方法。
我需要一个稀疏矩阵,其元素不是简单的数字,而是对象,例如几个浮点值和一堆整数索引。
我想知道 Eigen 是否有类似的东西,除了它的Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >
类模板(到目前为止我发现的唯一稀疏矩阵),它只接受一个标量模板参数。
我知道我可以使用 SoA(数组结构)方法,但在这种特定情况下,出于数据局部性的原因,我正在尝试使用 AoS(结构数组)方法。
当然。您必须为文档中的此页面上列出的类型定义一些内容:
https://eigen.tuxfamily.org/dox/TopicCustomizing_CustomScalar.html
它基本上归结为为您的类型适当地定义算术运算符,以及专门描述您的类型的特征模板 NumTraits。上面的链接有几个示例可供您参考。