[Numpy-discussion] Ann: ARPACK bindings to Numeric Python

José Fonseca j_r_fonseca at yahoo.co.uk
Fri Nov 22 05:34:02 CST 2002

I've made a Numeric Python binding of the ARPACK library. ARPACK is a
collection of Fortran77 subroutines designed to solve large scale
eigenvalue problems, available at
http://www.caam.rice.edu/software/ARPACK/ .

These bindings have the following features:
 - Correspondence for all ARPACK calls
 - In place operation for all matrices
 - Easy access to ARPACK debugging control variables
 - Online help for all calls, with the correct Python/C 0-based indexing
   (automatically converted from the sources with the aid of a sed
 - Include ports of [unfortunately not all] original examples

These bindings weren't generated with any automatic binding generation
tool. Even though I initially tried both PyFortran and f2py, both showed
to be inappropriate to handle the specificity of the ARPACK API. ARPACK
uses a 'reverse communication interface' where basically the API
sucessively returns to caller which must take some update steps, and
re-call the API with most arguments untouched. The intelligent (and
silent) argument conversions made by the above tools made very difficult
to implement and debug the most simple example. Also, for large-scale
problems we wouldn't want any kind of array conversion/transposing
happening behind the scenes as that would completely kill performance.

The source is available at
. The ARPACK library is not included and must be obtained and compiled
seperately, and setup.py must be modified to reflect your system
BLAS/LAPACK library.

The bindings are API-centric. Nevertheless a Python wrapper to these
calls can easily be made, where all kind of type conversions and
dummy-safe actions can be made. I have done one myselve for a Sparse
matrix eigenvalue determination using UMFPACK for sparse matrix
factorization (for which a simple binding - just for double precision
matrices - is available at
http://jrfonseca.dyndns.org/work/phd/python/modules/umfpack/ ).

I hope you find this interesting.


José Fonseca
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts

More information about the Numpy-discussion mailing list