我一直在阅读Eigen doc和一些关于Eigen的互联网文章。我找到了“表达的特征转换”这个术语。我不明白这意味着什么。我在doc中的几何模块中找到了空间转换,但我认为空间和表达式转换并不相似。
如果有人能够根据Eigen指出什么是表达式的转换,那将是很好的。他们执行哪种转换,是否有某种明确的转换列表,或者它们是在代表操作数/运算符的类中进行硬编码的?
答案 0 :(得分:0)
我认为你所指的是"表达式的特征转换"是特征表达模板。
基于表达式模板的库可以避免将子表达式评估为临时表,这在很多情况下会导致大的速度提升。这称为延迟评估,因为表达式会尽可能晚地进行评估,而不是立即进行评估。但是,大多数其他基于表达模板的库总是选择延迟评估。这有两个问题:首先,懒惰评估并不总是性能的好选择;第二,惰性评估可能非常危险,例如使用矩阵产品:如果矩阵产品是惰性评估的话,做矩阵=矩阵*矩阵会产生错误的结果,因为矩阵产品的工作方式。
在Eigen Lazy Evaluation and Aliasing 页面上查看更多内容。
这是一种从实际计算中抽象表达式(如*,点......)的简单方法。您可以在本文中详细了解:
在Eigen Expression Template page中看起来没有记录。