gpt4 book ai didi

c++ - Eigen 和惰性评估

转载 作者:搜寻专家 更新时间:2023-10-31 01:37:39 27 4
gpt4 key购买 nike

我在我的程序中使用 Eigen3 处理与矩阵相关的所有内容。我知道 Eigen 使用惰性评估来优化所有计算。我想知道这样的操作是否在有限的不必要计算的意义上进行了优化:

D = (A*B*C)(0,0);

其中 A、B、C 是矩阵,D 是标量。用英语来说,我只需要矩阵乘积的一个元素。

谢谢。

最佳答案

对于所有系数运算,答案是肯定的。然而,矩阵产品是特殊的,因为出于效率原因,它们默认在临时产品中评估。您可以使用 lazyProduct 强制对矩阵积进行惰性计算:

double ABij = A.lazyProduct(B)(i,j);

对于像 A*B*C 这样的“三重”产品,情况更加棘手,因为无论如何都会评估嵌套产品(以避免在一般情况下进行多次重新评估),因此您必须自己限制,例如:

 A.lazyProduct(B*C.col(j))(i);

关于c++ - Eigen 和惰性评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33844318/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com