问题标签 [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 投票
2 回答
3235 浏览

lapack - 用 lda 理解 Lapack_row_major 和 Lapack_col_major

我对 lapack_row_major 和 lapack_col_major 有三个问题:

1)我的理解是否正确,如果 A = [1,2,3,4,5,6] 尺寸为 2*3,那么 lapack_row_major 会导致 [ [1,2,3],[4,5,6] ] ,而 lapack_col_major 的结果是 [ [1,3,5],[2,4,6] ]?

2)当我想将 A 传递给函数时,我选择 row_major 或 col_major 中的哪一个有关系吗?

3)lapack_row_major 和 lda(数组的前导维度)有什么关系?如果我想将 lapack_row_major 格式的 am*n 矩阵 A 传递给一个函数,那么它的 lda 是真的吗?如果我将 A 作为 lapack_col_major 传递,那么它的 lda 是 m ?

谢谢

0 投票
1 回答
300 浏览

opencl - ArrayFire 缺少 LAPACK - 但我有

我刚刚下载了最新版本的ArrayFire (3.3.1),并正在尝试构建它。我被困在cmake .了。我安装了一堆丢失的库,重新运行它,现在我得到了:

我已经安装了 lapack,它位于 /usr/lib/liblapack.so (这是一个替代符号链接,但它没有损坏)。还安装了 lapacke。

0 投票
1 回答
787 浏览

c - 为 LAPACKE 格式化带状矩阵

我正在尝试使用英特尔 MKL 中称为 LAPACKE 的 LAPACK 的 C 接口来解决一般带状矩阵。我试图调用的函数是*gbsv,其中*表示格式。不幸的是,我发现很难找到有关如何使用 C 接口格式化带状矩阵的工作示例。如果有人可以为所有 C 用户提供一个工作示例,我向您保证这会有所帮助。

此处给出了 fortran 布局作为示例,但我不确定如何将其格式化以输入到 LAPACKE。我还应该注意,在我的问题中,我必须即时构建带状矩阵。所以我有 5 个系数,每个 i 节点的 A、B、C、D、E,必须放入带状矩阵形式,然后传递给 LAPACKE。

0 投票
1 回答
613 浏览

c++ - boost-python 和 lapack 的编译错误

我创建了一个程序,使用 boost 来提取 python 变量和 lapack 来求解矩阵。但是我在编译过程中遇到了一些麻烦

这是我的包含和第一行代码:

编译导致大量错误,我难以解释此输出。这是一个示例:

问:我有限的编译知识倾向于假设 lapack 和 boost 之间存在冲突,但如何解决?

问:这是与 cpp 文件中定义的任何命名空间有关的问题吗?

0 投票
0 回答
153 浏览

geometry - LAPACK:求解大型周期性带状方程组

对于一般平均曲率流问题,我必须在每个时间步求解大量联立方程(约 1000 秒)。该问题是在封闭流形上定义的,因此边界条件是周期性的。

我现在正在使用连续过度松弛算法来解决这个问题,但速度很慢。我试过dgbtrf -> dgbtrs(没有周期性条件),而且速度相当快。

系数矩阵如下所示

我需要解决五对角系统,它们不是对称的并且不知道是正定的。

有没有办法解决 LAPACK 中的循环/周期带状系统?

还是我必须使用通用求解器,例如dgetrs

0 投票
1 回答
165 浏览

c++ - LAPACKE/GNU C++:LAPACKE_zheevx() 函数中的奇怪错误

这是我在使用 LAPACKE 的函数 LAPACKE_zheevx() 时遇到的一个奇怪错误的描述。计算四个特征值/向量中的三个的简单测试代码(来自英特尔网站的示例)运行良好并提供正确的输出。但是,如果我在源代码中引入任何字符串的声明(例如 std::string OutputFIlename;),编译会顺利进行,但在执行时会出现分段错误 SIGSEGV !!!

首先,我将列出有效的代码:

现在,如果在 main() 中删除第 2 行的注释符号 (//): //std::string fn_VALS; 这将成为 std::string fn_VALS; 有了这个,源代码将编译,但它在运行时失败,并出现分段错误 SIGSEGV。

更多信息:

我正在使用 Windows 7 Pro 和 Code::Blocks,LAPACKE 标头和 dll 是在 2016 年 6 月 15 日下载的。从控制台:进程返回 -1073741819 (0xC0000005) 从 Code::Blocks 中的调用堆栈窗口

.......... main() 调用 LAPACKE_zheevx() [lapacke.dll]

.......... LAPACKE_zheevx() 调用 LAPACKE_zheevx_work() [lapacke.dll]

.......... LAPACKE_zheevx_work() 调用 zheevx_() [lapack.dll]

请帮忙。

0 投票
0 回答
381 浏览

c++ - 在 Eclipse C++ 项目中使用 Lapack Fortran?

我最近继承了一个代码,它对 Lapack 函数进行了很多调用,语法如下:

包括以下内容:

在 Windows 上,使用 eclipse CDT,编译工作正常。我已经安装了带有可执行文件的 Lapacke,并且我对这个库完全没有问题。

然而,在 Linux 上(并且仍然使用 eclipse CDT),至少很难说。我设法使包含工作,但我似乎无法为 . 我已经设法包括在内,但是语法是错误的,要改变它会很长。

你知道我该如何解决这个问题吗?我尝试了各种方法,比如链接绝对路径,但是尽管我通过突触安装了所有库,但我在系统上的任何地方都找不到 blas.h。也许我没有安装正确的?

此外,我在这个项目的 github 上遇到了一些问题。简而言之,我开始在 Windows 上进行开发,从那里创建了 git 项目并继续。当我切换到 Linux 进行测试时,出于某种原因,我保留了 windows 配置(所以 C:/Program Files 包括,构建一个 .exe ...),我想我没有正确设置 git(不会是第一次)但我不知道如何解决这个问题......我目前有两个不同的 git :一个带有 Windows 配置,另一个带有 Linux 配置。不理想,因为我们两个在做这个项目。

谢谢你的帮助 !

0 投票
2 回答
187 浏览

c++ - LAPACKE_zheevx() failed to converge -- how to increase ABSTOL with 2*DLAMCH('S') in C++?

This is a question about setting proper tolerance ("abstol") for convergence of eigenvalue calculation with LAPACKE_zheevx() function in C++.

When LAPACKE_zheev() fails to converge when calculating eigenvalues/eigenvectors with the default value of "abstol" (i.e. abstol=-1), the LAPACK manual says to set abstol=2*DLAMCH('S'). However, DLAMCH is Fortran function and I use C++ which does not recognize it as a valid C++ function. Could anyone please help me how to properly set "abstol=2*DLAMCH('S')" when using LAPACK with C++ (i.e. when using LAPACKE)?

Thanks very much in advance!!

Background: LAPACKE is C++ interface for LAPACK (Fortran library for numerical algebra). LAPACKE_zheevx() is LAPACKE's C++ interface for LAPACK's ZHEEVX() function.

Keywords: LAPACK, LAPACKE, C++, ABSTOL, DLAMCH, CONVERGENCE, EIGENVALUES, EIGENVECTORS

0 投票
1 回答
5913 浏览

c++ - LAPACK/LAPACKE with C++ on LINUX --- 编译、链接和运行?

简介: 我用 C++ 开发了一个应用程序,它利用了 LAPACK(LAPACKE) 和 MPI,全部都在 Windows 上。在 Windows 中工作正常(编译和链接通过 Code::Blocks IDE 处理),但执行速度太慢。因此,我想将代码迁移到我们在 CentOS Linux 下运行的小型“超级计算机”,我们已经安装了 GNU C++、MPICH2 和 LAPACK。

问题: 如何在 Linux/CentOS 上编译/链接和运行调用 LAPACKE 的 C++ 代码?我是否必须在 CentOS 机器上安装 GNU Fortran 才能使用 LAPACK(LAPACKE) 编译/链接/运行 C++?

多谢!!!

0 投票
2 回答
149 浏览

python - C 与 Python 中特征向量例程的不同结果

所以我注意到对于全 1 的 4x4 矩阵的特征分解,我得到了不同的答案。

在 Python 中使用 numpy.linalg.eig:

蟒蛇结果:

在 C 中使用 LAPACK DSYEV:

C DSYEV 结果:

在 C 中使用 LAPACK DGEEV:

C DGEEV 结果:

结果都是不一样的!

所以我有两个主要问题:

  1. 为什么?这是由于 1 矩阵的退化造成的吗?
  2. 如何在 C 中复制 Python 的结果?

任何见解将不胜感激。