You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Description
As pointed out by Gonum's Dan Kortschak in OpenMathLib/OpenBLAS#5051 , the LAPACKE bindings for the GESVD functions appear to be overly restrictive in the LDVT argument check performed on row-major calls:
When the JOBVT argument is "N" and consequently the output matrix "VT" will not be referenced at all according to the provided documentation, the current code still insists on a nonzero LDVT, taking the INFO=12 error exit instead of providing a work size estimate in LAPACKE_?gesvd_work.c
(A minimal fix would be to change the preceding ternary operator that sets the minimum ncols_vt so that it is zero (like in the corresponding lapacke_?gesvdx_work functions) instead of one - however I see no requirement that this entirely unused value cannot be negative)
Description
As pointed out by Gonum's Dan Kortschak in OpenMathLib/OpenBLAS#5051 , the LAPACKE bindings for the GESVD functions appear to be overly restrictive in the LDVT argument check performed on row-major calls:
When the JOBVT argument is "N" and consequently the output matrix "VT" will not be referenced at all according to the provided documentation, the current code still insists on a nonzero LDVT, taking the INFO=12 error exit instead of providing a work size estimate in LAPACKE_?gesvd_work.c
It occurs to me that the code in e.g.
lapack/LAPACKE/src/lapacke_dgesvd_work.c
Line 75 in 6ec7f2b
should be conditional on
if( LAPACKE_lsame( jobvt, 'a' ) || LAPACKE_lsame( jobvt, 's' ) ) {
Checklist
The text was updated successfully, but these errors were encountered: