Skip to content

Overly restrictive argument checking in LAPACKE_?gesvd #1090

Open
@martin-frbg

Description

@martin-frbg

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.

if( ldvt < ncols_vt ) {

should be conditional on if( LAPACKE_lsame( jobvt, 'a' ) || LAPACKE_lsame( jobvt, 's' ) ) {

Checklist

  • I've included a minimal example to reproduce the issue (see in referenced OpenBLAS ticket)
  • I'd be willing to make a PR to solve this issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions