SLICOT / SLICOT-Reference

SLICOT - A Fortran subroutines library for systems and control
BSD 3-Clause "New" or "Revised" License
47 stars 20 forks source link

Use of deprecated LAPACK routines #10

Closed ilayn closed 1 year ago

ilayn commented 1 year ago

When linked with modern LAPACK versions, > v.3.5.0 xLATZM, xGEGS routines have been deprecated since 11/2015. See the end section "What's new?" https://netlib.org/lapack/lapack-3.6.0.html

The replacement routine is xORMRZ, xGGES family. Is this something that can be changed ? I can send a Pull Request if there is an interest. Otherwise LAPACK library should be recompiled with deprecated routines enabled which is unnecessary bloat in my opinion. Moreover it seems like only xLATZM and xGEGS are the culprit.

VasileSima4 commented 1 year ago

Thank you for your comment.

Indeed, dlatzm is called 29 times in eight SLICOT routines, while zlatzm is called once in two routines. Most of these routines are low-level ones, and calling BLAS 3 subroutines instead of BLAS 2 xlatzm will not improve the efficiency. In any case, there is no plan at this time to make such (not easy) replacements. However, to avoid compiling all deprecated LAPACK routines, I added xlatzm in a new sub-directory, src_aux, and updated the makefiles to compile and link them.

ilayn commented 1 year ago

Thank you @VasileSima4, just a gentle reminder that there is also gegs and possibly more that are deprecated. I didn't mean to imply that these affect the performance but are a source of "code rot" as systems move to modern versions of LAPACK which is at v3.11.0 right now.

Code change is indeed not trivial but that's what I meant with "if there is any interest" I can do the changes and you can decide whether they are correct or not. The new functions are not that different than the deprecated ones.