eigen相关内容

Eigen C ++中的列式点积

是否有一种简单的方法可以评估尺寸为mxn的2个矩阵(按其类型为Eigen::MatrixXd的A和B)的列式点积,而无需评估A*B或不评估不得不求助于for循环?所得的矢量将需要具有1xn或nx1的尺寸.另外,我正在尝试使用C ++中的Eigen做到这一点 解决方案 有很多方法可以实现此目的,并且都执行惰性评估: res = (A.array() * B.array()).colwi ..
发布时间:2020-04-30 12:01:48 C/C++开发

Eigen:基类模板特化中的类型推导

我尝试编写一个C ++模板类,它应该能够通过相同的接口处理“简单”类型和类似“Eigen :: MatrixBase”的类型。我设法通过两种不同的简单类型获得所需的行为,但很难将Eigen语法压缩到我的最小示例中...也许有人可以给我一个建议? 环顾四周时,这个来了接近我想要的 - 没有Eigen。 此看起来也很相似。 #ifndef __MINIMAL_H__ #define ..
发布时间:2018-08-03 15:04:09 C/C++开发

如何使用OpenCV执行LU分解?

cvInvert()方法采用一个标志CV_LU,它执行LU分解以反转输入矩阵。但是有没有办法获得在此计算过程中形成的L和U矩阵? 为LU分解写一个新函数似乎毫无意义,OpenCV已经为它编写了优化代码。 解决方案 不幸的是,它看起来不像OpenCV为您提供了访问L和U矩阵的方法。 此处是该功能的实施方式。并且,出于性能原因,看起来LU分解是就地完成的。所以,你可能需要自己动手。 编 ..
发布时间:2018-07-30 16:33:07 其他开发

c++ - qt creator 下使用EIGEN库报错的问题

问 题 qt creator mingw编译器下使用eigen库会报错:undefined reference to _wassert 而msvc2015编译器则不存在这样的问题,请教如何解决? 解决方案 解决了,是原先的MINGW环境变量是4.9的, Qt creator下的MINGW是5.3.2的,链接时出了问题。现在把环境变量全改成QT安装目录下的MINGW,链接就不会出 ..
发布时间:2017-09-06 00:09:08 C/C++开发

使用GDB与Eigen C ++库

我正在使用可从 http://eigen.tuxfamily.org/ 下载的Eigen C ++库。 这是一个用于更容易处理矩阵和数组的C ++库。我使用g ++编译器和gdb进行调试。但是,我发现使用gdb时无法打印Matrix的内容(由Eigen提供)。 解决方案 您可以安装gdb扩展程序,您可以在 eigen / debug / gdb / ..
发布时间:2017-04-21 18:43:55 C/C++开发

如何使用Eigen在CUDA内核

Eigen是一个c ++线性代数库, http://eigen.tuxfamily.org 。 很容易使用基本数据类型,例如基本的float数组,只需将其复制到设备内存,并将指针传递给cuda内核。但是Eigen矩阵是复杂类型的,所以如何将它复制到设备内存,并让cuda内核读/写? 解决方案 所有你想要的是通过原始C指针访问 Eigen :: Matrix 的数据,然后可以使用 .d ..
发布时间:2017-03-04 15:11:12 C/C++开发

大矩阵反演

我正在寻找一个大矩阵的倒数,常用大小为1000 x 1000,但有时会超过100000 x 100000(由于时间和内存的原因,目前出现故障)。我知道正常的情绪是“不采取相反,找到一些其他方式来做”,但这是不可能的,在那一刻。其原因是由于使用了已经预期获得矩阵逆的软件。 (注意:我正在寻找改变这种方法,但是这将需要很长时间) 现在我们使用数字重组的LU分解方法,我目前正在测试特征库。特征库似 ..

使用矢量化编译iPhone的Eigen库

我正在努力与eigen库的iPhone 4的编译,它有一个ARM处理器与armv7指令集。一切工作正常到目前为止,当我指定预处理器定义EIGEN_DONT_VECTORIZE。但由于一些性能问题,我想使用armv7优化的代码。 无论使用LLVM-GCC 4.2或LLVM CLang 2.0的编译器,我总是遇到编译错误。我想出了(或更好地认为),LLVM-GCC 4.2是唯一的方法来访问这些A ..
发布时间:2016-12-22 22:54:18 移动开发

CMake找不到Eigen3

我已将FindEigen3.cmake复制到我的源目录中。 然后我添加: set(CMAKE_MODULE_PATH $ {CMAKE_MODULE_PATH} $ {CMAKE_SOURCE_DIR}) CMakeLists.txt,告诉CMake使用这个.cmake文件。 然后在我的CMakeLists.txt我做: FIND_PACKAGE ..
发布时间:2016-12-03 00:02:52 其他开发

在ROS Indigo中使用Eigen库

我正在ROS Indigo的项目上工作,需要使用Eigen库。根据ROS Wiki上的indigo / Migration页面,FindEigen.cmake模块现在在cmake_modules包中。 以下步骤将cmake_modules包添加到项目的CMake.txt(通过find_package)并添加一个构建依赖项到package.xml( cmake_ ..
发布时间:2016-12-02 23:33:09 其他开发

查找CMake包Eigen3

CMake找不到我的 Eigen3 包。我设置了一个环境变量 EIGEN3_INCLUDE_DIR 指向 FindEigen3.cmake 的路径。 CMakelists.txt我写道: find_package(Eigen3 REQUIRED) include_directories(EIGEN3_INCLUDE_DIR) 我收到 ..
发布时间:2016-12-02 23:22:31 其他开发

从Eigen :: CwiseBinaryOp转换到MatrixXd导致segfault

我正在写一个库,存储Eigen表达式模板作为成员变量,以进行需要做的复杂计算。但是,似乎我不能存储或返回这些表达式模板,除非它们直接在MatrixXd或类似的转换。这迫使每一步都被保存到一个临时的,并且浪费整个设计的效率。 这里有一个简短的例子,导致麻烦。 Holder只是拥有一个Eigen矩阵,而Summer需要两个持有者并输出他们持有的两个矩阵的总和,当你调用get()。 包含文件 ..
发布时间:2016-11-14 00:51:49 C/C++开发

从本征序列化分解矩阵(SparseLU对象)

我想解决 Ax = b ,其中矩阵A可以大到接近 1M x 1M 大小,是稀疏和对称的,但可能没有正确定义。 问题是,可能需要很长时间才能使用 sparseLU对象,并且将会想到一个存储sparseLU矩阵而不是原始矩阵,使得每当我们使用相同的矩阵A执行类似的操作时,我们可以不需要重新计算 快速搜索stackoverflow和google返回这,这和这稀疏矩阵用于特征矩阵的序列化。但是 ..
发布时间:2016-11-02 02:25:05 C/C++开发

可能获得类型Eigen :: MatrixBase< T> &

具有Eigen :: MatrixBase&数据,有什么办法得到如果它是一个浮点数或双矩阵? 我需要创建一个与MatrixBase相同大小和类型的新的复杂矩阵。 如果是MatrixXf,那么我需要创建MatrixXcf,如果MatrixXd我需要MatrixXcD。 template int dowork(const Eigen :: MatrixBa ..
发布时间:2016-11-01 22:17:46 C/C++开发