问题标签 [arpack]

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 投票
4 回答
1435 浏览

c - ARPACK 线程安全吗?

从用 C 编写的程序中同时使用来自不同线程的ARPACK eigensolver是否安全?或者,如果 ARPACK 本身不是线程安全的,那么是否有与 API 兼容的线程安全实现?快速的谷歌搜索并没有发现任何有用的东西,但鉴于 ARPACK 在大型科学计算中被大量使用,我会发现成为第一个需要线程安全稀疏特征求解器的人非常令人惊讶。

我对Fortran不太熟悉,所以我把ARPACK源代码翻译成C using f2c,貌似静态变量不少。基本上,翻译后的例程中的所有局部变量似乎都是静态的,这意味着库本身不是线程安全的。

0 投票
1 回答
1055 浏览

c++ - 在 OSX 上将我的代码与 ARPACK 链接时出现问题(使用 MacPorts 进行 ARPACK)

我正在尝试编译一个C++调用 ARPACK 库的程序。

我的问题是,当所有内容都链接时,ARPACK 库中的某些符号无法解析。他们是

我对我的目录进行了蛮力搜索,lib但没有找到提供所有这些符号的库。其中一些是由 提供的libf77blas,看起来g95有一些相似的符号(gfortran替换为g95),但我完全不知道我可能还需要安装什么。我正在编译我的代码

g++-mp-4.5 -O3 -Wall -Wl,-search_paths_first -headerpad_max_install_names my.o -o my.out -L/opt/local/lib -larpack -lm -L/opt/local/lib -lgsl -lgslcblas -lm -lf77blas -llapack -larpack -lqblas -lsquack

实际上有/opt/local/lib我引用的所有库。

有没有人遇到过这个问题,或者可以指出解决方案?

0 投票
1 回答
245 浏览

fortran - 在 ARPACK 中为数组 ipntr 赋值

我试图弄清楚如何将值分配给名为 ipntr 的数组,该数组在 ARPACK 中存储指针。我对 fortran 比较陌生,我无法准确弄清楚这个数组的值最初是如何设置的。我正在查看的代码是与 ARPACK 一起分发的非对称驱动程序示例 dndrv1.f,我不理解的部分如下

写语句的结果是:

1606679396 32767 1606696480 32767 1606918048 32767 0 0 0 0 0 0 0 0

显然没有像 ipntr(1) = 1606679396 这样的东西,那么这些值是如何分配的呢?

谢谢

0 投票
1 回答
174 浏览

arpack - arpack++ 错误:矩阵数据包含不一致

我从“arpackpp.doc”中输入了示例代码,并得到了一个运行时错误,如下所示: 在此处输入图像描述

这是我的代码: 在此处输入图像描述

矩阵是 在此处输入图像描述

0 投票
1 回答
1225 浏览

c++ - 从 VS2010 链接到 ARPACK

我正在尝试让ARPACK库在VS2010.

我想使用 ++ 提供的 C++ 包装器ARPACK(一些背景 - 我需要获取巨大矩阵的特征值和特征向量)。这里有一个很好的关于这个主题的教程

按照教程,我设法使用g77on编译了 fortran 代码mingw,我成功地生成了所描述的 dll 和 lib。尝试将我的 Visual Studio 项目链接到库时出现问题。

我试图链接的方式如下:

  1. 我制作了一个简单的 VS2010 C++ 控制台应用程序
  2. 我已将包含 ARPACK++ 库的文件夹添加到我的“其他包含文件夹”中
  3. 我已将 lib 文件添加到“其他依赖项”
  4. 我已将包含 lib 文件的目录添加到我的“其他库目录”中

尽管有这些设置,当我尝试编译这个简短的测试代码时:

我收到一条错误消息:

我不明白为什么链接器找不到上述方法。检查 dllwrap 实用程序生成的 .def 文件确实提到了所有这些功能,所以我相当确定它们应该可用。不过,我觉得我错过了一些明显的东西。

更新(让它工作!):

事实证明,当在配置设置中切换到 x86 并在配置属性-> 链接器-> 输入-> 附加定义文件中包含生成的 def 文件时,我试图将 64 位程序链接到 32 位库,它起作用了对于 32 位(但我需要 64 位)。对我有用的最终解决方案是在 Linux 上使用 MinGW 和 gfortran 为 Win64 交叉编译它。效果出奇的好,并生成了一个 dll,我可以从 VS 中的 64 位 C++ 应用程序链接到该 dll。我想我现在应该去写一个关于如何做到这一点的教程:)

0 投票
1 回答
767 浏览

scipy - 具有半正定的scipy广义特征问题

嗨,大家好!!!

我想计算形式的广义特征分解:

Lf = λ Af

通过使用 scipy.sparse.linalg.eigs 函数,但得到这个错误:

/usr/local/lib/python2.7/dist-packages/scipy/linalg/decomp_lu.py:61:RuntimeWarning:对角线数 65 正好为零。奇异矩阵。RuntimeWarning) ** 进入 DLASCL 参数编号 4 时具有非法值

我正在传递三个参数,一个对角矩阵、一个正半定 (PSD) 矩阵和数值 K(前 K 个特征值)。Matlab 的 eigs 函数使用相同的输入参数表现良好,但在我理解的 SciPy 中,为了使用 PSD 进行计算,我还需要指定 sigma 参数。

所以,我的问题是:有没有办法避免设置 sigma 参数,就像在 MatLab 中一样,或者如果没有,如何获取 sigma 值?

期待得到建议或提示......提前谢谢你!

0 投票
1 回答
164 浏览

c++ - 将 MinGW64 .o 链接到 MSVC 2010

如何将使用 MinGW64 fortran (gfortran) 编译器 (.o) 生成的目标文件链接到 MSVC 2010?

我只想将 64 位 arpack 库与 64 位 MSVC 解决方案一起使用,但所有其他方法都没有成功。MSVC 找到具有 32 位解决方案配置的 arpack 函数,但启动应用程序时出现运行时错误,并且根本找不到具有 64 位解决方案配置的 arpack 函数。

0 投票
1 回答
707 浏览

math - Scipy arpack eigs 与 eigsh 特征值数

在 scipy 的 ARPACK 绑定中,无法计算矩阵的所有特征值。但是,我发现 eigsh 能够计算 n - 1 个特征值,而 eigs 只能计算 n - 2 个特征值。谁能验证这实际上是 ARPACK 的基本限制,而不是 scipy 中的错误?

这是示例代码:

0 投票
0 回答
257 浏览

r - ARPACK page rank error

I'm using the igraph package in R to run PageRank. I ran it for my graph and got this error:

At arpack.c:1130 : ARPACK error, The Schur form computed by LAPACK routine dlahqr could not be reordered by LAPACK routine dtrsen.

I read online that this could be caused by your graph having multiple disjoint components. So I ran

But I'm still getting this same error when I run

What could be causing this? Is there any way to get more info about the error?

(This only happens for some graphs and not others. The problematic graph has 35k vertices, but I can attempt to upload some relevant data if it helps.)

0 投票
1 回答
714 浏览

macos - 如何在 Mac OS X 上使用 octave 3.6.4 中的 eigs() 函数

我正在尝试使用一个利用 Matlab 的 eigs() 函数的工具箱。当我在 Octave(3.6.4,在 Mac OS X 上通过 Homebrew 安装)运行它时,将返回以下内容:

error: eigs: not available in this version of Octave

我发现了很多潜在的解决方案,关于让 ARPACK(-ng) 程序与 Octave 一起工作。我尝试了更多我记得的方法,但似乎没有一个有效。

有人知道使用 eigs() 函数的 Octave 的当前状态吗?这可能吗,最好是在 Homebrew 中使用包?

谢谢。