I don't think there is a way to display the used LAPACK function names natively during runtime using the interfaces provided by
Depending on your goals you can:
- read the source code and deduce the logic from there. Unfortunately, this is not a runtime-use scenario, but a human analysis.
- fork your own version of
scipy, add custom outputs (to the calls you are interested in monitoring) and use it instead of the shipped one. Since
scipy is open-source, with some manual work you can get the desired behavior. Building scipy from sources reference should be useful in this case.
scipy.linalg.eig: this function is for the general matrices. If you happen to have a symmetric/Hermittian, banded or tridiagonal matrix, you should call
You can see that
scipy.linalg.eig does not do any chosing of LAPACK functions to use:
geev, geev_lwork = get_lapack_funcs(('geev', 'geev_lwork'), (a1,))
scipy.linalg.eig will call the ?geev. I don't think it is physically capable (as of the current implementation) of calling anything else.
On the contrary,
scipy.linalg.eigh has more options and flexibility, and actually different LAPACK functions can be called from
Note, that currently, you are probably seeing the output of scipy.linalg.LinAlgError. This exception is raised in the linear algebra functions wrappers and probably uses the
info output from the called LAPACK function.