-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
[WIP] Specialize chklapackerror to improve error messages
#51645
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
Conversation
|
I like it. @dkarrasch Thoughts? IIUC, this would need to include all the other methods before we merge it. In that sense, it is not ready to merge and is WIP. Is that right? |
|
Yes, this is WIP. I'll try to create a checklist. |
chklapackerror to improve error messageschklapackerror to improve error messages
|
I like it as well. That will put the LAPACK errors in line with the corresponding ones in our generic functions, right? |
|
Yes. At least in the triangular case, it now throws the same error as in the generic function |
|
Hi, I am quite interested in this issue, so I plan to implement some of the functions. I am learning Julia right now and reading documentation. If I could get some guidance on getting started on this issue, that would be great. Thanks! |
|
Hey, you may certainly contribute by creating a list of LAPACK error codes and what they correspond to for the functions in the list above. |
|
Should we merge this PR, and move the list of LAPACK functions to a tracking issue? |
|
That's ok with me. It might take a while to implement it all, and this is an improvement as it stands |
|
Please merge. This way, the others can all be added one at a time. |
This is an attempt at resolving JuliaLang/LinearAlgebra.jl#948. Since each LAPACK function generally has a specific meaning attached to a positive error code, this PR tries to specialize
chklapackerrorfor the caller to throw a more informative error instead of aLAPACKException. For example:Currently, I've only specialized it for
trtrs!, but if this seems reasonable, I'll add others.Functions to be implemented:
gbtrfgbtrsgebal!gebak!gebrd!gelqf!geqlf!geqp3!geqrt!geqrt3!geqrf!gerqf!getrf!tzrzf!ormrz!gels!gesv!getrs!getri!gesvx!gelsd!gelsy!gglse!geev!gesdd!gesvd!ggsvd!ggsvd3!geevx!ggev!ggev3!gtsv!gttrf!gttrs!orglq!orgqr!orgql!orgrq!ormlq!ormqr!ormql!ormrq!gemqrt!potrs!ptsv!pttrf!pttrs!trtri!trtrs!trcon!trevc!trrfs!stev!stebz!stegr!stein!syconv!sytrs!sytrs_rook!syconvf_rook!hesv!hetri!hetrs!hesv_rook!hetri_rook!hetrs_rook!sytri!sytri_rook!syconvf_rook!syev!syevr!syevd!bdsqr!bdsdc!gecon!gehrd!orghr!ormhr!hseqr!hetrd!ormtr!gees!gges!gges3!trexc!trsen!tgsen!trsyl!