-
Notifications
You must be signed in to change notification settings - Fork 44
Lapack > 3.5 link issues, deprecated functions #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Is the Scipy issue 5266 ? It's refers to Lapack 3.6.0, which lists deprecated functions
If I grep for those with
Not all of those are calls (some in comments, etc.), but still it's more than just |
Follow-on thoughts: currently Slycot, if installed via conda, depends on @cwrowley's lapack, which is 3.5.0, so in a sense there's no hurry to fix this. However, it's possible, and currently quite easy, to link Slycot against mkl (branch, Travis results). If using mkl required fixing these deprecation issues, switching to mkl would become an expensive effort. |
I use conda forge which has lapack 3.6.1: jgoppert@jmg-bnb1:~/git/control$ conda search lapack
Fetching package metadata .........
clapack 3.2.1 0 conda-forge
lapack 3.6.0 0 conda-forge
3.6.1 0 conda-forge
* 3.6.1 1 conda-forge |
This actually spurred me to do this: sympy/sympy#12181 It is working pretty well so far. Having a symbolic control toolbox is pretty powerful for system identification etc. Let me know if anyone is interested in fleshing it out with me. |
How is that related to this issue? Are you proposing to avoid dependence on LAPACK by performing all operations symbolically? |
For what I am using state space realizations for from python control it makes more sense but I was too lazy to do it until lapack broke slicot. I thought it might be of interest to others. Definitely not a quick solution to do it in sympy, so not a replacement for what broke, but you can follow params through the transformation which is useful. |
Sorry if it was a bit off topic. |
I did DGEGS -> DGGES on repagh/Slycot for now |
Would it be possible to add a copy of DLATZM to slycot? Renamed? |
I imagine we could have a lapack-deprecated library within Slycot for this. It seems likely LAPACK's licensing is compatible, though we'd have to check. Why do you want to use a renamed function? Are you also trying to build against conda-forge's lapack 3.6.1? It looks to me like MKL is still including these deprecated functions---is building against that an option for you? Replacing the deprecated functions with their undeprecated counterparts is obviously ideal, but it would be good to have a solid test suite to make sure we haven't broken anything in the process. I wonder what the other open source SLICOT users (octave-control, Scilab) are doing about this. |
I am trying to get slycot+control into conda-forge. I found that the deprecated functions are still in my Mac OSX version of anaconda with conda-forge, which I installed earlier and updated. But my Linux version, installed yesterday, did not have the deprecated functions. We have our students currently using python(x,y) when on windows, and macports python when on Mac OSX, but want to switch to anaconda for all next year. If conda-forge and anaconda have libraries and packages for all three major OSes, we could offer students a more uniform environment -- and finally step to python 3. I think the licenses are compatible, and I think I will just add the to-be-obsoleted DLATZM from lapack to the slycot sources, re-name the function (as requested also in LAPACK license) to prevent clashes with LAPACK libraries that still have that function, and use that one, so slycot will both compile against 3.6 and lower LAPACK. It has been a while since I looked at Scilab. Don't know which version of LAPACK they are using. |
Looked at Scilab right now. They are using only part of slicot http://forge.scilab.org/index.php/p/sCiMake/source/tree/master/scilab-5.2.0/modules/cacsd/src/slicot |
Thanks, had a look there; none of the SLICOT files in Scilab are using any deprecated LAPACK functions. Using the list I generated before, the only hits are mb04ny.f and mb04oy.f, and they only mention DLATZM in the comments. |
We are probably not using a number of these files either, only the stuff in the .pyf files gets used. Next step is control..... |
I think I have got it. Found that I had to change the size of the work vector for sg03ad, but all python-control tests ran after that. Will be testing some more and then create a pull request? |
As far as I can tell, I fixed/updated Slycot to work with newer LAPACK. Any hints? |
I simply copied my changes to patches, deleted my slycot fork (which was from avventi, the original repository), re-forked from python-control, and had no problem making the pull request after that. |
@repagh Thanks so much for doing this! We took over maintenance because you guys were inactive for awhile, but if you want it back I'm sure there would be no problem with that. |
Addressed in PR #13. |
This will be painful. Scipy just had to go through it as well. We might actually have to try to read the Fortran 77 code to remove dgegs and replace it with dgess etc.
The text was updated successfully, but these errors were encountered: