Skip to content

Commit 7438212

Browse files
authored
Merge pull request #178 from kbergstr/nancheck
Added function to disable nancheck
2 parents 51a9157 + 8dece9d commit 7438212

1,208 files changed

Lines changed: 12156 additions & 9686 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

LAPACKE/include/lapacke.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19136,6 +19136,10 @@ void LAPACK_zhegv_2stage( lapack_int* itype, char* jobz, char* uplo, lapack_int*
1913619136
lapack_complex_double* work, lapack_int* lwork,
1913719137
double* rwork, lapack_int *info );
1913819138

19139+
/* APIs for set/get nancheck flags */
19140+
void LAPACKE_set_nancheck( int flag );
19141+
int LAPACKE_get_nancheck( );
19142+
1913919143
#ifdef __cplusplus
1914019144
}
1914119145
#endif /* __cplusplus */

LAPACKE/src/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,6 +1145,7 @@ lapacke_dtrttp.c
11451145
lapacke_dtrttp_work.c
11461146
lapacke_dtzrzf.c
11471147
lapacke_dtzrzf_work.c
1148+
lapacke_nancheck.c
11481149
lapacke_sbbcsd.c
11491150
lapacke_sbbcsd_work.c
11501151
lapacke_sbdsdc.c

LAPACKE/src/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1186,6 +1186,7 @@ lapacke_dtrttp.o \
11861186
lapacke_dtrttp_work.o \
11871187
lapacke_dtzrzf.o \
11881188
lapacke_dtzrzf_work.o \
1189+
lapacke_nancheck.o \
11891190
lapacke_sbbcsd.o \
11901191
lapacke_sbbcsd_work.o \
11911192
lapacke_sbdsdc.o \

LAPACKE/src/lapacke_cbbcsd.c

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -58,31 +58,33 @@ lapack_int LAPACKE_cbbcsd( int matrix_layout, char jobu1, char jobu2,
5858
lapack_layout = LAPACK_ROW_MAJOR;
5959
}
6060
#ifndef LAPACK_DISABLE_NAN_CHECK
61-
/* Optionally check input matrices for NaNs */
62-
if( LAPACKE_s_nancheck( q-1, phi, 1 ) ) {
63-
return -11;
64-
}
65-
if( LAPACKE_s_nancheck( q, theta, 1 ) ) {
66-
return -10;
67-
}
68-
if( LAPACKE_lsame( jobu1, 'y' ) ) {
69-
if( LAPACKE_cge_nancheck( lapack_layout, p, p, u1, ldu1 ) ) {
70-
return -12;
61+
if( LAPACKE_get_nancheck() ) {
62+
/* Optionally check input matrices for NaNs */
63+
if( LAPACKE_s_nancheck( q-1, phi, 1 ) ) {
64+
return -11;
7165
}
72-
}
73-
if( LAPACKE_lsame( jobu2, 'y' ) ) {
74-
if( LAPACKE_cge_nancheck( lapack_layout, m-p, m-p, u2, ldu2 ) ) {
75-
return -14;
66+
if( LAPACKE_s_nancheck( q, theta, 1 ) ) {
67+
return -10;
7668
}
77-
}
78-
if( LAPACKE_lsame( jobv1t, 'y' ) ) {
79-
if( LAPACKE_cge_nancheck( lapack_layout, q, q, v1t, ldv1t ) ) {
80-
return -16;
69+
if( LAPACKE_lsame( jobu1, 'y' ) ) {
70+
if( LAPACKE_cge_nancheck( lapack_layout, p, p, u1, ldu1 ) ) {
71+
return -12;
72+
}
8173
}
82-
}
83-
if( LAPACKE_lsame( jobv2t, 'y' ) ) {
84-
if( LAPACKE_cge_nancheck( lapack_layout, m-q, m-q, v2t, ldv2t ) ) {
85-
return -18;
74+
if( LAPACKE_lsame( jobu2, 'y' ) ) {
75+
if( LAPACKE_cge_nancheck( lapack_layout, m-p, m-p, u2, ldu2 ) ) {
76+
return -14;
77+
}
78+
}
79+
if( LAPACKE_lsame( jobv1t, 'y' ) ) {
80+
if( LAPACKE_cge_nancheck( lapack_layout, q, q, v1t, ldv1t ) ) {
81+
return -16;
82+
}
83+
}
84+
if( LAPACKE_lsame( jobv2t, 'y' ) ) {
85+
if( LAPACKE_cge_nancheck( lapack_layout, m-q, m-q, v2t, ldv2t ) ) {
86+
return -18;
87+
}
8688
}
8789
}
8890
#endif

LAPACKE/src/lapacke_cbdsqr.c

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -47,26 +47,28 @@ lapack_int LAPACKE_cbdsqr( int matrix_layout, char uplo, lapack_int n,
4747
return -1;
4848
}
4949
#ifndef LAPACK_DISABLE_NAN_CHECK
50-
/* Optionally check input matrices for NaNs */
51-
if( ncc != 0 ) {
52-
if( LAPACKE_cge_nancheck( matrix_layout, n, ncc, c, ldc ) ) {
53-
return -13;
50+
if( LAPACKE_get_nancheck() ) {
51+
/* Optionally check input matrices for NaNs */
52+
if( ncc != 0 ) {
53+
if( LAPACKE_cge_nancheck( matrix_layout, n, ncc, c, ldc ) ) {
54+
return -13;
55+
}
5456
}
55-
}
56-
if( LAPACKE_s_nancheck( n, d, 1 ) ) {
57-
return -7;
58-
}
59-
if( LAPACKE_s_nancheck( n-1, e, 1 ) ) {
60-
return -8;
61-
}
62-
if( nru != 0 ) {
63-
if( LAPACKE_cge_nancheck( matrix_layout, nru, n, u, ldu ) ) {
64-
return -11;
57+
if( LAPACKE_s_nancheck( n, d, 1 ) ) {
58+
return -7;
6559
}
66-
}
67-
if( ncvt != 0 ) {
68-
if( LAPACKE_cge_nancheck( matrix_layout, n, ncvt, vt, ldvt ) ) {
69-
return -9;
60+
if( LAPACKE_s_nancheck( n-1, e, 1 ) ) {
61+
return -8;
62+
}
63+
if( nru != 0 ) {
64+
if( LAPACKE_cge_nancheck( matrix_layout, nru, n, u, ldu ) ) {
65+
return -11;
66+
}
67+
}
68+
if( ncvt != 0 ) {
69+
if( LAPACKE_cge_nancheck( matrix_layout, n, ncvt, vt, ldvt ) ) {
70+
return -9;
71+
}
7072
}
7173
}
7274
#endif

LAPACKE/src/lapacke_cgbbrd.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,15 @@ lapack_int LAPACKE_cgbbrd( int matrix_layout, char vect, lapack_int m,
4949
return -1;
5050
}
5151
#ifndef LAPACK_DISABLE_NAN_CHECK
52-
/* Optionally check input matrices for NaNs */
53-
if( LAPACKE_cgb_nancheck( matrix_layout, m, n, kl, ku, ab, ldab ) ) {
54-
return -8;
55-
}
56-
if( ncc != 0 ) {
57-
if( LAPACKE_cge_nancheck( matrix_layout, m, ncc, c, ldc ) ) {
58-
return -16;
52+
if( LAPACKE_get_nancheck() ) {
53+
/* Optionally check input matrices for NaNs */
54+
if( LAPACKE_cgb_nancheck( matrix_layout, m, n, kl, ku, ab, ldab ) ) {
55+
return -8;
56+
}
57+
if( ncc != 0 ) {
58+
if( LAPACKE_cge_nancheck( matrix_layout, m, ncc, c, ldc ) ) {
59+
return -16;
60+
}
5961
}
6062
}
6163
#endif

LAPACKE/src/lapacke_cgbcon.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,14 @@ lapack_int LAPACKE_cgbcon( int matrix_layout, char norm, lapack_int n,
4646
return -1;
4747
}
4848
#ifndef LAPACK_DISABLE_NAN_CHECK
49-
/* Optionally check input matrices for NaNs */
50-
if( LAPACKE_cgb_nancheck( matrix_layout, n, n, kl, kl+ku, ab, ldab ) ) {
51-
return -6;
52-
}
53-
if( LAPACKE_s_nancheck( 1, &anorm, 1 ) ) {
54-
return -9;
49+
if( LAPACKE_get_nancheck() ) {
50+
/* Optionally check input matrices for NaNs */
51+
if( LAPACKE_cgb_nancheck( matrix_layout, n, n, kl, kl+ku, ab, ldab ) ) {
52+
return -6;
53+
}
54+
if( LAPACKE_s_nancheck( 1, &anorm, 1 ) ) {
55+
return -9;
56+
}
5557
}
5658
#endif
5759
/* Allocate memory for working array(s) */

LAPACKE/src/lapacke_cgbequ.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,11 @@ lapack_int LAPACKE_cgbequ( int matrix_layout, lapack_int m, lapack_int n,
4444
return -1;
4545
}
4646
#ifndef LAPACK_DISABLE_NAN_CHECK
47-
/* Optionally check input matrices for NaNs */
48-
if( LAPACKE_cgb_nancheck( matrix_layout, m, n, kl, ku, ab, ldab ) ) {
49-
return -6;
47+
if( LAPACKE_get_nancheck() ) {
48+
/* Optionally check input matrices for NaNs */
49+
if( LAPACKE_cgb_nancheck( matrix_layout, m, n, kl, ku, ab, ldab ) ) {
50+
return -6;
51+
}
5052
}
5153
#endif
5254
return LAPACKE_cgbequ_work( matrix_layout, m, n, kl, ku, ab, ldab, r, c,

LAPACKE/src/lapacke_cgbequb.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,11 @@ lapack_int LAPACKE_cgbequb( int matrix_layout, lapack_int m, lapack_int n,
4444
return -1;
4545
}
4646
#ifndef LAPACK_DISABLE_NAN_CHECK
47-
/* Optionally check input matrices for NaNs */
48-
if( LAPACKE_cgb_nancheck( matrix_layout, m, n, kl, ku, ab, ldab ) ) {
49-
return -6;
47+
if( LAPACKE_get_nancheck() ) {
48+
/* Optionally check input matrices for NaNs */
49+
if( LAPACKE_cgb_nancheck( matrix_layout, m, n, kl, ku, ab, ldab ) ) {
50+
return -6;
51+
}
5052
}
5153
#endif
5254
return LAPACKE_cgbequb_work( matrix_layout, m, n, kl, ku, ab, ldab, r, c,

LAPACKE/src/lapacke_cgbrfs.c

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,20 @@ lapack_int LAPACKE_cgbrfs( int matrix_layout, char trans, lapack_int n,
5050
return -1;
5151
}
5252
#ifndef LAPACK_DISABLE_NAN_CHECK
53-
/* Optionally check input matrices for NaNs */
54-
if( LAPACKE_cgb_nancheck( matrix_layout, n, n, kl, ku, ab, ldab ) ) {
55-
return -7;
56-
}
57-
if( LAPACKE_cgb_nancheck( matrix_layout, n, n, kl, kl+ku, afb, ldafb ) ) {
58-
return -9;
59-
}
60-
if( LAPACKE_cge_nancheck( matrix_layout, n, nrhs, b, ldb ) ) {
61-
return -12;
62-
}
63-
if( LAPACKE_cge_nancheck( matrix_layout, n, nrhs, x, ldx ) ) {
64-
return -14;
53+
if( LAPACKE_get_nancheck() ) {
54+
/* Optionally check input matrices for NaNs */
55+
if( LAPACKE_cgb_nancheck( matrix_layout, n, n, kl, ku, ab, ldab ) ) {
56+
return -7;
57+
}
58+
if( LAPACKE_cgb_nancheck( matrix_layout, n, n, kl, kl+ku, afb, ldafb ) ) {
59+
return -9;
60+
}
61+
if( LAPACKE_cge_nancheck( matrix_layout, n, nrhs, b, ldb ) ) {
62+
return -12;
63+
}
64+
if( LAPACKE_cge_nancheck( matrix_layout, n, nrhs, x, ldx ) ) {
65+
return -14;
66+
}
6567
}
6668
#endif
6769
/* Allocate memory for working array(s) */

0 commit comments

Comments
 (0)