gpt4 book ai didi

c++ - Eigen 库得到 "comma initilizer",为什么将 column-major 设置为默认值?

转载 作者:行者123 更新时间:2023-12-02 10:25:48 25 4
gpt4 key购买 nike

根据 Eigen (C++) 库的文档,默认矩阵是列优先的。如此有效,一个小的 3x3 矩阵将类似于

1 4 7
2 5 8
3 6 9

然后它得到了comma initializer,前端看起来是行优先的,但后端仍然是列优先的

Example: (from eigen doc)
Matrix3f m;
m << 1, 2, 3,
4, 5, 6,
7, 8, 9;

std::cout << m;

output:
1 2 3
4 5 6
7 8 9

是的,我知道 RowMajor 是创建行优先矩阵所需的全部。我想知道,既然他们有 Comma initializer,为什么他们将 column-major 作为默认值?

最佳答案

其中一个原因(可能不是主要的)是与原始数据缓冲区接口(interface)时。通过 OpenGL 发送到着色器程序的矩阵缓冲区是列主要的,并且相似性允许您仅调用 .data() 就可以将特征矩阵发送到着色器

关于c++ - Eigen 库得到 "comma initilizer",为什么将 column-major 设置为默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26535118/

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