问题标签 [eigen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
44195 浏览

c++ - C++ Eigen 库如何比专门的供应商库执行得更好?

我正在查看性能基准:http ://eigen.tuxfamily.org/index.php?title=Benchmark

我不禁注意到 eigen 似乎始终优于所有专门的供应商库。问题是:这怎么可能?有人会假设 mkl/goto 将使用处理器特定的调整代码,而 eigen 是相当通用的。

注意这个http://download.tuxfamily.org/eigen/btl-results-110323/aat.pdf,本质上是一个 dgemm。对于 N=1000,Eigen 得到大约 17Gf,MKL 只有 12Gf

0 投票
1 回答
356 浏览

multithreading - 为发布模式编译时没有多线程

我正在使用 VS2010 中的 Eigen 库对矩阵矩阵乘法进行编程。当我在调试模式下运行时,应用程序使用了我所有的 CPU,但是当我在发布模式下运行时,它只使用 1 个线程。是否需要更改设置才能启用多线程?

0 投票
2 回答
537 浏览

eigen - 当矩阵超过 512x512 时,特征并行性能下降

我使用一个线程和 8 个线程对 Eigen SGEMM 操作进行了基准测试,我得到的是性能在 512x512 达到峰值,但在超过该大小时下降。我想知道这是否有任何具体原因可能与较大矩阵的复杂性有关?我在 Eigen 网站上查看了矩阵矩阵运算的基准,但没有看到任何类似的东西。

在 512x512 时,我的并行速度提高了 4 倍。但在 4096x4096 中,我的速度几乎快了 2 倍。我正在使用 openMP 进行并行处理,并将其降低到一个线程,我将 num_of_threads 设置为两个。

0 投票
1 回答
1569 浏览

matrix - how to change a 1*1 matrix in Eigen to float?

I'm using eigen matrix library.

How can I convert a matrix of 1* 1 to a number(float or others)?

It's OK to do this

But when I try to do this

It said 'cannot convert const Eigen::GeneralProduct to float in assignment'.

0 投票
2 回答
1243 浏览

c - 是否可以将 Eigen 与 c 一起使用?

我对模板编程不是很了解,目前使用的是gsl。我有兴趣看看 Eigen 是否可以在 C 中使用。以前有人在 C 中使用过 Eigen 吗?有什么我可以测试的,看看它是否容易?

0 投票
2 回答
1957 浏览

math - 使用 Eigen 计算 2D 相机的模型视图矩阵

我正在尝试计算我的 2D 相机的模型视图矩阵,但我无法正确计算公式。我使用 Affine3f 变换类,因此矩阵与 OpenGL 兼容。这是我通过反复试验得到的最接近的。这段代码可以旋转和缩放相机,但是如果我同时应用平移和旋转,相机的运动就会变得混乱:相机以旋转的方式移动,这不是我想要的。(这可能是因为我首先应用旋转矩阵然后平移)

我想要的是相机将围绕屏幕空间中的偏移位置旋转和缩放 {(0,0) 在这种情况下是屏幕的中间},然后沿着世界空间中的全局 xy 轴定位 {(0,0) 也是初始在屏幕中间} 到最终位置。我该怎么做?

请注意,我还设置了一个正交投影矩阵,这可能会影响这个问题。

0 投票
1 回答
150 浏览

c++ - 将 Eigen 类型与 boost::bind 一起使用是否会自动违反 Eigen 的“仅通过引用传递”规则?

因为 libeigen 做了特殊的工作来调整其所有类型的内存对齐,它有一个特殊的规则,即在传递特征类型作为参数时,它们应该始终是按引用传递的。

但是我相信 boost::bind 隐含地按值传递。

我的直觉是,将 boost::bind 与 eigen 类型一起使用(并且不使用 boost:ref)会违反 Eigen 的传递引用规则,从而导致问题。

谁能证实这一点?

0 投票
3 回答
653 浏览

c++ - 在 C++ 中强制内存对齐

我想设计一个内部使用 EIGEN 的 API。

基于http://eigen.tuxfamily.org/dox/TopicPassingByValue.html,如果一个类有一个 Eigen 对象作为成员,它不能通过值传递。

有没有直接的方法告诉编译器(例如 g++)我的对象不能按值传递?

0 投票
1 回答
1479 浏览

ios - XCode IOS Apple LLVM 3.1 - Eigen NEON 中断

该问题可能涉及使用 Apple 的 LLVM 3.1 编译器,我确信可以通过禁用 NEON 来解决。但是,我们想使用 NEON。

我也很肯定这是我在 XCode 中设置的错误,但它可能与 Apple 有关。真的,我只是在寻求一些正确方向的提示。

该文件中的每个实例都会出现此丢失的 float32_t 错误。即使第 33 行 typedef 显然已经完成。

更新: 如果我强制#define EIGEN_NO_DEBUG,那么剩下的唯一错误就是缺少 cerrno。事实上,似乎所有的 cXXX 库都丢失了(例如 cstdlib)。但是,如果我将它们包含在 Eigen 之外,它们就会起作用。

0 投票
3 回答
1305 浏览

c++ - 使用 Eigen 与双指针的矩阵表示

我继承了一些代码,这些代码广泛使用双指针来表示二维数组。我没有使用 Eigen 的经验,但它似乎比双指针更易于使用且更健壮。

有没有人知道哪个更可取?