diff --git a/lapack-netlib/LAPACKE/src/lapacke_zgesdd_work.c b/lapack-netlib/LAPACKE/src/lapacke_zgesdd_work.c index fc07fe9cb..b37f1216a 100644 --- a/lapack-netlib/LAPACKE/src/lapacke_zgesdd_work.c +++ b/lapack-netlib/LAPACKE/src/lapacke_zgesdd_work.c @@ -58,6 +58,9 @@ lapack_int LAPACKE_zgesdd_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); @@ -75,7 +78,7 @@ lapack_int LAPACKE_zgesdd_work( int matrix_layout, char jobz, lapack_int m, LAPACKE_xerbla( "LAPACKE_zgesdd_work", info ); return info; } - if( ldvt < n ) { + if( ldvt < ncols_vt ) { info = -11; LAPACKE_xerbla( "LAPACKE_zgesdd_work", info ); return info;