问题标签 [lapacke]

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 投票
1 回答
173 浏览

c++ - 特征::BDCSVD求解器使用 MKL LAPACKE 引发 DGESVD 错误

以下代码工作正常:

具有X类型Eigen::MatrixXcd(复杂矩阵)。

但是,如果我使用-DEIGEN_USE_LAPACKE选项(激活 MKL LAPACKE),则会出现以下错误:

根据https://software.intel.com/en-us/mkl-developer-reference-c-gesvd,参数 6 是要分解的矩阵(来自内部数据X)。

我在这里做错了什么还是本征错误?

0 投票
1 回答
705 浏览

c++ - 使用 BLAS 和 LAPACKE 在 C++ 中使用 SVD 计算 Pseidoinverse

我正在尝试实现矩阵的伪逆计算 A*,以便为具有 C++ 维度的方形 nxn 矩阵 A 求解 Ax=b。A* 的算术公式是通过 SVD 分解。

因此,首先我计算 SVD(A)=USV^T,然后计算 A*=VS U^T,其中 S是反对角线 S,其中其非零元素 si 在 S* 中变为 1/si。最后我计算解决方案 x=A*b

但是我没有得到正确的结果。我将 LAPACKE 接口用于 c++ 和 cblas 用于矩阵乘法。这是我的代码:

在第二个 cblas_dgemm 之后,预计在 r2 中有 A* 伪逆。但是,在与 matlab pinv 比较后,我没有得到相同的结果。如果我打印 r2 结果给出:

但应该是

0 投票
1 回答
316 浏览

c - 使用 MPI_Type_create_subarray 做二维循环分布的例子

我想举一个例子,展示如何使用MPI_Type_create_subarray为大型矩阵构建二维循环分布。

我知道这MPI_Type_create_darray会给我二维循环分布,但它与SCALAPACK过程网格不兼容。

我会使用MPI_Type_create_subarray矩阵进行二维块循环分布并将其传递给SCALAPACK例程。

我可以举个例子吗?

0 投票
1 回答
88 浏览

c++ - 为什么 lapacke 中复变量的虚部不起作用?

我在 Windows 中使用 TDM gcc 64 位编译器

我的标题

我有一个像这样的简单代码

首先,它给了我以下错误和警告

我将代码更改如下

代码是用同样提到的警告编译的,但结果是

看来警告是一个重要的错误。

0 投票
0 回答
2151 浏览

c++ - 将 OpenBLAS 包含和库搜索路径链接到 CMake for OpenCV

我正在尝试遵循本教程:https ://github.com/opencv/opencv/issues/12957

因为我遇到的问题是

但即使在 CMake 中链接它之后,我也会遇到错误。

我为他们的 github 克隆了 OpenBLAS 并将其放在列出的目录中,然后我下载了 lapacke.dll 并将其移动到具有相同文件路径的 OpenBLAS 文件夹中。

但是,我没有看到 OpenBLAS 文件夹中的任何 include 或 lib 文件夹。

0 投票
1 回答
140 浏览

lapack - LAPACKE_cheev 只返回特征向量的上矩阵

我需要使用 LAPACKE 计算复杂厄米矩阵的特征值/特征向量。我找到了函数 LAPACKE_cheev。它正确计算特征值。但是,它只存储特征向量的上矩阵。我遵循了以下示例代码:[ https://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_lapack_examples/lapacke_cheev_row.c.htm]

我的代码基本相同:

矩阵特征向量只存储矩阵 R 的上半部分——这很好用。但是,cheev 不存储整个特征向量矩阵 - 仅存储上半部分。关于上面的链接,这应该是正确的语法等。

我错过了什么吗?我将不胜感激。

0 投票
1 回答
488 浏览

c++ - LAPACKE C++ 复矩阵求逆

我试图使用 LAPACKE 包在 C++ 中反转一个复杂的矩阵。我的代码如下:

这给出了一个错误:

我试着做:

对于函数中的第一个循环,但它给出:

我究竟做错了什么?我有另一个 inv 函数可以很好地处理双打。这是我遇到麻烦的复杂类型。

谢谢

0 投票
1 回答
347 浏览

c++ - LAPACKE C++ 实矩阵求逆

我试图在 C++ LAPACKE 中反转一个实矩阵。对于复杂的矩阵,我有相同的功能并且它有效。但真实案例给出了错误的答案。这是我的功能:

我尝试反转一个 24 x 24 的双精度矩阵。虽然程序似乎几乎就在那里,但逆还没有完全出现,它与 python linalg inverse 给我的有很大不同(python 就在这里,因为我将矩阵乘以逆,结果非常接近缩进)。在 LAPACKE 输出中,我将矩阵乘以它的逆矩阵,我得到对角线为 1,但非对角线的值高达 0.17,与 0 相比,这是巨大的。有没有办法让 LAPACKE 程序提供更好的结果?谢谢!

0 投票
1 回答
70 浏览

eigenvalue - 输出结果不匹配,LAPACKE_zheev() vs cusolverDnZheevd()

我正在将代码从遗留 cblas/lapacke 转换为 cudaBLAS/cudaSOLVER 并遇到一些问题。我制作了一个测试程序来深入了解这一点。附件是我正在使用的代码:

可以使用#define __CUDA 编译程序以获得cuda 构建或不使用#define __CUDA 获得非cuda 构建。 non-cuda build 给我以下输出:

cuda build 给我以下输出:

任何人都可以阐明这个问题,为什么我主要是特征向量得到不同的结果?特征值顺序也似乎相反。这是为什么?

0 投票
1 回答
258 浏览

c - 如何在Windows下使用cmake和MinGW编译C接口LAPACKE?

我知道有针对 Windows 发布的二进制文件,我只是想尝试自己编译它。我正确安装了 CMake、mingw32-make、gcc、gfortran 等。(使用 MinGW)

我试过了

然后我得到了 Fortran 的静态库 liblapack.a 和 libblas.a,但没有 liblapacke.a(lapack 的 C 接口)。

有简单的解决方案吗?