Skip to content

Commit 19111b9

Browse files
committed
Fix lapacke_*con_3 and lapacke_*tri_3: e stores (n-1) input elements and offset depends on uplo
1 parent ffde5da commit 19111b9

12 files changed

Lines changed: 24 additions & 12 deletions

LAPACKE/src/lapacke_checon_3.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ lapack_int LAPACKE_checon_3( int matrix_layout, char uplo, lapack_int n,
4040
{
4141
lapack_int info = 0;
4242
lapack_complex_float* work = NULL;
43+
lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
4344
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
4445
LAPACKE_xerbla( "LAPACKE_checon_3", -1 );
4546
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_checon_3( int matrix_layout, char uplo, lapack_int n,
4950
if( LAPACKE_che_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5051
return -4;
5152
}
52-
if( LAPACKE_c_nancheck( n, e, 1 ) ) {
53+
if( LAPACKE_c_nancheck( n-1, e + e_start, 1 ) ) {
5354
return -6;
5455
}
5556
if( LAPACKE_s_nancheck( 1, &anorm, 1 ) ) {

LAPACKE/src/lapacke_chetri_3.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ lapack_int LAPACKE_chetri_3( int matrix_layout, char uplo, lapack_int n,
4141
lapack_int lwork = -1;
4242
lapack_complex_float* work = NULL;
4343
lapack_complex_float work_query;
44+
lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
4445
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
4546
LAPACKE_xerbla( "LAPACKE_chetri_3", -1 );
4647
return -1;
@@ -50,7 +51,7 @@ lapack_int LAPACKE_chetri_3( int matrix_layout, char uplo, lapack_int n,
5051
if( LAPACKE_che_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5152
return -4;
5253
}
53-
if( LAPACKE_c_nancheck( n, e, 1 ) ) {
54+
if( LAPACKE_c_nancheck( n-1, e + e_start, 1 ) ) {
5455
return -6;
5556
}
5657
#endif

LAPACKE/src/lapacke_csycon_3.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ lapack_int LAPACKE_csycon_3( int matrix_layout, char uplo, lapack_int n,
4040
{
4141
lapack_int info = 0;
4242
lapack_complex_float* work = NULL;
43+
lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
4344
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
4445
LAPACKE_xerbla( "LAPACKE_csycon_3", -1 );
4546
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_csycon_3( int matrix_layout, char uplo, lapack_int n,
4950
if( LAPACKE_csy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5051
return -4;
5152
}
52-
if( LAPACKE_c_nancheck( n, e, 1 ) ) {
53+
if( LAPACKE_c_nancheck( n-1, e + e_start, 1 ) ) {
5354
return -6;
5455
}
5556
if( LAPACKE_s_nancheck( 1, &anorm, 1 ) ) {

LAPACKE/src/lapacke_csytri_3.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ lapack_int LAPACKE_csytri_3( int matrix_layout, char uplo, lapack_int n,
4141
lapack_int lwork = -1;
4242
lapack_complex_float* work = NULL;
4343
lapack_complex_float work_query;
44+
lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
4445
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
4546
LAPACKE_xerbla( "LAPACKE_csytri_3", -1 );
4647
return -1;
@@ -50,7 +51,7 @@ lapack_int LAPACKE_csytri_3( int matrix_layout, char uplo, lapack_int n,
5051
if( LAPACKE_csy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5152
return -4;
5253
}
53-
if( LAPACKE_c_nancheck( n, e, 1 ) ) {
54+
if( LAPACKE_c_nancheck( n-1, e + e_start, 1 ) ) {
5455
return -6;
5556
}
5657
#endif

LAPACKE/src/lapacke_dsycon_3.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ lapack_int LAPACKE_dsycon_3( int matrix_layout, char uplo, lapack_int n,
4040
lapack_int info = 0;
4141
lapack_int* iwork = NULL;
4242
double* work = NULL;
43+
lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
4344
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
4445
LAPACKE_xerbla( "LAPACKE_dsycon_3", -1 );
4546
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_dsycon_3( int matrix_layout, char uplo, lapack_int n,
4950
if( LAPACKE_dsy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5051
return -4;
5152
}
52-
if( LAPACKE_d_nancheck( n, e, 1 ) ) {
53+
if( LAPACKE_d_nancheck( n-1, e + e_start, 1 ) ) {
5354
return -6;
5455
}
5556
if( LAPACKE_d_nancheck( 1, &anorm, 1 ) ) {

LAPACKE/src/lapacke_dsytri_3.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ lapack_int LAPACKE_dsytri_3( int matrix_layout, char uplo, lapack_int n, double*
4040
lapack_int lwork = -1;
4141
double* work = NULL;
4242
double work_query;
43+
lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
4344
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
4445
LAPACKE_xerbla( "LAPACKE_dsytri_3", -1 );
4546
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_dsytri_3( int matrix_layout, char uplo, lapack_int n, double*
4950
if( LAPACKE_dsy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5051
return -4;
5152
}
52-
if( LAPACKE_d_nancheck( n, e, 1 ) ) {
53+
if( LAPACKE_d_nancheck( n-1, e + e_start, 1 ) ) {
5354
return -6;
5455
}
5556
#endif

LAPACKE/src/lapacke_ssycon_3.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ lapack_int LAPACKE_ssycon_3( int matrix_layout, char uplo, lapack_int n,
4040
lapack_int info = 0;
4141
lapack_int* iwork = NULL;
4242
float* work = NULL;
43+
lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
4344
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
4445
LAPACKE_xerbla( "LAPACKE_ssycon_3", -1 );
4546
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_ssycon_3( int matrix_layout, char uplo, lapack_int n,
4950
if( LAPACKE_ssy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5051
return -4;
5152
}
52-
if( LAPACKE_s_nancheck( n, e, 1 ) ) {
53+
if( LAPACKE_s_nancheck( n-1, e + e_start, 1 ) ) {
5354
return -6;
5455
}
5556
if( LAPACKE_s_nancheck( 1, &anorm, 1 ) ) {

LAPACKE/src/lapacke_ssytri_3.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ lapack_int LAPACKE_ssytri_3( int matrix_layout, char uplo, lapack_int n, float*
4040
lapack_int lwork = -1;
4141
float* work = NULL;
4242
float work_query;
43+
lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
4344
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
4445
LAPACKE_xerbla( "LAPACKE_ssytri_3", -1 );
4546
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_ssytri_3( int matrix_layout, char uplo, lapack_int n, float*
4950
if( LAPACKE_ssy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5051
return -4;
5152
}
52-
if( LAPACKE_s_nancheck( n, e, 1 ) ) {
53+
if( LAPACKE_s_nancheck( n-1, e + e_start, 1 ) ) {
5354
return -6;
5455
}
5556
#endif

LAPACKE/src/lapacke_zhecon_3.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ lapack_int LAPACKE_zhecon_3( int matrix_layout, char uplo, lapack_int n,
4040
{
4141
lapack_int info = 0;
4242
lapack_complex_double* work = NULL;
43+
lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
4344
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
4445
LAPACKE_xerbla( "LAPACKE_zhecon_3", -1 );
4546
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_zhecon_3( int matrix_layout, char uplo, lapack_int n,
4950
if( LAPACKE_zhe_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5051
return -4;
5152
}
52-
if( LAPACKE_z_nancheck( n, e, 1 ) ) {
53+
if( LAPACKE_z_nancheck( n-1, e + e_start, 1 ) ) {
5354
return -6;
5455
}
5556
if( LAPACKE_d_nancheck( 1, &anorm, 1 ) ) {

LAPACKE/src/lapacke_zhetri_3.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ lapack_int LAPACKE_zhetri_3( int matrix_layout, char uplo, lapack_int n,
4141
lapack_int lwork = -1;
4242
lapack_complex_double* work = NULL;
4343
lapack_complex_double work_query;
44+
lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
4445
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
4546
LAPACKE_xerbla( "LAPACKE_zhetri_3", -1 );
4647
return -1;
@@ -50,7 +51,7 @@ lapack_int LAPACKE_zhetri_3( int matrix_layout, char uplo, lapack_int n,
5051
if( LAPACKE_zhe_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5152
return -4;
5253
}
53-
if( LAPACKE_z_nancheck( n, e, 1 ) ) {
54+
if( LAPACKE_z_nancheck( n-1, e + e_start, 1 ) ) {
5455
return -6;
5556
}
5657
#endif

0 commit comments

Comments
 (0)