Merge pull request #3818 from martin-frbg/lapack665

Fix leading dimension check of eigen-/Schur vectors in LAPACKE (Reference-LAPACK PR 665)
This commit is contained in:
Martin Kroeker 2022-11-14 07:27:58 +01:00 committed by GitHub
commit c5c4888ed6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 32 additions and 32 deletions

View File

@ -61,12 +61,12 @@ lapack_int LAPACKE_cgeev_work( int matrix_layout, char jobvl, char jobvr,
LAPACKE_xerbla( "LAPACKE_cgeev_work", info );
return info;
}
if( ldvl < n ) {
if( ldvl < 1 || ( LAPACKE_lsame( jobvl, 'v' ) && ldvl < n ) ) {
info = -9;
LAPACKE_xerbla( "LAPACKE_cgeev_work", info );
return info;
}
if( ldvr < n ) {
if( ldvr < 1 || ( LAPACKE_lsame( jobvr, 'v' ) && ldvr < n ) ) {
info = -11;
LAPACKE_xerbla( "LAPACKE_cgeev_work", info );
return info;

View File

@ -65,12 +65,12 @@ lapack_int LAPACKE_cgeevx_work( int matrix_layout, char balanc, char jobvl,
LAPACKE_xerbla( "LAPACKE_cgeevx_work", info );
return info;
}
if( ldvl < n ) {
if( ldvl < 1 || ( LAPACKE_lsame( jobvl, 'v' ) && ldvl < n ) ) {
info = -11;
LAPACKE_xerbla( "LAPACKE_cgeevx_work", info );
return info;
}
if( ldvr < n ) {
if( ldvr < 1 || ( LAPACKE_lsame( jobvr, 'v' ) && ldvr < n ) ) {
info = -13;
LAPACKE_xerbla( "LAPACKE_cgeevx_work", info );
return info;

View File

@ -72,12 +72,12 @@ lapack_int LAPACKE_cgges_work( int matrix_layout, char jobvsl, char jobvsr,
LAPACKE_xerbla( "LAPACKE_cgges_work", info );
return info;
}
if( ldvsl < n ) {
if( ldvsl < 1 || ( LAPACKE_lsame( jobvsl, 'v' ) && ldvsl < n ) ) {
info = -15;
LAPACKE_xerbla( "LAPACKE_cgges_work", info );
return info;
}
if( ldvsr < n ) {
if( ldvsr < 1 || ( LAPACKE_lsame( jobvsr, 'v' ) && ldvsr < n ) ) {
info = -17;
LAPACKE_xerbla( "LAPACKE_cgges_work", info );
return info;

View File

@ -76,12 +76,12 @@ lapack_int LAPACKE_cggesx_work( int matrix_layout, char jobvsl, char jobvsr,
LAPACKE_xerbla( "LAPACKE_cggesx_work", info );
return info;
}
if( ldvsl < n ) {
if( ldvsl < 1 || ( LAPACKE_lsame( jobvsl, 'v' ) && ldvsl < n ) ) {
info = -16;
LAPACKE_xerbla( "LAPACKE_cggesx_work", info );
return info;
}
if( ldvsr < n ) {
if( ldvsr < 1 || ( LAPACKE_lsame( jobvsr, 'v' ) && ldvsr < n ) ) {
info = -18;
LAPACKE_xerbla( "LAPACKE_cggesx_work", info );
return info;

View File

@ -59,12 +59,12 @@ lapack_int LAPACKE_dgeev_work( int matrix_layout, char jobvl, char jobvr,
LAPACKE_xerbla( "LAPACKE_dgeev_work", info );
return info;
}
if( ldvl < n ) {
if( ldvl < 1 || ( LAPACKE_lsame( jobvl, 'v' ) && ldvl < n ) ) {
info = -10;
LAPACKE_xerbla( "LAPACKE_dgeev_work", info );
return info;
}
if( ldvr < n ) {
if( ldvr < 1 || ( LAPACKE_lsame( jobvr, 'v' ) && ldvr < n ) ) {
info = -12;
LAPACKE_xerbla( "LAPACKE_dgeev_work", info );
return info;

View File

@ -63,12 +63,12 @@ lapack_int LAPACKE_dgeevx_work( int matrix_layout, char balanc, char jobvl,
LAPACKE_xerbla( "LAPACKE_dgeevx_work", info );
return info;
}
if( ldvl < n ) {
if( ldvl < 1 || ( LAPACKE_lsame( jobvl, 'v' ) && ldvl < n ) ) {
info = -12;
LAPACKE_xerbla( "LAPACKE_dgeevx_work", info );
return info;
}
if( ldvr < n ) {
if( ldvr < 1 || ( LAPACKE_lsame( jobvr, 'v' ) && ldvr < n ) ) {
info = -14;
LAPACKE_xerbla( "LAPACKE_dgeevx_work", info );
return info;

View File

@ -70,12 +70,12 @@ lapack_int LAPACKE_dgges_work( int matrix_layout, char jobvsl, char jobvsr,
LAPACKE_xerbla( "LAPACKE_dgges_work", info );
return info;
}
if( ldvsl < n ) {
if( ldvsl < 1 || ( LAPACKE_lsame( jobvsl, 'v' ) && ldvsl < n ) ) {
info = -16;
LAPACKE_xerbla( "LAPACKE_dgges_work", info );
return info;
}
if( ldvsr < n ) {
if( ldvsr < 1 || ( LAPACKE_lsame( jobvsr, 'v' ) && ldvsr < n ) ) {
info = -18;
LAPACKE_xerbla( "LAPACKE_dgges_work", info );
return info;

View File

@ -73,12 +73,12 @@ lapack_int LAPACKE_dggesx_work( int matrix_layout, char jobvsl, char jobvsr,
LAPACKE_xerbla( "LAPACKE_dggesx_work", info );
return info;
}
if( ldvsl < n ) {
if( ldvsl < 1 || ( LAPACKE_lsame( jobvsl, 'v' ) && ldvsl < n ) ) {
info = -17;
LAPACKE_xerbla( "LAPACKE_dggesx_work", info );
return info;
}
if( ldvsr < n ) {
if( ldvsr < 1 || ( LAPACKE_lsame( jobvsr, 'v' ) && ldvsr < n ) ) {
info = -19;
LAPACKE_xerbla( "LAPACKE_dggesx_work", info );
return info;

View File

@ -59,12 +59,12 @@ lapack_int LAPACKE_sgeev_work( int matrix_layout, char jobvl, char jobvr,
LAPACKE_xerbla( "LAPACKE_sgeev_work", info );
return info;
}
if( ldvl < n ) {
if( ldvl < 1 || ( LAPACKE_lsame( jobvl, 'v' ) && ldvl < n ) ) {
info = -10;
LAPACKE_xerbla( "LAPACKE_sgeev_work", info );
return info;
}
if( ldvr < n ) {
if( ldvr < 1 || ( LAPACKE_lsame( jobvr, 'v' ) && ldvr < n ) ) {
info = -12;
LAPACKE_xerbla( "LAPACKE_sgeev_work", info );
return info;

View File

@ -63,12 +63,12 @@ lapack_int LAPACKE_sgeevx_work( int matrix_layout, char balanc, char jobvl,
LAPACKE_xerbla( "LAPACKE_sgeevx_work", info );
return info;
}
if( ldvl < n ) {
if( ldvl < 1 || ( LAPACKE_lsame( jobvl, 'v' ) && ldvl < n ) ) {
info = -12;
LAPACKE_xerbla( "LAPACKE_sgeevx_work", info );
return info;
}
if( ldvr < n ) {
if( ldvr < 1 || ( LAPACKE_lsame( jobvr, 'v' ) && ldvr < n ) ) {
info = -14;
LAPACKE_xerbla( "LAPACKE_sgeevx_work", info );
return info;

View File

@ -70,12 +70,12 @@ lapack_int LAPACKE_sgges_work( int matrix_layout, char jobvsl, char jobvsr,
LAPACKE_xerbla( "LAPACKE_sgges_work", info );
return info;
}
if( ldvsl < n ) {
if( ldvsl < 1 || ( LAPACKE_lsame( jobvsl, 'v' ) && ldvsl < n ) ) {
info = -16;
LAPACKE_xerbla( "LAPACKE_sgges_work", info );
return info;
}
if( ldvsr < n ) {
if( ldvsr < 1 || ( LAPACKE_lsame( jobvsr, 'v' ) && ldvsr < n ) ) {
info = -18;
LAPACKE_xerbla( "LAPACKE_sgges_work", info );
return info;

View File

@ -73,12 +73,12 @@ lapack_int LAPACKE_sggesx_work( int matrix_layout, char jobvsl, char jobvsr,
LAPACKE_xerbla( "LAPACKE_sggesx_work", info );
return info;
}
if( ldvsl < n ) {
if( ldvsl < 1 || ( LAPACKE_lsame( jobvsl, 'v' ) && ldvsl < n ) ) {
info = -17;
LAPACKE_xerbla( "LAPACKE_sggesx_work", info );
return info;
}
if( ldvsr < n ) {
if( ldvsr < 1 || ( LAPACKE_lsame( jobvsr, 'v' ) && ldvsr < n ) ) {
info = -19;
LAPACKE_xerbla( "LAPACKE_sggesx_work", info );
return info;

View File

@ -61,12 +61,12 @@ lapack_int LAPACKE_zgeev_work( int matrix_layout, char jobvl, char jobvr,
LAPACKE_xerbla( "LAPACKE_zgeev_work", info );
return info;
}
if( ldvl < n ) {
if( ldvl < 1 || ( LAPACKE_lsame( jobvl, 'v' ) && ldvl < n ) ) {
info = -9;
LAPACKE_xerbla( "LAPACKE_zgeev_work", info );
return info;
}
if( ldvr < n ) {
if( ldvr < 1 || ( LAPACKE_lsame( jobvr, 'v' ) && ldvr < n ) ) {
info = -11;
LAPACKE_xerbla( "LAPACKE_zgeev_work", info );
return info;

View File

@ -65,12 +65,12 @@ lapack_int LAPACKE_zgeevx_work( int matrix_layout, char balanc, char jobvl,
LAPACKE_xerbla( "LAPACKE_zgeevx_work", info );
return info;
}
if( ldvl < n ) {
if( ldvl < 1 || ( LAPACKE_lsame( jobvl, 'v' ) && ldvl < n ) ) {
info = -11;
LAPACKE_xerbla( "LAPACKE_zgeevx_work", info );
return info;
}
if( ldvr < n ) {
if( ldvr < 1 || ( LAPACKE_lsame( jobvr, 'v' ) && ldvr < n ) ) {
info = -13;
LAPACKE_xerbla( "LAPACKE_zgeevx_work", info );
return info;

View File

@ -72,12 +72,12 @@ lapack_int LAPACKE_zgges_work( int matrix_layout, char jobvsl, char jobvsr,
LAPACKE_xerbla( "LAPACKE_zgges_work", info );
return info;
}
if( ldvsl < n ) {
if( ldvsl < 1 || ( LAPACKE_lsame( jobvsl, 'v' ) && ldvsl < n ) ) {
info = -15;
LAPACKE_xerbla( "LAPACKE_zgges_work", info );
return info;
}
if( ldvsr < n ) {
if( ldvsr < 1 || ( LAPACKE_lsame( jobvsr, 'v' ) && ldvsr < n ) ) {
info = -17;
LAPACKE_xerbla( "LAPACKE_zgges_work", info );
return info;

View File

@ -76,12 +76,12 @@ lapack_int LAPACKE_zggesx_work( int matrix_layout, char jobvsl, char jobvsr,
LAPACKE_xerbla( "LAPACKE_zggesx_work", info );
return info;
}
if( ldvsl < n ) {
if( ldvsl < 1 || ( LAPACKE_lsame( jobvsl, 'v' ) && ldvsl < n ) ) {
info = -16;
LAPACKE_xerbla( "LAPACKE_zggesx_work", info );
return info;
}
if( ldvsr < n ) {
if( ldvsr < 1 || ( LAPACKE_lsame( jobvsr, 'v' ) && ldvsr < n ) ) {
info = -18;
LAPACKE_xerbla( "LAPACKE_zggesx_work", info );
return info;