什么是表达的特征变换及其运算

我一直在阅读Eigen doc和一些关于Eigen的互联网文章 . 我找到了“表达的特征转换”这个术语 . 我不明白这意味着什么 . 我在doc中找到了几何模块中的空间转换,但我认为空间和表达式转换并不相似 .

如果有人能够根据Eigen指出什么是表达式的变换,那将是很好的 . 他们执行哪种转换,是否有某种明确的转换列表,或者它们是在代表操作数/运算符的类中进行硬编码的?

回答(1)

2 years ago

我认为"Eigen transformation of expression"所指的是 Eigen Expression Template .

基于表达式模板的库可以避免将子表达式评估为临时表,这在很多情况下会导致大的速度提升 . 这称为延迟评估,因为表达式会尽可能晚地进行评估,而不是立即进行评估 . 但是,大多数其他基于表达模板的库总是选择延迟评估 . 这有两个问题:首先,懒惰评估并不总是性能的好选择;第二,惰性评估可能非常危险,例如使用矩阵产品:如果矩阵产品是惰性评估的,矩阵=矩阵*矩阵会产生错误的结果,因为矩阵产品的工作方式 . 在Eigen Lazy Evaluation and Aliasing页面上查看更多信息 .

这是一种从实际计算中抽象表达式(如*,点...)的简单方法 . 您可以在本文中阅读更多相关内容:

并且在Eigen Expression Template page中看起来没有记录 .