mirror of
https://github.com/OpenMathLib/OpenBLAS
synced 2026-05-31 00:45:48 +08:00
* relax leading dimensions check (Reference-LAPACK PR #1126)
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -56,6 +56,9 @@ lapack_int LAPACKE_sgesdd_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_sgesdd_work( int matrix_layout, char jobz, lapack_int m,
|
||||
LAPACKE_xerbla( "LAPACKE_sgesdd_work", info );
|
||||
return info;
|
||||
}
|
||||
if( ldvt < n ) {
|
||||
if( ldvt < ncols_vt ) {
|
||||
info = -11;
|
||||
LAPACKE_xerbla( "LAPACKE_sgesdd_work", info );
|
||||
return info;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user