Fix leading dimension check of eigen-/Schur vectors (Reference-LAPACK PR 665)

This commit is contained in:
Martin Kroeker 2022-11-13 17:48:02 +01:00 committed by GitHub
parent ee6643bc6b
commit 645633e321
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 16 additions and 16 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 ); LAPACKE_xerbla( "LAPACKE_cgeev_work", info );
return info; return info;
} }
if( ldvl < n ) { if( ldvl < 1 || ( LAPACKE_lsame( jobvl, 'v' ) && ldvl < n ) ) {
info = -9; info = -9;
LAPACKE_xerbla( "LAPACKE_cgeev_work", info ); LAPACKE_xerbla( "LAPACKE_cgeev_work", info );
return info; return info;
} }
if( ldvr < n ) { if( ldvr < 1 || ( LAPACKE_lsame( jobvr, 'v' ) && ldvr < n ) ) {
info = -11; info = -11;
LAPACKE_xerbla( "LAPACKE_cgeev_work", info ); LAPACKE_xerbla( "LAPACKE_cgeev_work", info );
return 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 ); LAPACKE_xerbla( "LAPACKE_cgeevx_work", info );
return info; return info;
} }
if( ldvl < n ) { if( ldvl < 1 || ( LAPACKE_lsame( jobvl, 'v' ) && ldvl < n ) ) {
info = -11; info = -11;
LAPACKE_xerbla( "LAPACKE_cgeevx_work", info ); LAPACKE_xerbla( "LAPACKE_cgeevx_work", info );
return info; return info;
} }
if( ldvr < n ) { if( ldvr < 1 || ( LAPACKE_lsame( jobvr, 'v' ) && ldvr < n ) ) {
info = -13; info = -13;
LAPACKE_xerbla( "LAPACKE_cgeevx_work", info ); LAPACKE_xerbla( "LAPACKE_cgeevx_work", info );
return 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 ); LAPACKE_xerbla( "LAPACKE_cgges_work", info );
return info; return info;
} }
if( ldvsl < n ) { if( ldvsl < 1 || ( LAPACKE_lsame( jobvsl, 'v' ) && ldvsl < n ) ) {
info = -15; info = -15;
LAPACKE_xerbla( "LAPACKE_cgges_work", info ); LAPACKE_xerbla( "LAPACKE_cgges_work", info );
return info; return info;
} }
if( ldvsr < n ) { if( ldvsr < 1 || ( LAPACKE_lsame( jobvsr, 'v' ) && ldvsr < n ) ) {
info = -17; info = -17;
LAPACKE_xerbla( "LAPACKE_cgges_work", info ); LAPACKE_xerbla( "LAPACKE_cgges_work", info );
return 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 ); LAPACKE_xerbla( "LAPACKE_cggesx_work", info );
return info; return info;
} }
if( ldvsl < n ) { if( ldvsl < 1 || ( LAPACKE_lsame( jobvsl, 'v' ) && ldvsl < n ) ) {
info = -16; info = -16;
LAPACKE_xerbla( "LAPACKE_cggesx_work", info ); LAPACKE_xerbla( "LAPACKE_cggesx_work", info );
return info; return info;
} }
if( ldvsr < n ) { if( ldvsr < 1 || ( LAPACKE_lsame( jobvsr, 'v' ) && ldvsr < n ) ) {
info = -18; info = -18;
LAPACKE_xerbla( "LAPACKE_cggesx_work", info ); LAPACKE_xerbla( "LAPACKE_cggesx_work", info );
return 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 ); LAPACKE_xerbla( "LAPACKE_dgeev_work", info );
return info; return info;
} }
if( ldvl < n ) { if( ldvl < 1 || ( LAPACKE_lsame( jobvl, 'v' ) && ldvl < n ) ) {
info = -10; info = -10;
LAPACKE_xerbla( "LAPACKE_dgeev_work", info ); LAPACKE_xerbla( "LAPACKE_dgeev_work", info );
return info; return info;
} }
if( ldvr < n ) { if( ldvr < 1 || ( LAPACKE_lsame( jobvr, 'v' ) && ldvr < n ) ) {
info = -12; info = -12;
LAPACKE_xerbla( "LAPACKE_dgeev_work", info ); LAPACKE_xerbla( "LAPACKE_dgeev_work", info );
return 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 ); LAPACKE_xerbla( "LAPACKE_dgeevx_work", info );
return info; return info;
} }
if( ldvl < n ) { if( ldvl < 1 || ( LAPACKE_lsame( jobvl, 'v' ) && ldvl < n ) ) {
info = -12; info = -12;
LAPACKE_xerbla( "LAPACKE_dgeevx_work", info ); LAPACKE_xerbla( "LAPACKE_dgeevx_work", info );
return info; return info;
} }
if( ldvr < n ) { if( ldvr < 1 || ( LAPACKE_lsame( jobvr, 'v' ) && ldvr < n ) ) {
info = -14; info = -14;
LAPACKE_xerbla( "LAPACKE_dgeevx_work", info ); LAPACKE_xerbla( "LAPACKE_dgeevx_work", info );
return 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 ); LAPACKE_xerbla( "LAPACKE_dgges_work", info );
return info; return info;
} }
if( ldvsl < n ) { if( ldvsl < 1 || ( LAPACKE_lsame( jobvsl, 'v' ) && ldvsl < n ) ) {
info = -16; info = -16;
LAPACKE_xerbla( "LAPACKE_dgges_work", info ); LAPACKE_xerbla( "LAPACKE_dgges_work", info );
return info; return info;
} }
if( ldvsr < n ) { if( ldvsr < 1 || ( LAPACKE_lsame( jobvsr, 'v' ) && ldvsr < n ) ) {
info = -18; info = -18;
LAPACKE_xerbla( "LAPACKE_dgges_work", info ); LAPACKE_xerbla( "LAPACKE_dgges_work", info );
return 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 ); LAPACKE_xerbla( "LAPACKE_dggesx_work", info );
return info; return info;
} }
if( ldvsl < n ) { if( ldvsl < 1 || ( LAPACKE_lsame( jobvsl, 'v' ) && ldvsl < n ) ) {
info = -17; info = -17;
LAPACKE_xerbla( "LAPACKE_dggesx_work", info ); LAPACKE_xerbla( "LAPACKE_dggesx_work", info );
return info; return info;
} }
if( ldvsr < n ) { if( ldvsr < 1 || ( LAPACKE_lsame( jobvsr, 'v' ) && ldvsr < n ) ) {
info = -19; info = -19;
LAPACKE_xerbla( "LAPACKE_dggesx_work", info ); LAPACKE_xerbla( "LAPACKE_dggesx_work", info );
return info; return info;