2013-08-12 2 views
2

제약이있는 최소 제곱 문제를 해결하기 위해 파이썬에서 lapack 함수 'DGGLSE'를 사용해야합니다. 파이썬에서 LAPACK 드라이버/함수를 호출하십시오.

나는 http://docs.scipy.org/doc/scipy/reference/linalg.lapack.html 을 따를 LAPACK의 일부 낮은 수준의 기능을 scipy에서 찾을 수 있습니다하지만 난 관심이 사람은 포함되지 않았습니다 및 LAPACK의 드라이버 코드의 대부분이 어쨌든 포함되지 않은 것으로 보인다 발견했다.

내가 할 수있는 방법이 있는지 궁금합니다. 감사. -Yan

+0

[이 답변에] (http://stackoverflow.com/a/16153914/832621)에서 DGEMM을 Cython으로 랩하는 방법을 설명합니다. DDGLSE를 사용하는 비슷한 접근법을 사용할 수 있습니다. . –

답변

0

는 난 단지 포트란 포장 약간의 경험을 가지고,하지만 난 그것을 이해, 표준 방법은 이미 SciPy에 포함 NumPy와 함께 제공되는 도구 f2py를 사용하는 것입니다하지 않는 LAPACK 기능을 포장. 몇 가지 기본 지침은 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- 연속 또는 Fortran 연속).

0

?GGLSE 루틴 패밀리가 SciPy 버전 1.0에 포함되어 있습니다. 먼저 ?gglse_lwork을 호출하여 하드웨어에서 최적의 블록 크기를 얻은 다음 ?gglse의 인수로 사용하십시오.

당신은 너무에

scipy.linalg.lapack.dgglse? 

또는 도움을 사용을 통해 ipython 콘솔의 서명을 확인할 수 있습니다.