我需要在python中使用lapack函数'DGGLSE'来解决约束的最小二乘问题。
我发现lapack的一些低级函数可以在scipy中找到如下 http://docs.scipy.org/doc/scipy/reference/linalg.lapack.html 但是我感兴趣的那个没有被包括在内,并且似乎大多数lapack的驱动程序代码都不包括在内。
我想知道我是否有办法做到这一点。谢谢。 -Yan
答案 0 :(得分:0)
我只有一点包装Fortran的经验,但据我所知,包装尚未包含在SciPy中的LAPACK函数的标准方法是使用NumPy附带的工具f2py。可以在http://wiki.scipy.org/Cookbook/F2Py#head-9c22e0d6fa6b16650feea2c271233a8c47e8d051
找到一些基本说明你也可以通过Cython包装它。 这样做,您编译Fortran文件并链接它,如http://fortran90.org/src/best-practices.html#interfacing-with-python所示 它描述了如何使用Cython或ctypes来包装Fortran子例程。 该特定示例可在https://github.com/certik/fortran90_question/tree/master/fcython_mesh在线获取 确保你注意阵列在内存中的排列方式(C-contiguous vs. Fortran-contiguous)。
答案 1 :(得分:0)
?GGLSE
例程系列。您可以先调用?gglse_lwork
以获得硬件上的最佳块大小,然后将其用作?gglse
的参数。
您可以通过
检查ipython控制台上的签名scipy.linalg.lapack.dgglse?
或使用帮助等。