get rid of custom lapack wrapper
We have gotten rid of most of LAPACK wrapping code with !416 (merged) being the last addition. Using scipy-provided LAPACK simplifies our codebase and improves Kwant maintainability. Therefore I believe getting rid of all the custom wrapping is advantageous. This issue tracks what is still necessary.
We use 4 LAPACK functions (x4 dtypes):
-
trsen
/tgsen
used for reordering the Schur forms. These are available at least starting from scipy 1.7.0, however they don't seem to allow passing empty matrices forQ
, which we use. -
trevc
/tgevc
for getting eigenvectors from the Schur form. These are not even wrapped in scipy 1.13, and we use them to define propagating modes.
We compute eigenvectors to determine propagating modes, and we use reordering to get the matrix of evanescent modes in a given direction.