由于我描述的原因earlier,我需要在Python中使用LAPACKs dgesvd和zgesvd方法,而不是包装在numpy中的方法。
有人指出,我可以使用 f2py 来创建我自己的 python 包。问题是,lapack 中的 dgesdd 调用了一堆其他方法,如 dbdsqr、dgelqf 以及一些 BLAS 例程,我不知道应该如何继续。
谁能指出,创建 dgesvd python 模块而无需重新编译整个 lapack 库的正确方法是什么?
多谢
米沙
您不需要包装整个 LAPACK 库,只需包装您想要的 LAPACK 例程即可。这些例程与下面的 Fortran 调用相连。我已经使用英特尔的 MKL 成功完成了此任务,对于类似于 dgesvd 的解算器之一(显然我无法重新编译它,因为它是闭源的!)。
唯一的要求是您提供链接到 LAPACK 库的路径(无论如何您都需要顶级例程):
f2py -L/path/to/lapack -llapack -m module -c module.f
(当然,将库路径和库名称替换为您机器上适用的内容)
module.f 中的代码周围只需要一个包装器,因为 module.f 中的所有调用都像纯 Fortran 一样完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)