我使用f2py从python调用LAPACK例程(即DGEQP3)。我首先创建了一个pyf
文件,以便创建一个更可用的接口。在
f2py -h dgeqp3.pyf -m dgeqp3 SRC/dgeqp3.f
此文件现在如下所示:
^{pr2}$我是这样建造图书馆的:
f2py -c dgeqp3.pyf SRC/dgeqp3.f -lblas -llapack -latlas
我创建了下面的脚本来调用例程,它似乎工作得很完美。在
import dgeqp3
import numpy as np
print(np.version.version)
A = np.array([1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0])
jpvt = np.array([0,0,0])
lwork = 10
j,t,w,i = dgeqp3.dgeqp3(3, 3, A, jpvt, lwork)
然而,就在程序终止之前,我得到
*** Error in `python': free(): invalid next size (fast): 0x0000000002bb8e60 ***
Aborted (core dumped)
我使用的是numpy版本1.8.2,并从lapack3.5.0编译了DGEQP3库,在64位的ubuntu14.04上,内核是3.13.0-43-generic。会出什么问题?在
我没能完全解决这个问题,但我发现Fortran函数available in Scipy有一个包装器。在
而且,这个调用只需要输入矩阵作为参数,这非常方便。在
相关问题 更多 >
编程相关推荐