- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经尝试了几个小时,这让我发疯。我得到的最后一个错误是:
demo_cblas.c:(.text+0x83): undefined reference to `clapack_sgetrf'
demo_cblas.c:(.text+0xa3): undefined reference to `clapack_sgetri'
我正在编译代码使用
/usr/bin/gcc -o demo_cblas demo_cblas.c -L /usr/lib64 -l :libgfortran.so.3 -L /usr/lib64 \
-llapack -L /usr/lib64 -lblas
我尝试使用和不使用 libgfortran,使用不同的编译器 gcc-33、gcc-47、gcc-48。测试代码不是我的而是来自这个论坛...
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include "clapack.h"
#include "cblas.h"
void invertMatrix(float *a, unsigned int height){
int info, ipiv[height];
info = clapack_sgetrf(CblasColMajor, height, height, a, height, ipiv);
info = clapack_sgetri(CblasColMajor, height, a, height, ipiv);
}
void displayMatrix(float *a, unsigned int height, unsigned int width)
{
int i, j;
for(i = 0; i < height; i++){
for(j = 0; j < width; j++)
{
printf("%1.3f ", a[height*j + i]);
}
printf("\n");
}
printf("\n");
}
int main(int argc, char *argv[])
{
int i;
float a[9], b[9], c[9];
srand(time(NULL));
for(i = 0; i < 9; i++)
{
a[i] = 1.0f*rand()/RAND_MAX;
b[i] = a[i];
}
displayMatrix(a, 3, 3);
return 0;
}
我在 Suse 12.3 64 位上。在/usr/lib64 中我有 liblapack.a liblapack.so, ... 和 libblas.a libblas.so, ... 和 libgfortran.so.3
没有函数“invertMatrix”(使用该库的代码)的相同代码可以正常编译。
有什么想法或建议吗?
谢谢大家的帮助。
瓦瓦
最佳答案
我非常肯定您还需要链接到 libcblas,它是 libblas 的 c 包装器库。请注意,libblas 是一个 FORTRAN 库,因此不包含您正在调用的函数 clapack_*。
关于c - 无法将 c 代码链接到 lapack/blas : undefined reference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24427802/
如果我有一个 1,000 x 1,000 的方阵,Lapack 可以计算这个矩阵的特征向量和特征值吗?如果可以,需要多长时间?对于 10,000 x 10,000 矩阵甚至 1,000,000 x 1
我正在使用 LAPACK 的 zheev(在英特尔 MKL 中)。我得到了 int INFO=99。我一直在互联网上搜索这对应的内容,但找不到包含所有整数错误代码及其含义列表的文档。 有没有人有指向
通过以下方式安装 lapack 后: yum install lapack lapack-devel 并重新启动 httpd 服务我仍然得到 Fatal error: Class 'Lapack' n
Lapack 很可能没有任何计算行列式的例程。但是,我们可以使用 LU、QR 或 SVD 分解来计算它。我更喜欢使用 LU 分解。现在 lapack 使用一些 dgetrf 子程序将矩阵 A 分解为带
根据官方用户指南,sgelsd用于解决最小二乘问题 min_x || b - Ax ||_2 并允许矩阵 A 为矩形且秩亏。并且根据sgelsd源码中的接口(interface)描述,b作为输入输出参
我用 Eigen 和 实现了一段代码。我希望 Eigen 使用 BLAS 和 LAPACK 。 我看过here ,这是可能的,但我不知道如何或将这些值/指令放在代码中的位置。 我必须在某处指定值 EI
简介:我用 C++ 开发了一个应用程序,它在 Windows 上使用 LAPACK(LAPACKE) 和 MPI。在 Windows 中工作正常(编译和链接通过 Code::Blocks IDE 处理
我最近从 Linux 切换到 Mac OS。我需要 BLAS 和 LAPACK 来做一些计算。通过查看 BLAS 的维基百科,我了解到这两个库已经在 Mac OS 中实现。不过,据说 Apple's
我基于以下链接为我的 Visual Studio 2008 构建了 LAPACKE 的 DLL 和库: http://icl.cs.utk.edu/lapack-for-windows/lapack/
我很好奇用于在 MATLAB 中计算 SVD 的 DGESVD 函数。据我从 Gene H. Golub 和 Charles F. Van Loan 的“矩阵计算”中可以看出,使用了两种可能的双对角化
我是数值线性代数的新手,我刚刚开始使用 LAPACK 和 BLAS。 是否有可以在打包存储和完整存储之间复制/转换对称矩阵的例程? 我找到了 dtrttp ,我可以用它来将 double 全对称矩阵转
根据我的理解,需要进行分解/因式分解(LU、QR、Cholesky 等),然后基于因式分解进行矩阵逆计算。还有其他方法可以解决这个问题吗(我试图弄清楚我是否可以坚持使用 CULAtools 试用版中免
我正在尝试编写一个函数,该函数可以为代表性不足的方程组生成单一解(例如,描述该系统的矩阵宽大于高)。为了做到这一点,我一直在 LAPACK 文档中寻找一种将矩阵行归约到它的归约梯队形式的方法,类似于
我是使用 LAPACK 例程的新手,所以我对它们不是很了解,我想在并行化循环(openmp)中使用它们。 我使用 Ubuntu 14.04LTS 并使用我的包管理器安装了 LAPACK。安装的版本是:
我在允许我求逆矩阵的 c 代码中使用 LAPACK。更准确地说,我使用 dgetrf_ 然后使用 dgetri_ 进行反演。 但是当我处理大矩阵并且我不知道矩阵是否可逆时,我浪费了很多时间来反转不可逆
我想使用Fortran和LAPACK对角化一个实对称矩阵。 LAPACK基本上提供了两个例程,一个例程在完整矩阵上运行,另一个例程在打包存储中的矩阵上运行。虽然后者肯定会使用较少的内存,但我想知道关于
我正在使用 LAPACK 库中的 DSYEV 和 DSYEVD 来查找特征值和特征向量(编译语法: gfortran -llapack )。但是,我发现特定矩阵的错误特征值(-0.44,0.35,0.
我想计算对称矩阵的特征值,并希望使用 C++ 中英特尔 MKL 库中的 LAPACKE_dsyev 函数来计算。但我对矩阵需要传递的形式有点困惑。 来自文档https://software.intel
我使用链接:./configure --with-blas-incdir="-L/home/moritz/build/CoinIpopt_test/ThirdParty/openblas/includ
我想安装最新版本的numpy(Python的数值库),版本(v1.6.1)还没有在Ubuntu Oneiric repositories .当我继续手动安装它时,我阅读了 INSTALL numpy
我是一名优秀的程序员,十分优秀!