Mis*_*cht 4 python lapack f2py
由于我之前描述的原因,我需要在 Python 中使用 LAPACK dgesvd 和 zgesvd 方法,而不是用 numpy 包装的方法。
有人指出,我可以使用 f2py 来创建我自己的 python 包。问题是,lapack 中的 dgesdd 调用了一堆其他方法,如 dbdsqr、dgelqf 以及一些 BLAS 例程,我不知道我应该如何处理。
谁能指出,在不必重新编译整个 lapack 库的情况下,创建 dgesvd python 模块的正确方法是什么?
非常感谢米莎
您不需要包装整个 LAPACK 库,只需包装您想要的 LAPACK 例程。这些例程与下面的 Fortran 调用相连。对于类似于 dgesvd 的求解器之一,我已经使用 Intel 的 MKL 成功地完成了此操作(显然我无法重新编译它,因为它是封闭源代码!)。
唯一的要求是您提供链接到 LAPACK 库的路径(无论如何您都需要顶级例程):
f2py -L/path/to/lapack -llapack -m module -c module.f
Run Code Online (Sandbox Code Playgroud)
(当然,将库路径和库名称替换为适用于您机器的内容)
module.f 中的代码只需要一个包装器,因为 module.f 中的所有调用都像纯 Fortran 一样完成。
| 归档时间: |
|
| 查看次数: |
2412 次 |
| 最近记录: |