f2py:包装使用分布在不同文件中的子程序的fortran模块?

2024-10-01 15:47:20 发布

您现在位置:Python中文网/ 问答频道 /正文

出于我描述earlier的原因,我需要在Python中使用LAPACKs-dgesvd和zgesvd方法,而不是使用numpy包装的方法。在

有人指出,我可以使用f2py创建自己的python包。问题是,lapack中的dgesdd调用了许多其他方法,比如dbdsqr、dgelqf以及一些BLAS例程,我不知道该如何处理。在

有谁能指出,在不需要重新编译整个lapack库的情况下,创建一个dgesvd python模块的最佳方法是什么?在

非常感谢 米沙


Tags: 方法numpy情况原因例程blasf2pylapack
1条回答
网友
1楼 · 发布于 2024-10-01 15:47:20

你不需要包装整个LAPACK库,只需要包装你想要的LAPACK例程。这些例程与下面的Fortran调用相连接。我用Intel的MKL成功地实现了这一点,它是一种类似于dgesvd的解算器(显然,我不能重新编译它,因为它是封闭源代码的!)。在

唯一的要求是您提供链接到LAPACK库的路径(对于顶级例程,您无论如何都需要它):

f2py -L/path/to/lapack -llapack -m module -c module.f

(当然,请将库路径和库名称替换为适用于您的计算机)

对于module.f中的代码,只需要一个包装器,因为module.f中的所有调用都是像纯Fortran一样完成的。在

相关问题 更多 >

    热门问题