Skip to content

Commit 17f99f2

Browse files
authored
Merge pull request #738 from ACSimon33/LAPACKE_norm_routines
NaN check for trapezoidal routines.
2 parents 0b7c083 + bcfdb93 commit 17f99f2

12 files changed

+649
-43
lines changed

LAPACKE/include/lapacke_utils.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,10 @@ lapack_logical LAPACKE_ctr_nancheck( int matrix_layout, char uplo, char diag,
376376
lapack_int n,
377377
const lapack_complex_float *a,
378378
lapack_int lda );
379+
lapack_logical LAPACKE_ctz_nancheck( int matrix_layout, char direct, char uplo,
380+
char diag, lapack_int m, lapack_int n,
381+
const lapack_complex_float *a,
382+
lapack_int lda );
379383

380384
lapack_logical LAPACKE_dgb_nancheck( int matrix_layout, lapack_int m,
381385
lapack_int n, lapack_int kl,
@@ -440,6 +444,9 @@ lapack_logical LAPACKE_dtr_nancheck( int matrix_layout, char uplo, char diag,
440444
lapack_int n,
441445
const double *a,
442446
lapack_int lda );
447+
lapack_logical LAPACKE_dtz_nancheck( int matrix_layout, char direct, char uplo,
448+
char diag, lapack_int m, lapack_int n,
449+
const double *a, lapack_int lda );
443450

444451
lapack_logical LAPACKE_sgb_nancheck( int matrix_layout, lapack_int m,
445452
lapack_int n, lapack_int kl,
@@ -504,6 +511,9 @@ lapack_logical LAPACKE_str_nancheck( int matrix_layout, char uplo, char diag,
504511
lapack_int n,
505512
const float *a,
506513
lapack_int lda );
514+
lapack_logical LAPACKE_stz_nancheck( int matrix_layout, char direct, char uplo,
515+
char diag, lapack_int m, lapack_int n,
516+
const float *a, lapack_int lda );
507517

508518
lapack_logical LAPACKE_zgb_nancheck( int matrix_layout, lapack_int m,
509519
lapack_int n, lapack_int kl,
@@ -574,6 +584,10 @@ lapack_logical LAPACKE_ztr_nancheck( int matrix_layout, char uplo, char diag,
574584
lapack_int n,
575585
const lapack_complex_double *a,
576586
lapack_int lda );
587+
lapack_logical LAPACKE_ztz_nancheck( int matrix_layout, char direct, char uplo,
588+
char diag, lapack_int m, lapack_int n,
589+
const lapack_complex_double *a,
590+
lapack_int lda );
577591

578592
#ifdef __cplusplus
579593
}

LAPACKE/src/Makefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,8 @@ lapacke_clacrm.o \
356356
lapacke_clacrm_work.o \
357357
lapacke_clag2z.o \
358358
lapacke_clag2z_work.o \
359+
lapacke_clangb.o \
360+
lapacke_clangb_work.o \
359361
lapacke_clange.o \
360362
lapacke_clange_work.o \
361363
lapacke_clanhe.o \
@@ -840,6 +842,8 @@ lapacke_dlag2s.o \
840842
lapacke_dlag2s_work.o \
841843
lapacke_dlamch.o \
842844
lapacke_dlamch_work.o \
845+
lapacke_dlangb.o \
846+
lapacke_dlangb_work.o \
843847
lapacke_dlange.o \
844848
lapacke_dlange_work.o \
845849
lapacke_dlansy.o \
@@ -1412,6 +1416,8 @@ lapacke_slag2d.o \
14121416
lapacke_slag2d_work.o \
14131417
lapacke_slamch.o \
14141418
lapacke_slamch_work.o \
1419+
lapacke_slangb.o \
1420+
lapacke_slangb_work.o \
14151421
lapacke_slange.o \
14161422
lapacke_slange_work.o \
14171423
lapacke_slansy.o \
@@ -2114,6 +2120,8 @@ lapacke_zlacrm.o \
21142120
lapacke_zlacrm_work.o \
21152121
lapacke_zlag2c.o \
21162122
lapacke_zlag2c_work.o \
2123+
lapacke_zlangb.o \
2124+
lapacke_zlangb_work.o \
21172125
lapacke_zlange.o \
21182126
lapacke_zlange_work.o \
21192127
lapacke_zlanhe.o \

LAPACKE/src/lapacke_clantr.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
#include "lapacke_utils.h"
3434

3535
float LAPACKE_clantr( int matrix_layout, char norm, char uplo, char diag,
36-
lapack_int m, lapack_int n, const lapack_complex_float* a,
37-
lapack_int lda )
36+
lapack_int m, lapack_int n, const lapack_complex_float* a,
37+
lapack_int lda )
3838
{
3939
lapack_int info = 0;
4040
float res = 0.;
@@ -46,7 +46,7 @@ float LAPACKE_clantr( int matrix_layout, char norm, char uplo, char diag,
4646
#ifndef LAPACK_DISABLE_NAN_CHECK
4747
if( LAPACKE_get_nancheck() ) {
4848
/* Optionally check input matrices for NaNs */
49-
if( LAPACKE_ctr_nancheck( matrix_layout, uplo, diag, MIN(m,n), a, lda ) ) {
49+
if( LAPACKE_ctz_nancheck( matrix_layout, 'f', uplo, diag, m, n, a, lda ) ) {
5050
return -7;
5151
}
5252
}

LAPACKE/src/lapacke_dlantr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ double LAPACKE_dlantr( int matrix_layout, char norm, char uplo, char diag,
4646
#ifndef LAPACK_DISABLE_NAN_CHECK
4747
if( LAPACKE_get_nancheck() ) {
4848
/* Optionally check input matrices for NaNs */
49-
if( LAPACKE_dtr_nancheck( matrix_layout, uplo, diag, MIN(m,n), a, lda ) ) {
49+
if( LAPACKE_dtz_nancheck( matrix_layout, 'f', uplo, diag, m, n, a, lda ) ) {
5050
return -7;
5151
}
5252
}

LAPACKE/src/lapacke_slantr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ float LAPACKE_slantr( int matrix_layout, char norm, char uplo, char diag,
4646
#ifndef LAPACK_DISABLE_NAN_CHECK
4747
if( LAPACKE_get_nancheck() ) {
4848
/* Optionally check input matrices for NaNs */
49-
if( LAPACKE_str_nancheck( matrix_layout, uplo, diag, MIN(m,n), a, lda ) ) {
49+
if( LAPACKE_stz_nancheck( matrix_layout, 'f', uplo, diag, m, n, a, lda ) ) {
5050
return -7;
5151
}
5252
}

LAPACKE/src/lapacke_zlantr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ double LAPACKE_zlantr( int matrix_layout, char norm, char uplo, char diag,
4646
#ifndef LAPACK_DISABLE_NAN_CHECK
4747
if( LAPACKE_get_nancheck() ) {
4848
/* Optionally check input matrices for NaNs */
49-
if( LAPACKE_ztr_nancheck( matrix_layout, uplo, diag, MIN(m,n), a, lda ) ) {
49+
if( LAPACKE_ztz_nancheck( matrix_layout, 'f', uplo, diag, m, n, a, lda ) ) {
5050
return -7;
5151
}
5252
}

LAPACKE/utils/CMakeLists.txt

Lines changed: 43 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,45 @@
11
set(UTILS
2-
lapacke_c_nancheck.c lapacke_ctr_trans.c lapacke_make_complex_float.c lapacke_zgb_nancheck.c
3-
lapacke_cgb_nancheck.c lapacke_d_nancheck.c lapacke_s_nancheck.c lapacke_zgb_trans.c
4-
lapacke_cgb_trans.c lapacke_dgb_nancheck.c lapacke_sgb_nancheck.c lapacke_zge_nancheck.c
5-
lapacke_cge_nancheck.c lapacke_dgb_trans.c lapacke_sgb_trans.c lapacke_zge_trans.c
6-
lapacke_cge_trans.c lapacke_dge_nancheck.c lapacke_sge_nancheck.c lapacke_zgg_nancheck.c
7-
lapacke_cgg_nancheck.c lapacke_dge_trans.c lapacke_sge_trans.c lapacke_zgg_trans.c
8-
lapacke_cgg_trans.c lapacke_dgg_nancheck.c lapacke_sgg_nancheck.c lapacke_zgt_nancheck.c
9-
lapacke_cgt_nancheck.c lapacke_dgg_trans.c lapacke_sgg_trans.c lapacke_zhb_nancheck.c
10-
lapacke_chb_nancheck.c lapacke_dgt_nancheck.c lapacke_sgt_nancheck.c lapacke_zhb_trans.c
11-
lapacke_chb_trans.c lapacke_dhs_nancheck.c lapacke_shs_nancheck.c lapacke_zhe_nancheck.c
12-
lapacke_che_nancheck.c lapacke_dhs_trans.c lapacke_shs_trans.c lapacke_zhe_trans.c
13-
lapacke_che_trans.c lapacke_dpb_nancheck.c lapacke_spb_nancheck.c lapacke_zhp_nancheck.c
14-
lapacke_chp_nancheck.c lapacke_dpb_trans.c lapacke_spb_trans.c lapacke_zhp_trans.c
15-
lapacke_chp_trans.c lapacke_dpf_nancheck.c lapacke_spf_nancheck.c lapacke_zhs_nancheck.c
16-
lapacke_chs_nancheck.c lapacke_dpf_trans.c lapacke_spf_trans.c lapacke_zhs_trans.c
17-
lapacke_chs_trans.c lapacke_dpo_nancheck.c lapacke_spo_nancheck.c lapacke_zpb_nancheck.c
18-
lapacke_cpb_nancheck.c lapacke_dpo_trans.c lapacke_spo_trans.c lapacke_zpb_trans.c
19-
lapacke_cpb_trans.c lapacke_dpp_nancheck.c lapacke_spp_nancheck.c lapacke_zpf_nancheck.c
20-
lapacke_cpf_nancheck.c lapacke_dpp_trans.c lapacke_spp_trans.c lapacke_zpf_trans.c
21-
lapacke_cpf_trans.c lapacke_dpt_nancheck.c lapacke_spt_nancheck.c lapacke_zpo_nancheck.c
22-
lapacke_cpo_nancheck.c lapacke_dsb_nancheck.c lapacke_ssb_nancheck.c lapacke_zpo_trans.c
23-
lapacke_cpo_trans.c lapacke_dsb_trans.c lapacke_ssb_trans.c lapacke_zpp_nancheck.c
24-
lapacke_cpp_nancheck.c lapacke_dsp_nancheck.c lapacke_ssp_nancheck.c lapacke_zpp_trans.c
25-
lapacke_cpp_trans.c lapacke_dsp_trans.c lapacke_ssp_trans.c lapacke_zpt_nancheck.c
26-
lapacke_cpt_nancheck.c lapacke_dst_nancheck.c lapacke_sst_nancheck.c lapacke_zsp_nancheck.c
27-
lapacke_csp_nancheck.c lapacke_dsy_nancheck.c lapacke_ssy_nancheck.c lapacke_zsp_trans.c
28-
lapacke_csp_trans.c lapacke_dsy_trans.c lapacke_ssy_trans.c lapacke_zst_nancheck.c
29-
lapacke_cst_nancheck.c lapacke_dtb_nancheck.c lapacke_stb_nancheck.c lapacke_zsy_nancheck.c
30-
lapacke_csy_nancheck.c lapacke_dtb_trans.c lapacke_stb_trans.c lapacke_zsy_trans.c
31-
lapacke_csy_trans.c lapacke_dtf_nancheck.c lapacke_stf_nancheck.c lapacke_ztb_nancheck.c
32-
lapacke_ctb_nancheck.c lapacke_dtf_trans.c lapacke_stf_trans.c lapacke_ztb_trans.c
33-
lapacke_ctb_trans.c lapacke_dtp_nancheck.c lapacke_stp_nancheck.c lapacke_ztf_nancheck.c
34-
lapacke_ctf_nancheck.c lapacke_dtp_trans.c lapacke_stp_trans.c lapacke_ztf_trans.c
35-
lapacke_ctf_trans.c lapacke_dtr_nancheck.c lapacke_str_nancheck.c lapacke_ztp_nancheck.c
36-
lapacke_ctp_nancheck.c lapacke_dtr_trans.c lapacke_str_trans.c lapacke_ztp_trans.c
37-
lapacke_ctp_trans.c lapacke_lsame.c lapacke_xerbla.c lapacke_ztr_nancheck.c
38-
lapacke_ctr_nancheck.c lapacke_make_complex_double.c lapacke_z_nancheck.c lapacke_ztr_trans.c
2+
lapacke_c_nancheck.c lapacke_d_nancheck.c lapacke_s_nancheck.c lapacke_z_nancheck.c
3+
lapacke_cgb_nancheck.c lapacke_dgb_nancheck.c lapacke_sgb_nancheck.c lapacke_zgb_trans.c
4+
lapacke_cgb_trans.c lapacke_dgb_trans.c lapacke_sgb_trans.c lapacke_zgb_nancheck.c
5+
lapacke_cge_nancheck.c lapacke_dge_nancheck.c lapacke_sge_nancheck.c lapacke_zge_nancheck.c
6+
lapacke_cge_trans.c lapacke_dge_trans.c lapacke_sge_trans.c lapacke_zge_trans.c
7+
lapacke_cgg_nancheck.c lapacke_dgg_nancheck.c lapacke_sgg_nancheck.c lapacke_zgg_nancheck.c
8+
lapacke_cgg_trans.c lapacke_dgg_trans.c lapacke_sgg_trans.c lapacke_zgg_trans.c
9+
lapacke_cgt_nancheck.c lapacke_dgt_nancheck.c lapacke_sgt_nancheck.c lapacke_zgt_nancheck.c
10+
lapacke_chb_nancheck.c lapacke_dsb_nancheck.c lapacke_ssb_nancheck.c lapacke_zhb_nancheck.c
11+
lapacke_chb_trans.c lapacke_dsb_trans.c lapacke_ssb_trans.c lapacke_zhb_trans.c
12+
lapacke_che_nancheck.c lapacke_zhe_nancheck.c
13+
lapacke_che_trans.c lapacke_zhe_trans.c
14+
lapacke_chp_nancheck.c lapacke_zhp_nancheck.c
15+
lapacke_chp_trans.c lapacke_zhp_trans.c
16+
lapacke_chs_nancheck.c lapacke_dhs_nancheck.c lapacke_shs_nancheck.c lapacke_zhs_nancheck.c
17+
lapacke_chs_trans.c lapacke_dhs_trans.c lapacke_shs_trans.c lapacke_zhs_trans.c
18+
lapacke_cpb_nancheck.c lapacke_dpb_nancheck.c lapacke_spb_nancheck.c lapacke_zpb_nancheck.c
19+
lapacke_cpb_trans.c lapacke_dpb_trans.c lapacke_spb_trans.c lapacke_zpb_trans.c
20+
lapacke_cpf_nancheck.c lapacke_dpf_nancheck.c lapacke_spf_nancheck.c lapacke_zpf_nancheck.c
21+
lapacke_cpf_trans.c lapacke_dpf_trans.c lapacke_spf_trans.c lapacke_zpf_trans.c
22+
lapacke_cpo_nancheck.c lapacke_dpo_nancheck.c lapacke_spo_nancheck.c lapacke_zpo_nancheck.c
23+
lapacke_cpo_trans.c lapacke_dpo_trans.c lapacke_spo_trans.c lapacke_zpo_trans.c
24+
lapacke_cpp_nancheck.c lapacke_dpp_nancheck.c lapacke_spp_nancheck.c lapacke_zpp_nancheck.c
25+
lapacke_cpp_trans.c lapacke_dpp_trans.c lapacke_spp_trans.c lapacke_zpp_trans.c
26+
lapacke_cpt_nancheck.c lapacke_dpt_nancheck.c lapacke_spt_nancheck.c lapacke_zpt_nancheck.c
27+
lapacke_csp_nancheck.c lapacke_dsp_nancheck.c lapacke_ssp_nancheck.c lapacke_zsp_nancheck.c
28+
lapacke_csp_trans.c lapacke_dsp_trans.c lapacke_ssp_trans.c lapacke_zsp_trans.c
29+
lapacke_cst_nancheck.c lapacke_dst_nancheck.c lapacke_sst_nancheck.c lapacke_zst_nancheck.c
30+
lapacke_csy_nancheck.c lapacke_dsy_nancheck.c lapacke_ssy_nancheck.c lapacke_zsy_nancheck.c
31+
lapacke_csy_trans.c lapacke_dsy_trans.c lapacke_ssy_trans.c lapacke_zsy_trans.c
32+
lapacke_ctb_nancheck.c lapacke_dtb_nancheck.c lapacke_stb_nancheck.c lapacke_ztb_nancheck.c
33+
lapacke_ctb_trans.c lapacke_dtb_trans.c lapacke_stb_trans.c lapacke_ztb_trans.c
34+
lapacke_ctf_nancheck.c lapacke_dtf_nancheck.c lapacke_stf_nancheck.c lapacke_ztf_nancheck.c
35+
lapacke_ctf_trans.c lapacke_dtf_trans.c lapacke_stf_trans.c lapacke_ztf_trans.c
36+
lapacke_ctp_nancheck.c lapacke_dtp_nancheck.c lapacke_stp_nancheck.c lapacke_ztp_nancheck.c
37+
lapacke_ctp_trans.c lapacke_dtp_trans.c lapacke_stp_trans.c lapacke_ztp_trans.c
38+
lapacke_ctr_nancheck.c lapacke_dtr_nancheck.c lapacke_str_nancheck.c lapacke_ztr_nancheck.c
39+
lapacke_ctr_trans.c lapacke_dtr_trans.c lapacke_str_trans.c lapacke_ztr_trans.c
40+
lapacke_ctz_nancheck.c lapacke_dtz_nancheck.c lapacke_stz_nancheck.c lapacke_ztz_nancheck.c
41+
42+
lapacke_make_complex_float.c lapacke_make_complex_double.c
43+
lapacke_lsame.c
44+
lapacke_xerbla.c
3945
)

LAPACKE/utils/Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ OBJ = lapacke_cgb_nancheck.o \
7676
lapacke_ctp_trans.o \
7777
lapacke_ctr_nancheck.o \
7878
lapacke_ctr_trans.o \
79+
lapacke_ctz_nancheck.o \
7980
lapacke_dgb_nancheck.o \
8081
lapacke_dgb_trans.o \
8182
lapacke_dge_nancheck.o \
@@ -110,6 +111,7 @@ OBJ = lapacke_cgb_nancheck.o \
110111
lapacke_dtp_trans.o \
111112
lapacke_dtr_nancheck.o \
112113
lapacke_dtr_trans.o \
114+
lapacke_dtz_nancheck.o \
113115
lapacke_lsame.o \
114116
lapacke_sgb_nancheck.o \
115117
lapacke_sgb_trans.o \
@@ -145,6 +147,7 @@ OBJ = lapacke_cgb_nancheck.o \
145147
lapacke_stp_trans.o \
146148
lapacke_str_nancheck.o \
147149
lapacke_str_trans.o \
150+
lapacke_stz_nancheck.o \
148151
lapacke_xerbla.o \
149152
lapacke_zgb_nancheck.o \
150153
lapacke_zgb_trans.o \
@@ -184,6 +187,7 @@ OBJ = lapacke_cgb_nancheck.o \
184187
lapacke_ztp_trans.o \
185188
lapacke_ztr_nancheck.o \
186189
lapacke_ztr_trans.o \
190+
lapacke_ztz_nancheck.o \
187191
lapacke_make_complex_float.o \
188192
lapacke_make_complex_double.o
189193

0 commit comments

Comments
 (0)