Skip to content

Commit 969a680

Browse files
authored
Merge pull request #157 from echeresh/e_lapacke
Fixing NaN-checking in LAPACKE interfaces for sub- and super-diagonal parameters
2 parents 9429355 + 760d0b6 commit 969a680

40 files changed

Lines changed: 40 additions & 64 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_chesv_rk.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,6 @@ lapack_int LAPACKE_chesv_rk( int matrix_layout, char uplo, lapack_int n,
5252
if( LAPACKE_che_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5353
return -5;
5454
}
55-
if( LAPACKE_c_nancheck( n, e, 1) ) {
56-
return -7;
57-
}
5855
if( LAPACKE_cge_nancheck( matrix_layout, n, nrhs, b, ldb ) ) {
5956
return -10;
6057
}

LAPACKE/src/lapacke_chetrf_rk.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,6 @@ lapack_int LAPACKE_chetrf_rk( int matrix_layout, char uplo, lapack_int n,
5050
if( LAPACKE_che_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5151
return -4;
5252
}
53-
if( LAPACKE_c_nancheck( n, e, 1 ) ) {
54-
return -6;
55-
}
5653
#endif
5754
/* Query optimal working array(s) size */
5855
info = LAPACKE_chetrf_rk_work( matrix_layout, uplo, n, a, lda, e, ipiv,

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_cstegr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ lapack_int LAPACKE_cstegr( int matrix_layout, char jobz, char range,
5858
if( LAPACKE_s_nancheck( n, d, 1 ) ) {
5959
return -5;
6060
}
61-
if( LAPACKE_s_nancheck( n, e, 1 ) ) {
61+
if( LAPACKE_s_nancheck( n-1, e, 1 ) ) {
6262
return -6;
6363
}
6464
if( LAPACKE_lsame( range, 'v' ) ) {

LAPACKE/src/lapacke_cstein.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ lapack_int LAPACKE_cstein( int matrix_layout, lapack_int n, const float* d,
5151
if( LAPACKE_s_nancheck( n, d, 1 ) ) {
5252
return -3;
5353
}
54-
if( LAPACKE_s_nancheck( n, e, 1 ) ) {
54+
if( LAPACKE_s_nancheck( n-1, e, 1 ) ) {
5555
return -4;
5656
}
5757
if( LAPACKE_s_nancheck( n, w, 1 ) ) {

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_csysv_rk.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,6 @@ lapack_int LAPACKE_csysv_rk( int matrix_layout, char uplo, lapack_int n,
5252
if( LAPACKE_csy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5353
return -5;
5454
}
55-
if( LAPACKE_c_nancheck( n, e, 1) ) {
56-
return -7;
57-
}
5855
if( LAPACKE_cge_nancheck( matrix_layout, n, nrhs, b, ldb ) ) {
5956
return -9;
6057
}

LAPACKE/src/lapacke_csytrf_rk.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,6 @@ lapack_int LAPACKE_csytrf_rk( int matrix_layout, char uplo, lapack_int n,
5050
if( LAPACKE_csy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
5151
return -4;
5252
}
53-
if( LAPACKE_c_nancheck( n, e, 1 ) ) {
54-
return -6;
55-
}
5653
#endif
5754
/* Query optimal working array(s) size */
5855
info = LAPACKE_csytrf_rk_work( matrix_layout, uplo, n, a, lda, e, ipiv,

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

0 commit comments

Comments
 (0)