diff --git a/lapack-netlib/LAPACKE/src/lapacke_dgesdd_work.c b/lapack-netlib/LAPACKE/src/lapacke_dgesdd_work.c index 7bef2230c..74cb0e623 100644 --- a/lapack-netlib/LAPACKE/src/lapacke_dgesdd_work.c +++ b/lapack-netlib/LAPACKE/src/lapacke_dgesdd_work.c @@ -56,6 +56,9 @@ lapack_int LAPACKE_dgesdd_work( int matrix_layout, char jobz, lapack_int m, lapack_int nrows_vt = ( LAPACKE_lsame( jobz, 'a' ) || ( LAPACKE_lsame( jobz, 'o' ) && m>=n) ) ? n : ( LAPACKE_lsame( jobz, 's' ) ? MIN(m,n) : 1); + lapack_int ncols_vt = ( LAPACKE_lsame( jobz, 'a' ) || + ( LAPACKE_lsame( jobz, 's' ) || + ( LAPACKE_lsame( jobz, 'o' && m >=n) ) ? n : 1); lapack_int lda_t = MAX(1,m); lapack_int ldu_t = MAX(1,nrows_u); lapack_int ldvt_t = MAX(1,nrows_vt); @@ -73,7 +76,7 @@ lapack_int LAPACKE_dgesdd_work( int matrix_layout, char jobz, lapack_int m, LAPACKE_xerbla( "LAPACKE_dgesdd_work", info ); return info; } - if( ldvt < n ) { + if( ldvt < ncols_vt ) { info = -11; LAPACKE_xerbla( "LAPACKE_dgesdd_work", info ); return info;