From 7efdb9d56a5836ddaeaebda3f3e8a248dce371f0 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Sun, 15 Jun 2025 19:48:19 +0200 Subject: [PATCH] relax leading dimensions check (Reference-LAPACK PR #1126) --- lapack-netlib/LAPACKE/src/lapacke_cgesdd_work.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lapack-netlib/LAPACKE/src/lapacke_cgesdd_work.c b/lapack-netlib/LAPACKE/src/lapacke_cgesdd_work.c index 70198ccdc..d559df6b4 100644 --- a/lapack-netlib/LAPACKE/src/lapacke_cgesdd_work.c +++ b/lapack-netlib/LAPACKE/src/lapacke_cgesdd_work.c @@ -58,6 +58,9 @@ lapack_int LAPACKE_cgesdd_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_cgesdd_work( int matrix_layout, char jobz, lapack_int m, LAPACKE_xerbla( "LAPACKE_cgesdd_work", info ); return info; } - if( ldvt < n ) { + if( ldvt < ncols_vt ) { info = -11; LAPACKE_xerbla( "LAPACKE_cgesdd_work", info ); return info;