首页 > 解决方案 > 应该避免使用 Eigen 不支持的模块吗?

问题描述

流行的线性代数库Eigen带有一长串所谓的“不支持”模块,例如用于 FFT、数值微分或欧拉角的模块。

在 Eigen 文档中,明确指出:

这些模块是来自不同用户的贡献。它们是“按原样”提供的,没有任何支持。

不幸的是,文档中没有关于可能停止不受支持的模块、对实现质量的要求、测试级别等的声明。

这给我留下了以下问题:

(为了完整起见:我正在考虑的特定不受支持的模块是EulerAngles模块)。

标签: c++eigeneigen3stability

解决方案


一般来说,我建议尝试不支持的模块,并就它们的有用性、错误、API 更改建议等提供反馈。这是目前不支持的模块最终转移到标准模块的最有可能的方式。

如果 API 发生变化或模块变得稳定(理想情况下,这只需要更改 ),您需要准备好更改部分源代码#include- 当然,如果您想与新旧 Eigen 兼容,这可能会更复杂版本。


我想说 EulerAngles 模块非常稳定且经过充分测试,并且已经很好地集成到 Geometry 模块中——但它可能没有被大量使用(我们没有关于单个模块使用情况的统计数据)。

相比之下,张量模块(@datell 提到)被大量使用(例如,TensorFlow),但在我看来,它还没有很好地集成到 Eigen 的其余部分中(例如,文档大多是一个单一.md的,并不完全包含在- 与当前 API 同步):http ://eigen.tuxfamily.org/dox-devel/unsupported/eigen_tensors.html

注意:我是 Eigen 维护者之一。


推荐阅读