summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlangou <julien.langou@ucdenver.edu>2017-05-24 23:14:52 (GMT)
committerGitHub <noreply@github.com>2017-05-24 23:14:52 (GMT)
commit969a6806ffed642b8578fea76e461967b647825d (patch)
treed081ee49fef087834452b0a0d6fb117562fd8c8b
parent942935539c6132984fd8a4ab202aca1e1fe794e1 (diff)
parent760d0b621989630170e55e79175d88721bd1dadf (diff)
downloadlapack-969a6806ffed642b8578fea76e461967b647825d.zip
lapack-969a6806ffed642b8578fea76e461967b647825d.tar.gz
lapack-969a6806ffed642b8578fea76e461967b647825d.tar.bz2
Merge pull request #157 from echeresh/e_lapacke
Fixing NaN-checking in LAPACKE interfaces for sub- and super-diagonal parameters
-rw-r--r--LAPACKE/src/lapacke_checon_3.c3
-rw-r--r--LAPACKE/src/lapacke_chesv_rk.c3
-rw-r--r--LAPACKE/src/lapacke_chetrf_rk.c3
-rw-r--r--LAPACKE/src/lapacke_chetri_3.c3
-rw-r--r--LAPACKE/src/lapacke_cstegr.c2
-rw-r--r--LAPACKE/src/lapacke_cstein.c2
-rw-r--r--LAPACKE/src/lapacke_csycon_3.c3
-rw-r--r--LAPACKE/src/lapacke_csysv_rk.c3
-rw-r--r--LAPACKE/src/lapacke_csytrf_rk.c3
-rw-r--r--LAPACKE/src/lapacke_csytri_3.c3
-rw-r--r--LAPACKE/src/lapacke_dbdsdc.c2
-rw-r--r--LAPACKE/src/lapacke_dstegr.c2
-rw-r--r--LAPACKE/src/lapacke_dstein.c2
-rw-r--r--LAPACKE/src/lapacke_dstev.c2
-rw-r--r--LAPACKE/src/lapacke_dstevd.c2
-rw-r--r--LAPACKE/src/lapacke_dstevx.c2
-rw-r--r--LAPACKE/src/lapacke_dsycon_3.c3
-rw-r--r--LAPACKE/src/lapacke_dsysv_rk.c3
-rw-r--r--LAPACKE/src/lapacke_dsytrf_rk.c3
-rw-r--r--LAPACKE/src/lapacke_dsytri_3.c3
-rw-r--r--LAPACKE/src/lapacke_sbdsdc.c2
-rw-r--r--LAPACKE/src/lapacke_sstegr.c2
-rw-r--r--LAPACKE/src/lapacke_sstein.c2
-rw-r--r--LAPACKE/src/lapacke_sstev.c2
-rw-r--r--LAPACKE/src/lapacke_sstevd.c2
-rw-r--r--LAPACKE/src/lapacke_sstevx.c2
-rw-r--r--LAPACKE/src/lapacke_ssycon_3.c3
-rw-r--r--LAPACKE/src/lapacke_ssysv_rk.c3
-rw-r--r--LAPACKE/src/lapacke_ssytrf_rk.c3
-rw-r--r--LAPACKE/src/lapacke_ssytri_3.c3
-rw-r--r--LAPACKE/src/lapacke_zhecon_3.c3
-rw-r--r--LAPACKE/src/lapacke_zhesv_rk.c3
-rw-r--r--LAPACKE/src/lapacke_zhetrf_rk.c3
-rw-r--r--LAPACKE/src/lapacke_zhetri_3.c3
-rw-r--r--LAPACKE/src/lapacke_zstegr.c2
-rw-r--r--LAPACKE/src/lapacke_zstein.c2
-rw-r--r--LAPACKE/src/lapacke_zsycon_3.c3
-rw-r--r--LAPACKE/src/lapacke_zsysv_rk.c3
-rw-r--r--LAPACKE/src/lapacke_zsytrf_rk.c3
-rw-r--r--LAPACKE/src/lapacke_zsytri_3.c3
40 files changed, 40 insertions, 64 deletions
diff --git a/LAPACKE/src/lapacke_checon_3.c b/LAPACKE/src/lapacke_checon_3.c
index d96cb98..069fd82 100644
--- a/LAPACKE/src/lapacke_checon_3.c
+++ b/LAPACKE/src/lapacke_checon_3.c
@@ -40,6 +40,7 @@ lapack_int LAPACKE_checon_3( int matrix_layout, char uplo, lapack_int n,
{
lapack_int info = 0;
lapack_complex_float* work = NULL;
+ lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_checon_3", -1 );
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_checon_3( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_che_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_c_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_c_nancheck( n-1, e + e_start, 1 ) ) {
return -6;
}
if( LAPACKE_s_nancheck( 1, &anorm, 1 ) ) {
diff --git a/LAPACKE/src/lapacke_chesv_rk.c b/LAPACKE/src/lapacke_chesv_rk.c
index 04b5f6a..b682c3b 100644
--- a/LAPACKE/src/lapacke_chesv_rk.c
+++ b/LAPACKE/src/lapacke_chesv_rk.c
@@ -52,9 +52,6 @@ lapack_int LAPACKE_chesv_rk( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_che_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -5;
}
- if( LAPACKE_c_nancheck( n, e, 1) ) {
- return -7;
- }
if( LAPACKE_cge_nancheck( matrix_layout, n, nrhs, b, ldb ) ) {
return -10;
}
diff --git a/LAPACKE/src/lapacke_chetrf_rk.c b/LAPACKE/src/lapacke_chetrf_rk.c
index b9133e7..00a32b9 100644
--- a/LAPACKE/src/lapacke_chetrf_rk.c
+++ b/LAPACKE/src/lapacke_chetrf_rk.c
@@ -50,9 +50,6 @@ lapack_int LAPACKE_chetrf_rk( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_che_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_c_nancheck( n, e, 1 ) ) {
- return -6;
- }
#endif
/* Query optimal working array(s) size */
info = LAPACKE_chetrf_rk_work( matrix_layout, uplo, n, a, lda, e, ipiv,
diff --git a/LAPACKE/src/lapacke_chetri_3.c b/LAPACKE/src/lapacke_chetri_3.c
index 8ce3ad3..a273983 100644
--- a/LAPACKE/src/lapacke_chetri_3.c
+++ b/LAPACKE/src/lapacke_chetri_3.c
@@ -41,6 +41,7 @@ lapack_int LAPACKE_chetri_3( int matrix_layout, char uplo, lapack_int n,
lapack_int lwork = -1;
lapack_complex_float* work = NULL;
lapack_complex_float work_query;
+ lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_chetri_3", -1 );
return -1;
@@ -50,7 +51,7 @@ lapack_int LAPACKE_chetri_3( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_che_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_c_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_c_nancheck( n-1, e + e_start, 1 ) ) {
return -6;
}
#endif
diff --git a/LAPACKE/src/lapacke_cstegr.c b/LAPACKE/src/lapacke_cstegr.c
index 0cd589a..07057a6 100644
--- a/LAPACKE/src/lapacke_cstegr.c
+++ b/LAPACKE/src/lapacke_cstegr.c
@@ -58,7 +58,7 @@ lapack_int LAPACKE_cstegr( int matrix_layout, char jobz, char range,
if( LAPACKE_s_nancheck( n, d, 1 ) ) {
return -5;
}
- if( LAPACKE_s_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_s_nancheck( n-1, e, 1 ) ) {
return -6;
}
if( LAPACKE_lsame( range, 'v' ) ) {
diff --git a/LAPACKE/src/lapacke_cstein.c b/LAPACKE/src/lapacke_cstein.c
index 5f5cd36..b1d20cc 100644
--- a/LAPACKE/src/lapacke_cstein.c
+++ b/LAPACKE/src/lapacke_cstein.c
@@ -51,7 +51,7 @@ lapack_int LAPACKE_cstein( int matrix_layout, lapack_int n, const float* d,
if( LAPACKE_s_nancheck( n, d, 1 ) ) {
return -3;
}
- if( LAPACKE_s_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_s_nancheck( n-1, e, 1 ) ) {
return -4;
}
if( LAPACKE_s_nancheck( n, w, 1 ) ) {
diff --git a/LAPACKE/src/lapacke_csycon_3.c b/LAPACKE/src/lapacke_csycon_3.c
index 6425d61..4beff44 100644
--- a/LAPACKE/src/lapacke_csycon_3.c
+++ b/LAPACKE/src/lapacke_csycon_3.c
@@ -40,6 +40,7 @@ lapack_int LAPACKE_csycon_3( int matrix_layout, char uplo, lapack_int n,
{
lapack_int info = 0;
lapack_complex_float* work = NULL;
+ lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_csycon_3", -1 );
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_csycon_3( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_csy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_c_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_c_nancheck( n-1, e + e_start, 1 ) ) {
return -6;
}
if( LAPACKE_s_nancheck( 1, &anorm, 1 ) ) {
diff --git a/LAPACKE/src/lapacke_csysv_rk.c b/LAPACKE/src/lapacke_csysv_rk.c
index 34e95f2..fd1e6fa 100644
--- a/LAPACKE/src/lapacke_csysv_rk.c
+++ b/LAPACKE/src/lapacke_csysv_rk.c
@@ -52,9 +52,6 @@ lapack_int LAPACKE_csysv_rk( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_csy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -5;
}
- if( LAPACKE_c_nancheck( n, e, 1) ) {
- return -7;
- }
if( LAPACKE_cge_nancheck( matrix_layout, n, nrhs, b, ldb ) ) {
return -9;
}
diff --git a/LAPACKE/src/lapacke_csytrf_rk.c b/LAPACKE/src/lapacke_csytrf_rk.c
index eac1e6c..135bdf3 100644
--- a/LAPACKE/src/lapacke_csytrf_rk.c
+++ b/LAPACKE/src/lapacke_csytrf_rk.c
@@ -50,9 +50,6 @@ lapack_int LAPACKE_csytrf_rk( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_csy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_c_nancheck( n, e, 1 ) ) {
- return -6;
- }
#endif
/* Query optimal working array(s) size */
info = LAPACKE_csytrf_rk_work( matrix_layout, uplo, n, a, lda, e, ipiv,
diff --git a/LAPACKE/src/lapacke_csytri_3.c b/LAPACKE/src/lapacke_csytri_3.c
index 543d408..378537b 100644
--- a/LAPACKE/src/lapacke_csytri_3.c
+++ b/LAPACKE/src/lapacke_csytri_3.c
@@ -41,6 +41,7 @@ lapack_int LAPACKE_csytri_3( int matrix_layout, char uplo, lapack_int n,
lapack_int lwork = -1;
lapack_complex_float* work = NULL;
lapack_complex_float work_query;
+ lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_csytri_3", -1 );
return -1;
@@ -50,7 +51,7 @@ lapack_int LAPACKE_csytri_3( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_csy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_c_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_c_nancheck( n-1, e + e_start, 1 ) ) {
return -6;
}
#endif
diff --git a/LAPACKE/src/lapacke_dbdsdc.c b/LAPACKE/src/lapacke_dbdsdc.c
index a18d507..e1d9d38 100644
--- a/LAPACKE/src/lapacke_dbdsdc.c
+++ b/LAPACKE/src/lapacke_dbdsdc.c
@@ -52,7 +52,7 @@ lapack_int LAPACKE_dbdsdc( int matrix_layout, char uplo, char compq,
if( LAPACKE_d_nancheck( n, d, 1 ) ) {
return -5;
}
- if( LAPACKE_d_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_d_nancheck( n-1, e, 1 ) ) {
return -6;
}
#endif
diff --git a/LAPACKE/src/lapacke_dstegr.c b/LAPACKE/src/lapacke_dstegr.c
index 1d63e12..2704e47 100644
--- a/LAPACKE/src/lapacke_dstegr.c
+++ b/LAPACKE/src/lapacke_dstegr.c
@@ -58,7 +58,7 @@ lapack_int LAPACKE_dstegr( int matrix_layout, char jobz, char range,
if( LAPACKE_d_nancheck( n, d, 1 ) ) {
return -5;
}
- if( LAPACKE_d_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_d_nancheck( n-1, e, 1 ) ) {
return -6;
}
if( LAPACKE_lsame( range, 'v' ) ) {
diff --git a/LAPACKE/src/lapacke_dstein.c b/LAPACKE/src/lapacke_dstein.c
index 140a1f5..85c6e41 100644
--- a/LAPACKE/src/lapacke_dstein.c
+++ b/LAPACKE/src/lapacke_dstein.c
@@ -50,7 +50,7 @@ lapack_int LAPACKE_dstein( int matrix_layout, lapack_int n, const double* d,
if( LAPACKE_d_nancheck( n, d, 1 ) ) {
return -3;
}
- if( LAPACKE_d_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_d_nancheck( n-1, e, 1 ) ) {
return -4;
}
if( LAPACKE_d_nancheck( n, w, 1 ) ) {
diff --git a/LAPACKE/src/lapacke_dstev.c b/LAPACKE/src/lapacke_dstev.c
index 6e575b1..0817a5c 100644
--- a/LAPACKE/src/lapacke_dstev.c
+++ b/LAPACKE/src/lapacke_dstev.c
@@ -47,7 +47,7 @@ lapack_int LAPACKE_dstev( int matrix_layout, char jobz, lapack_int n, double* d,
if( LAPACKE_d_nancheck( n, d, 1 ) ) {
return -4;
}
- if( LAPACKE_d_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_d_nancheck( n-1, e, 1 ) ) {
return -5;
}
#endif
diff --git a/LAPACKE/src/lapacke_dstevd.c b/LAPACKE/src/lapacke_dstevd.c
index be2f092..c0f1560 100644
--- a/LAPACKE/src/lapacke_dstevd.c
+++ b/LAPACKE/src/lapacke_dstevd.c
@@ -52,7 +52,7 @@ lapack_int LAPACKE_dstevd( int matrix_layout, char jobz, lapack_int n, double* d
if( LAPACKE_d_nancheck( n, d, 1 ) ) {
return -4;
}
- if( LAPACKE_d_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_d_nancheck( n-1, e, 1 ) ) {
return -5;
}
#endif
diff --git a/LAPACKE/src/lapacke_dstevx.c b/LAPACKE/src/lapacke_dstevx.c
index 45f161d..7ebc341 100644
--- a/LAPACKE/src/lapacke_dstevx.c
+++ b/LAPACKE/src/lapacke_dstevx.c
@@ -54,7 +54,7 @@ lapack_int LAPACKE_dstevx( int matrix_layout, char jobz, char range,
if( LAPACKE_d_nancheck( n, d, 1 ) ) {
return -5;
}
- if( LAPACKE_d_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_d_nancheck( n-1, e, 1 ) ) {
return -6;
}
if( LAPACKE_lsame( range, 'v' ) ) {
diff --git a/LAPACKE/src/lapacke_dsycon_3.c b/LAPACKE/src/lapacke_dsycon_3.c
index 40503d1..063bee9 100644
--- a/LAPACKE/src/lapacke_dsycon_3.c
+++ b/LAPACKE/src/lapacke_dsycon_3.c
@@ -40,6 +40,7 @@ lapack_int LAPACKE_dsycon_3( int matrix_layout, char uplo, lapack_int n,
lapack_int info = 0;
lapack_int* iwork = NULL;
double* work = NULL;
+ lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_dsycon_3", -1 );
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_dsycon_3( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_dsy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_d_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_d_nancheck( n-1, e + e_start, 1 ) ) {
return -6;
}
if( LAPACKE_d_nancheck( 1, &anorm, 1 ) ) {
diff --git a/LAPACKE/src/lapacke_dsysv_rk.c b/LAPACKE/src/lapacke_dsysv_rk.c
index ba9eaa3..259cb34 100644
--- a/LAPACKE/src/lapacke_dsysv_rk.c
+++ b/LAPACKE/src/lapacke_dsysv_rk.c
@@ -50,9 +50,6 @@ lapack_int LAPACKE_dsysv_rk( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_dsy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -5;
}
- if( LAPACKE_d_nancheck( n, e, 1) ) {
- return -7;
- }
if( LAPACKE_dge_nancheck( matrix_layout, n, nrhs, b, ldb ) ) {
return -9;
}
diff --git a/LAPACKE/src/lapacke_dsytrf_rk.c b/LAPACKE/src/lapacke_dsytrf_rk.c
index 0d9cade..239b546 100644
--- a/LAPACKE/src/lapacke_dsytrf_rk.c
+++ b/LAPACKE/src/lapacke_dsytrf_rk.c
@@ -49,9 +49,6 @@ lapack_int LAPACKE_dsytrf_rk( int matrix_layout, char uplo, lapack_int n, double
if( LAPACKE_dsy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_d_nancheck( n, e, 1 ) ) {
- return -6;
- }
#endif
/* Query optimal working array(s) size */
info = LAPACKE_dsytrf_rk_work( matrix_layout, uplo, n, a, lda, e, ipiv,
diff --git a/LAPACKE/src/lapacke_dsytri_3.c b/LAPACKE/src/lapacke_dsytri_3.c
index b0960da..fd41f7b 100644
--- a/LAPACKE/src/lapacke_dsytri_3.c
+++ b/LAPACKE/src/lapacke_dsytri_3.c
@@ -40,6 +40,7 @@ lapack_int LAPACKE_dsytri_3( int matrix_layout, char uplo, lapack_int n, double*
lapack_int lwork = -1;
double* work = NULL;
double work_query;
+ lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_dsytri_3", -1 );
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_dsytri_3( int matrix_layout, char uplo, lapack_int n, double*
if( LAPACKE_dsy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_d_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_d_nancheck( n-1, e + e_start, 1 ) ) {
return -6;
}
#endif
diff --git a/LAPACKE/src/lapacke_sbdsdc.c b/LAPACKE/src/lapacke_sbdsdc.c
index 4317680..ee1db7a 100644
--- a/LAPACKE/src/lapacke_sbdsdc.c
+++ b/LAPACKE/src/lapacke_sbdsdc.c
@@ -52,7 +52,7 @@ lapack_int LAPACKE_sbdsdc( int matrix_layout, char uplo, char compq,
if( LAPACKE_s_nancheck( n, d, 1 ) ) {
return -5;
}
- if( LAPACKE_s_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_s_nancheck( n-1, e, 1 ) ) {
return -6;
}
#endif
diff --git a/LAPACKE/src/lapacke_sstegr.c b/LAPACKE/src/lapacke_sstegr.c
index a3c5d4d..1694273 100644
--- a/LAPACKE/src/lapacke_sstegr.c
+++ b/LAPACKE/src/lapacke_sstegr.c
@@ -58,7 +58,7 @@ lapack_int LAPACKE_sstegr( int matrix_layout, char jobz, char range,
if( LAPACKE_s_nancheck( n, d, 1 ) ) {
return -5;
}
- if( LAPACKE_s_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_s_nancheck( n-1, e, 1 ) ) {
return -6;
}
if( LAPACKE_lsame( range, 'v' ) ) {
diff --git a/LAPACKE/src/lapacke_sstein.c b/LAPACKE/src/lapacke_sstein.c
index ccad56f..fa8b384 100644
--- a/LAPACKE/src/lapacke_sstein.c
+++ b/LAPACKE/src/lapacke_sstein.c
@@ -50,7 +50,7 @@ lapack_int LAPACKE_sstein( int matrix_layout, lapack_int n, const float* d,
if( LAPACKE_s_nancheck( n, d, 1 ) ) {
return -3;
}
- if( LAPACKE_s_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_s_nancheck( n-1, e, 1 ) ) {
return -4;
}
if( LAPACKE_s_nancheck( n, w, 1 ) ) {
diff --git a/LAPACKE/src/lapacke_sstev.c b/LAPACKE/src/lapacke_sstev.c
index 97da731..1006aee 100644
--- a/LAPACKE/src/lapacke_sstev.c
+++ b/LAPACKE/src/lapacke_sstev.c
@@ -47,7 +47,7 @@ lapack_int LAPACKE_sstev( int matrix_layout, char jobz, lapack_int n, float* d,
if( LAPACKE_s_nancheck( n, d, 1 ) ) {
return -4;
}
- if( LAPACKE_s_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_s_nancheck( n-1, e, 1 ) ) {
return -5;
}
#endif
diff --git a/LAPACKE/src/lapacke_sstevd.c b/LAPACKE/src/lapacke_sstevd.c
index b2bf5bb..ae0b679 100644
--- a/LAPACKE/src/lapacke_sstevd.c
+++ b/LAPACKE/src/lapacke_sstevd.c
@@ -52,7 +52,7 @@ lapack_int LAPACKE_sstevd( int matrix_layout, char jobz, lapack_int n, float* d,
if( LAPACKE_s_nancheck( n, d, 1 ) ) {
return -4;
}
- if( LAPACKE_s_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_s_nancheck( n-1, e, 1 ) ) {
return -5;
}
#endif
diff --git a/LAPACKE/src/lapacke_sstevx.c b/LAPACKE/src/lapacke_sstevx.c
index 1dd833d..b71ee9a 100644
--- a/LAPACKE/src/lapacke_sstevx.c
+++ b/LAPACKE/src/lapacke_sstevx.c
@@ -54,7 +54,7 @@ lapack_int LAPACKE_sstevx( int matrix_layout, char jobz, char range,
if( LAPACKE_s_nancheck( n, d, 1 ) ) {
return -5;
}
- if( LAPACKE_s_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_s_nancheck( n-1, e, 1 ) ) {
return -6;
}
if( LAPACKE_lsame( range, 'v' ) ) {
diff --git a/LAPACKE/src/lapacke_ssycon_3.c b/LAPACKE/src/lapacke_ssycon_3.c
index ece1482..bf75923 100644
--- a/LAPACKE/src/lapacke_ssycon_3.c
+++ b/LAPACKE/src/lapacke_ssycon_3.c
@@ -40,6 +40,7 @@ lapack_int LAPACKE_ssycon_3( int matrix_layout, char uplo, lapack_int n,
lapack_int info = 0;
lapack_int* iwork = NULL;
float* work = NULL;
+ lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_ssycon_3", -1 );
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_ssycon_3( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_ssy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_s_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_s_nancheck( n-1, e + e_start, 1 ) ) {
return -6;
}
if( LAPACKE_s_nancheck( 1, &anorm, 1 ) ) {
diff --git a/LAPACKE/src/lapacke_ssysv_rk.c b/LAPACKE/src/lapacke_ssysv_rk.c
index b352028..ad5fbf4 100644
--- a/LAPACKE/src/lapacke_ssysv_rk.c
+++ b/LAPACKE/src/lapacke_ssysv_rk.c
@@ -50,9 +50,6 @@ lapack_int LAPACKE_ssysv_rk( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_ssy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -5;
}
- if( LAPACKE_s_nancheck( n, e, 1) ) {
- return -7;
- }
if( LAPACKE_sge_nancheck( matrix_layout, n, nrhs, b, ldb ) ) {
return -9;
}
diff --git a/LAPACKE/src/lapacke_ssytrf_rk.c b/LAPACKE/src/lapacke_ssytrf_rk.c
index 8066318..c1fd53a 100644
--- a/LAPACKE/src/lapacke_ssytrf_rk.c
+++ b/LAPACKE/src/lapacke_ssytrf_rk.c
@@ -49,9 +49,6 @@ lapack_int LAPACKE_ssytrf_rk( int matrix_layout, char uplo, lapack_int n, float*
if( LAPACKE_ssy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_s_nancheck( n, e, 1 ) ) {
- return -6;
- }
#endif
/* Query optimal working array(s) size */
info = LAPACKE_ssytrf_rk_work( matrix_layout, uplo, n, a, lda, e, ipiv,
diff --git a/LAPACKE/src/lapacke_ssytri_3.c b/LAPACKE/src/lapacke_ssytri_3.c
index b97ca49..bfbe4eb 100644
--- a/LAPACKE/src/lapacke_ssytri_3.c
+++ b/LAPACKE/src/lapacke_ssytri_3.c
@@ -40,6 +40,7 @@ lapack_int LAPACKE_ssytri_3( int matrix_layout, char uplo, lapack_int n, float*
lapack_int lwork = -1;
float* work = NULL;
float work_query;
+ lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_ssytri_3", -1 );
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_ssytri_3( int matrix_layout, char uplo, lapack_int n, float*
if( LAPACKE_ssy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_s_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_s_nancheck( n-1, e + e_start, 1 ) ) {
return -6;
}
#endif
diff --git a/LAPACKE/src/lapacke_zhecon_3.c b/LAPACKE/src/lapacke_zhecon_3.c
index a08bc8c..5010fb3 100644
--- a/LAPACKE/src/lapacke_zhecon_3.c
+++ b/LAPACKE/src/lapacke_zhecon_3.c
@@ -40,6 +40,7 @@ lapack_int LAPACKE_zhecon_3( int matrix_layout, char uplo, lapack_int n,
{
lapack_int info = 0;
lapack_complex_double* work = NULL;
+ lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_zhecon_3", -1 );
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_zhecon_3( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_zhe_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_z_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_z_nancheck( n-1, e + e_start, 1 ) ) {
return -6;
}
if( LAPACKE_d_nancheck( 1, &anorm, 1 ) ) {
diff --git a/LAPACKE/src/lapacke_zhesv_rk.c b/LAPACKE/src/lapacke_zhesv_rk.c
index 777a7b9..62a5747 100644
--- a/LAPACKE/src/lapacke_zhesv_rk.c
+++ b/LAPACKE/src/lapacke_zhesv_rk.c
@@ -51,9 +51,6 @@ lapack_int LAPACKE_zhesv_rk( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_zhe_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -5;
}
- if( LAPACKE_z_nancheck( n, e, 1) ) {
- return -7;
- }
if( LAPACKE_zge_nancheck( matrix_layout, n, nrhs, b, ldb ) ) {
return -9;
}
diff --git a/LAPACKE/src/lapacke_zhetrf_rk.c b/LAPACKE/src/lapacke_zhetrf_rk.c
index 19dc423..1cf2fca 100644
--- a/LAPACKE/src/lapacke_zhetrf_rk.c
+++ b/LAPACKE/src/lapacke_zhetrf_rk.c
@@ -50,9 +50,6 @@ lapack_int LAPACKE_zhetrf_rk( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_zhe_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_z_nancheck( n, e, 1 ) ) {
- return -6;
- }
#endif
/* Query optimal working array(s) size */
info = LAPACKE_zhetrf_rk_work( matrix_layout, uplo, n, a, lda, e, ipiv,
diff --git a/LAPACKE/src/lapacke_zhetri_3.c b/LAPACKE/src/lapacke_zhetri_3.c
index 33790c2..6cf760f 100644
--- a/LAPACKE/src/lapacke_zhetri_3.c
+++ b/LAPACKE/src/lapacke_zhetri_3.c
@@ -41,6 +41,7 @@ lapack_int LAPACKE_zhetri_3( int matrix_layout, char uplo, lapack_int n,
lapack_int lwork = -1;
lapack_complex_double* work = NULL;
lapack_complex_double work_query;
+ lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_zhetri_3", -1 );
return -1;
@@ -50,7 +51,7 @@ lapack_int LAPACKE_zhetri_3( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_zhe_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_z_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_z_nancheck( n-1, e + e_start, 1 ) ) {
return -6;
}
#endif
diff --git a/LAPACKE/src/lapacke_zstegr.c b/LAPACKE/src/lapacke_zstegr.c
index 189e6be..6de8383 100644
--- a/LAPACKE/src/lapacke_zstegr.c
+++ b/LAPACKE/src/lapacke_zstegr.c
@@ -59,7 +59,7 @@ lapack_int LAPACKE_zstegr( int matrix_layout, char jobz, char range,
if( LAPACKE_d_nancheck( n, d, 1 ) ) {
return -5;
}
- if( LAPACKE_d_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_d_nancheck( n-1, e, 1 ) ) {
return -6;
}
if( LAPACKE_lsame( range, 'v' ) ) {
diff --git a/LAPACKE/src/lapacke_zstein.c b/LAPACKE/src/lapacke_zstein.c
index 1d1b2ef..70b9988 100644
--- a/LAPACKE/src/lapacke_zstein.c
+++ b/LAPACKE/src/lapacke_zstein.c
@@ -51,7 +51,7 @@ lapack_int LAPACKE_zstein( int matrix_layout, lapack_int n, const double* d,
if( LAPACKE_d_nancheck( n, d, 1 ) ) {
return -3;
}
- if( LAPACKE_d_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_d_nancheck( n-1, e, 1 ) ) {
return -4;
}
if( LAPACKE_d_nancheck( n, w, 1 ) ) {
diff --git a/LAPACKE/src/lapacke_zsycon_3.c b/LAPACKE/src/lapacke_zsycon_3.c
index 03900b6..993523b 100644
--- a/LAPACKE/src/lapacke_zsycon_3.c
+++ b/LAPACKE/src/lapacke_zsycon_3.c
@@ -40,6 +40,7 @@ lapack_int LAPACKE_zsycon_3( int matrix_layout, char uplo, lapack_int n,
{
lapack_int info = 0;
lapack_complex_double* work = NULL;
+ lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_zsycon_3", -1 );
return -1;
@@ -49,7 +50,7 @@ lapack_int LAPACKE_zsycon_3( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_zsy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_z_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_z_nancheck( n-1, e + e_start, 1 ) ) {
return -6;
}
if( LAPACKE_d_nancheck( 1, &anorm, 1 ) ) {
diff --git a/LAPACKE/src/lapacke_zsysv_rk.c b/LAPACKE/src/lapacke_zsysv_rk.c
index a338511..96bc40a 100644
--- a/LAPACKE/src/lapacke_zsysv_rk.c
+++ b/LAPACKE/src/lapacke_zsysv_rk.c
@@ -51,9 +51,6 @@ lapack_int LAPACKE_zsysv_rk( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_zsy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -5;
}
- if( LAPACKE_z_nancheck( n, e, 1) ) {
- return -7;
- }
if( LAPACKE_zge_nancheck( matrix_layout, n, nrhs, b, ldb ) ) {
return -9;
}
diff --git a/LAPACKE/src/lapacke_zsytrf_rk.c b/LAPACKE/src/lapacke_zsytrf_rk.c
index c4ead32..4119ba7 100644
--- a/LAPACKE/src/lapacke_zsytrf_rk.c
+++ b/LAPACKE/src/lapacke_zsytrf_rk.c
@@ -50,9 +50,6 @@ lapack_int LAPACKE_zsytrf_rk( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_zsy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_z_nancheck( n, e, 1 ) ) {
- return -6;
- }
#endif
/* Query optimal working array(s) size */
info = LAPACKE_zsytrf_rk_work( matrix_layout, uplo, n, a, lda, e, ipiv,
diff --git a/LAPACKE/src/lapacke_zsytri_3.c b/LAPACKE/src/lapacke_zsytri_3.c
index 0902c57..78ff46a 100644
--- a/LAPACKE/src/lapacke_zsytri_3.c
+++ b/LAPACKE/src/lapacke_zsytri_3.c
@@ -41,6 +41,7 @@ lapack_int LAPACKE_zsytri_3( int matrix_layout, char uplo, lapack_int n,
lapack_int lwork = -1;
lapack_complex_double* work = NULL;
lapack_complex_double work_query;
+ lapack_int e_start = LAPACKE_lsame( uplo, 'U' ) ? 1 : 0;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_zsytri_3", -1 );
return -1;
@@ -50,7 +51,7 @@ lapack_int LAPACKE_zsytri_3( int matrix_layout, char uplo, lapack_int n,
if( LAPACKE_zsy_nancheck( matrix_layout, uplo, n, a, lda ) ) {
return -4;
}
- if( LAPACKE_z_nancheck( n, e, 1 ) ) {
+ if( LAPACKE_z_nancheck( n-1, e + e_start, 1 ) ) {
return -6;
}
#endif