c++ - 应该避免使用 Eigen 不支持的模块吗?
问题描述
流行的线性代数库Eigen带有一长串所谓的“不支持”模块,例如用于 FFT、数值微分或欧拉角的模块。
在 Eigen 文档中,明确指出:
这些模块是来自不同用户的贡献。它们是“按原样”提供的,没有任何支持。
不幸的是,文档中没有关于可能停止不受支持的模块、对实现质量的要求、测试级别等的声明。
这给我留下了以下问题:
- 如果我希望我的软件能稳定几年(并且至少与未来的主要/次要 Eigen 版本兼容),我是否应该使用 Eigen 不受支持的模块。示例:特别是,我想避免在从 Eigen 3.7.x 升级到 3.8.x 时我正在使用的不受支持的模块丢失的情况。
- 关于不受支持的模块的稳定性和可用性,是否有任何经验或意见?
(为了完整起见:我正在考虑的特定不受支持的模块是EulerAngles模块)。
解决方案
一般来说,我建议尝试不支持的模块,并就它们的有用性、错误、API 更改建议等提供反馈。这是目前不支持的模块最终转移到标准模块的最有可能的方式。
如果 API 发生变化或模块变得稳定(理想情况下,这只需要更改 ),您需要准备好更改部分源代码#include
- 当然,如果您想与新旧 Eigen 兼容,这可能会更复杂版本。
我想说 EulerAngles 模块非常稳定且经过充分测试,并且已经很好地集成到 Geometry 模块中——但它可能没有被大量使用(我们没有关于单个模块使用情况的统计数据)。
相比之下,张量模块(@datell 提到)被大量使用(例如,TensorFlow),但在我看来,它还没有很好地集成到 Eigen 的其余部分中(例如,文档大多是一个单一.md
的,并不完全包含在- 与当前 API 同步):http ://eigen.tuxfamily.org/dox-devel/unsupported/eigen_tensors.html
注意:我是 Eigen 维护者之一。
推荐阅读
- root - 如何根植您自己的 AOSP 版本?
- python - Sqlalchemy 使用 LIKE 查询数组列
- c++ - 如何将 QPixmap 从 C++ 模型传递到 QML?
- python - 如何将线条粗细限制为宽度并排除线条的尖端(matplotlib)
- powerbi - Power-Bi 上个月平均常数
- web - 如何在我的 MERN 堆栈网页中构建聊天应用程序?
- pdf-generation - 使用 maatwebsite/excel 生成的 pdf 文档可以包含多列/水平滚动吗?
- linux - 在同一 docker 主机上的不同容器上托管站点
- database - 为什么在系统版本表中使用非聚集主键?
- linux - Linux 服务器 RAM 和 ROM 使用情况