gpt4 book ai didi

c++ - 在 Eigen 源中的哪个位置是为特定矩阵定义的 sum() 函数?

转载 作者:行者123 更新时间:2023-11-28 01:48:15 27 4
gpt4 key购买 nike

我是 Eigen 的新手,正在尝试了解布局。我注意到每个矩阵都有一个 sum() 函数,它返回给定矩阵中所有系数的总和。我对它的实现方式很感兴趣,因为我想找到遍历特征矩阵的最佳方法。我进入源代码,在“DenseBase.h”中找到了如下接口(interface):EIGEN_DEVICE_FUNC 标量 sum() const;也许我误解了 Eigen 是如何设计的,但我认为所有的函数都是在它们的头文件中定义的。我还查看了“Matrix.h”和“MatrixBase.h”,但无法找到实现。定义在哪个头文件中?

最佳答案

sum()函数来自Eigen::internal::scalar_sum_op<Scalar>()通过 redux 调用在 Redux.h 中。 scalar_sum_op 在 Functors.h 中定义。之后我就失去了兴趣。我发现了这两种方式。第一个是使用 Visual Studio 并右键单击 sum()并选择“Go to Definition”,跟随线索直到我满意为止。第二种是使用 grep 搜索 sum()并再次追踪。

如果您通读 Redux.h,您将了解开发人员是如何做到的。他们花费大量精力对事物进行矢量化和展开,以使其工作速度更快。我会说遍历 Eigen 矩阵的最好方法是使用提供的接口(interface)来做你想做的事。我怀疑您是否有接口(interface)未以某种方式涵盖的用例。

关于c++ - 在 Eigen 源中的哪个位置是为特定矩阵定义的 sum() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44002523/

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