Do not check LDVT in LAPACKE_?gesvd_work if VT is not used anywaytags/v0.3.29
| @@ -74,11 +74,13 @@ lapack_int LAPACKE_cgesvd_work( int matrix_layout, char jobu, char jobvt, | |||||
| LAPACKE_xerbla( "LAPACKE_cgesvd_work", info ); | LAPACKE_xerbla( "LAPACKE_cgesvd_work", info ); | ||||
| return info; | return info; | ||||
| } | } | ||||
| if( ldvt < ncols_vt ) { | |||||
| if( LAPACKE_lsame( jobvt, 'a' ) || LAPACKE_lsame( jobvt, 's' ) ) { | |||||
| if( ldvt < ncols_vt ) { | |||||
| info = -12; | info = -12; | ||||
| LAPACKE_xerbla( "LAPACKE_cgesvd_work", info ); | LAPACKE_xerbla( "LAPACKE_cgesvd_work", info ); | ||||
| return info; | return info; | ||||
| } | } | ||||
| } | |||||
| /* Query optimal working array(s) size if requested */ | /* Query optimal working array(s) size if requested */ | ||||
| if( lwork == -1 ) { | if( lwork == -1 ) { | ||||
| LAPACK_cgesvd( &jobu, &jobvt, &m, &n, a, &lda_t, s, u, &ldu_t, vt, | LAPACK_cgesvd( &jobu, &jobvt, &m, &n, a, &lda_t, s, u, &ldu_t, vt, | ||||
| @@ -72,11 +72,13 @@ lapack_int LAPACKE_dgesvd_work( int matrix_layout, char jobu, char jobvt, | |||||
| LAPACKE_xerbla( "LAPACKE_dgesvd_work", info ); | LAPACKE_xerbla( "LAPACKE_dgesvd_work", info ); | ||||
| return info; | return info; | ||||
| } | } | ||||
| if( LAPACKE_lsame( jobvt, 'a' ) || LAPACKE_lsame( jobvt, 's' ) ) { | |||||
| if( ldvt < ncols_vt ) { | if( ldvt < ncols_vt ) { | ||||
| info = -12; | info = -12; | ||||
| LAPACKE_xerbla( "LAPACKE_dgesvd_work", info ); | LAPACKE_xerbla( "LAPACKE_dgesvd_work", info ); | ||||
| return info; | return info; | ||||
| } | } | ||||
| } | |||||
| /* Query optimal working array(s) size if requested */ | /* Query optimal working array(s) size if requested */ | ||||
| if( lwork == -1 ) { | if( lwork == -1 ) { | ||||
| LAPACK_dgesvd( &jobu, &jobvt, &m, &n, a, &lda_t, s, u, &ldu_t, vt, | LAPACK_dgesvd( &jobu, &jobvt, &m, &n, a, &lda_t, s, u, &ldu_t, vt, | ||||
| @@ -72,11 +72,13 @@ lapack_int LAPACKE_sgesvd_work( int matrix_layout, char jobu, char jobvt, | |||||
| LAPACKE_xerbla( "LAPACKE_sgesvd_work", info ); | LAPACKE_xerbla( "LAPACKE_sgesvd_work", info ); | ||||
| return info; | return info; | ||||
| } | } | ||||
| if( ldvt < ncols_vt ) { | |||||
| if( LAPACKE_lsame( jobvt, 'a' ) || LAPACKE_lsame( jobvt, 's' ) ) { | |||||
| if( ldvt < ncols_vt ) { | |||||
| info = -12; | info = -12; | ||||
| LAPACKE_xerbla( "LAPACKE_sgesvd_work", info ); | LAPACKE_xerbla( "LAPACKE_sgesvd_work", info ); | ||||
| return info; | return info; | ||||
| } | } | ||||
| } | |||||
| /* Query optimal working array(s) size if requested */ | /* Query optimal working array(s) size if requested */ | ||||
| if( lwork == -1 ) { | if( lwork == -1 ) { | ||||
| LAPACK_sgesvd( &jobu, &jobvt, &m, &n, a, &lda_t, s, u, &ldu_t, vt, | LAPACK_sgesvd( &jobu, &jobvt, &m, &n, a, &lda_t, s, u, &ldu_t, vt, | ||||
| @@ -74,11 +74,13 @@ lapack_int LAPACKE_zgesvd_work( int matrix_layout, char jobu, char jobvt, | |||||
| LAPACKE_xerbla( "LAPACKE_zgesvd_work", info ); | LAPACKE_xerbla( "LAPACKE_zgesvd_work", info ); | ||||
| return info; | return info; | ||||
| } | } | ||||
| if( ldvt < ncols_vt ) { | |||||
| if( LAPACKE_lsame( jobvt, 'a' ) || LAPACKE_lsame( jobvt, 's' ) ) { | |||||
| if( ldvt < ncols_vt ) { | |||||
| info = -12; | info = -12; | ||||
| LAPACKE_xerbla( "LAPACKE_zgesvd_work", info ); | LAPACKE_xerbla( "LAPACKE_zgesvd_work", info ); | ||||
| return info; | return info; | ||||
| } | } | ||||
| } | |||||
| /* Query optimal working array(s) size if requested */ | /* Query optimal working array(s) size if requested */ | ||||
| if( lwork == -1 ) { | if( lwork == -1 ) { | ||||
| LAPACK_zgesvd( &jobu, &jobvt, &m, &n, a, &lda_t, s, u, &ldu_t, vt, | LAPACK_zgesvd( &jobu, &jobvt, &m, &n, a, &lda_t, s, u, &ldu_t, vt, | ||||