1Regenerating lapack_lite source 2=============================== 3 4:Authors: * David M. Cooke <cookedm@physics.mcmaster.ca> 5 * Eric Wieser (upgraded lapack version on 2017-03-26) 6 7The ``numpy/linalg/f2c_*.c`` files are ``f2c``'d versions of the LAPACK routines 8required by the ``LinearAlgebra`` module, and wrapped by the ``lapack_lite`` 9module. The scripts in this directory can be used to create these files 10automatically from a directory of LAPACK source files. 11 12You'll need `plex 2.0.0dev`_, available from PyPI, installed to do the 13appropriate scrubbing. As of writing, **this is only available for python 2.7**, 14and is unlikely to ever be ported to python 3. 15 16.. _plex 2.0.0dev: https://pypi.python.org/pypi/plex/ 17 18The routines that ``lapack_litemodule.c`` wraps are listed in 19``wrapped_routines``, along with a few exceptions that aren't picked up 20properly. Assuming that you have an unpacked LAPACK source tree in 21``~/LAPACK``, you generate the new routines in this directory with:: 22 23$ python ./make_lite.py wrapped_routines ~/LAPACK 24 25This will grab the right routines, with dependencies, put them into the 26appropriate ``f2c_*.f`` files, run ``f2c`` over them, then do some scrubbing 27similar to that done to generate the CLAPACK_ distribution. 28 29.. _CLAPACK: http://netlib.org/clapack/index.html 30 31The output C files in git use the LAPACK source from the LAPACK_ page, using 32version 3.2.2. Unfortunately, newer versions use newer FORTRAN features, which 33are increasingly not supported by ``f2c``. As these are found, the patch files 34will need to be changed to re-express new constructs with legacy constructs. 35 36.. _LAPACK: http://netlib.org/lapack/index.html 37