
Hi Eric, I have finished new interfaces to both ATLAS C LAPACK and Fortran LAPACK. The generic pyf files and the reduced interface_gen.py are included in attachements (its is much faster now). Here is how to build the extension modules from scratch (you'll need the latest f2py, though): 1. $ python interface_gen.py # this creates clapack.pyf and flapack.pyf 2. $ f2py -c clapack.pyf -L/usr/local/lib/atlas -llapack -lf77blas -lcblas -latlas -lg2c $ f2py -c flapack.pyf -L/usr/local/lib/atlas -llapack -lf77blas -lcblas -latlas -lg2c This builds clapack.so and flapack.so. 3. In python:
import clapack,flapack print clapack.__doc__ This module 'clapack' is auto-generated with f2py (version:2.11.174-1131). Functions: LU,piv,X,info = sgesv(A,B,rowmajor=1,copy_A=1,copy_B=1) LU,piv,X,info = dgesv(A,B,rowmajor=1,copy_A=1,copy_B=1) LU,piv,X,info = cgesv(A,B,rowmajor=1,copy_A=1,copy_B=1) LU,piv,X,info = zgesv(A,B,rowmajor=1,copy_A=1,copy_B=1) LU,piv,info = sgetrf(A,rowmajor=1,copy_A=1) LU,piv,info = dgetrf(A,rowmajor=1,copy_A=1) LU,piv,info = cgetrf(A,rowmajor=1,copy_A=1) LU,piv,info = zgetrf(A,rowmajor=1,copy_A=1) .... print flapack.__doc__ This module 'flapack' is auto-generated with f2py (version:2.11.174-1131). Functions: LU,piv,X,info = sgesv(A,B,copy_A=1,copy_B=1) LU,piv,X,info = dgesv(A,B,copy_A=1,copy_B=1) LU,piv,X,info = cgesv(A,B,copy_A=1,copy_B=1) LU,piv,X,info = zgesv(A,B,copy_A=1,copy_B=1) LU,piv,info = sgetrf(A,copy_A=1) LU,piv,info = dgetrf(A,copy_A=1) LU,piv,info = cgetrf(A,copy_A=1) LU,piv,info = zgetrf(A,copy_A=1) ....
Few remarks: 1) The sources to these extension modules are quite big (more than 5000 lines in both). Should we factor these modules to cslapack.so cclapack.so cdlapack.so czlapack.so fslapack.so fclapack.so fdlapack.so fzlapack.so (any better name convention?). What do you think? 2) How shall I commit all this to the scipy CVS repository? In a subdirectory of linalg? Eventually it should be in linalg directory, I think. Regards, Pearu