Skip to content

Commit 92411df

Browse files
authored
Merge pull request #3817 from martin-frbg/lapack738742
Add NaN check functions for trapezoidal matrices to LAPACKE (Reference-LAPACK PR 738+742)
2 parents 35dac56 + 90d7451 commit 92411df

24 files changed

+1421
-400
lines changed

cmake/lapacke.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2481,6 +2481,8 @@ set(Utils_SRC
24812481
lapacke_ctp_nancheck.c lapacke_dtr_trans.c lapacke_str_trans.c lapacke_ztp_trans.c
24822482
lapacke_ctp_trans.c lapacke_lsame.c lapacke_xerbla.c lapacke_ztr_nancheck.c
24832483
lapacke_ctr_nancheck.c lapacke_make_complex_double.c lapacke_z_nancheck.c lapacke_ztr_trans.c
2484+
lapacke_ctz_nancheck.c lapacke_ctz_trans.c lapacke_dtz_nancheck.c lapacke_dtz_trans.c
2485+
lapacke_stz_nancheck.c lapacke_stz_trans.c lapacke_ztz_nancheck.c lapacke_ztz_trans.c
24842486
)
24852487

24862488
set(LAPACKE_REL_SRC "")

lapack-netlib/LAPACKE/include/lapacke_utils.h

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ void LAPACKE_xerbla( const char *name, lapack_int info );
6868
/* Compare two chars (case-insensitive) */
6969
lapack_logical LAPACKE_lsame( char ca, char cb )
7070
#if defined __GNUC__
71-
__attribute__((const))
71+
__attribute__((const))
7272
#endif
7373
;
7474

@@ -128,6 +128,10 @@ void LAPACKE_ctp_trans( int matrix_layout, char uplo, char diag,
128128
void LAPACKE_ctr_trans( int matrix_layout, char uplo, char diag, lapack_int n,
129129
const lapack_complex_float *in, lapack_int ldin,
130130
lapack_complex_float *out, lapack_int ldout );
131+
void LAPACKE_ctz_trans( int matrix_layout, char direct, char uplo,
132+
char diag, lapack_int m, lapack_int n,
133+
const lapack_complex_float *in, lapack_int ldin,
134+
lapack_complex_float *out, lapack_int ldout );
131135

132136
void LAPACKE_dgb_trans( int matrix_layout, lapack_int m, lapack_int n,
133137
lapack_int kl, lapack_int ku,
@@ -178,6 +182,10 @@ void LAPACKE_dtp_trans( int matrix_layout, char uplo, char diag,
178182
void LAPACKE_dtr_trans( int matrix_layout, char uplo, char diag, lapack_int n,
179183
const double *in, lapack_int ldin,
180184
double *out, lapack_int ldout );
185+
void LAPACKE_dtz_trans( int matrix_layout, char direct, char uplo,
186+
char diag, lapack_int m, lapack_int n,
187+
const double *in, lapack_int ldin,
188+
double *out, lapack_int ldout );
181189

182190
void LAPACKE_sgb_trans( int matrix_layout, lapack_int m, lapack_int n,
183191
lapack_int kl, lapack_int ku,
@@ -228,6 +236,10 @@ void LAPACKE_stp_trans( int matrix_layout, char uplo, char diag,
228236
void LAPACKE_str_trans( int matrix_layout, char uplo, char diag, lapack_int n,
229237
const float *in, lapack_int ldin,
230238
float *out, lapack_int ldout );
239+
void LAPACKE_stz_trans( int matrix_layout, char direct, char uplo,
240+
char diag, lapack_int m, lapack_int n,
241+
const float *in, lapack_int ldin,
242+
float *out, lapack_int ldout );
231243

232244
void LAPACKE_zgb_trans( int matrix_layout, lapack_int m, lapack_int n,
233245
lapack_int kl, lapack_int ku,
@@ -284,6 +296,10 @@ void LAPACKE_ztp_trans( int matrix_layout, char uplo, char diag,
284296
void LAPACKE_ztr_trans( int matrix_layout, char uplo, char diag, lapack_int n,
285297
const lapack_complex_double *in, lapack_int ldin,
286298
lapack_complex_double *out, lapack_int ldout );
299+
void LAPACKE_ztz_trans( int matrix_layout, char direct, char uplo,
300+
char diag, lapack_int m, lapack_int n,
301+
const lapack_complex_double *in, lapack_int ldin,
302+
lapack_complex_double *out, lapack_int ldout );
287303

288304
/* NaN checkers */
289305
#define LAPACK_SISNAN( x ) ( x != x )
@@ -376,6 +392,10 @@ lapack_logical LAPACKE_ctr_nancheck( int matrix_layout, char uplo, char diag,
376392
lapack_int n,
377393
const lapack_complex_float *a,
378394
lapack_int lda );
395+
lapack_logical LAPACKE_ctz_nancheck( int matrix_layout, char direct, char uplo,
396+
char diag, lapack_int m, lapack_int n,
397+
const lapack_complex_float *a,
398+
lapack_int lda );
379399

380400
lapack_logical LAPACKE_dgb_nancheck( int matrix_layout, lapack_int m,
381401
lapack_int n, lapack_int kl,
@@ -440,6 +460,9 @@ lapack_logical LAPACKE_dtr_nancheck( int matrix_layout, char uplo, char diag,
440460
lapack_int n,
441461
const double *a,
442462
lapack_int lda );
463+
lapack_logical LAPACKE_dtz_nancheck( int matrix_layout, char direct, char uplo,
464+
char diag, lapack_int m, lapack_int n,
465+
const double *a, lapack_int lda );
443466

444467
lapack_logical LAPACKE_sgb_nancheck( int matrix_layout, lapack_int m,
445468
lapack_int n, lapack_int kl,
@@ -504,6 +527,9 @@ lapack_logical LAPACKE_str_nancheck( int matrix_layout, char uplo, char diag,
504527
lapack_int n,
505528
const float *a,
506529
lapack_int lda );
530+
lapack_logical LAPACKE_stz_nancheck( int matrix_layout, char direct, char uplo,
531+
char diag, lapack_int m, lapack_int n,
532+
const float *a, lapack_int lda );
507533

508534
lapack_logical LAPACKE_zgb_nancheck( int matrix_layout, lapack_int m,
509535
lapack_int n, lapack_int kl,
@@ -574,6 +600,10 @@ lapack_logical LAPACKE_ztr_nancheck( int matrix_layout, char uplo, char diag,
574600
lapack_int n,
575601
const lapack_complex_double *a,
576602
lapack_int lda );
603+
lapack_logical LAPACKE_ztz_nancheck( int matrix_layout, char direct, char uplo,
604+
char diag, lapack_int m, lapack_int n,
605+
const lapack_complex_double *a,
606+
lapack_int lda );
577607

578608
#ifdef __cplusplus
579609
}

lapack-netlib/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
}

lapack-netlib/LAPACKE/src/lapacke_clarfb.c

Lines changed: 19 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -42,67 +42,37 @@ lapack_int LAPACKE_clarfb( int matrix_layout, char side, char trans, char direct
4242
lapack_int info = 0;
4343
lapack_int ldwork;
4444
lapack_complex_float* work = NULL;
45-
lapack_int ncols_v, nrows_v;
45+
lapack_int nrows_v, ncols_v;
46+
lapack_logical left, col, forward;
47+
char uplo;
4648
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
4749
LAPACKE_xerbla( "LAPACKE_clarfb", -1 );
4850
return -1;
4951
}
5052
#ifndef LAPACK_DISABLE_NAN_CHECK
5153
if( LAPACKE_get_nancheck() ) {
5254
/* Optionally check input matrices for NaNs */
53-
lapack_int lrv, lcv; /* row, column stride */
54-
if( matrix_layout == LAPACK_COL_MAJOR ) {
55-
lrv = 1;
56-
lcv = ldv;
57-
} else {
58-
lrv = ldv;
59-
lcv = 1;
60-
}
61-
ncols_v = LAPACKE_lsame( storev, 'c' ) ? k :
62-
( ( LAPACKE_lsame( storev, 'r' ) && LAPACKE_lsame( side, 'l' ) ) ? m :
63-
( ( LAPACKE_lsame( storev, 'r' ) && LAPACKE_lsame( side, 'r' ) ) ? n : 1) );
55+
left = LAPACKE_lsame( side, 'l' );
56+
col = LAPACKE_lsame( storev, 'c' );
57+
forward = LAPACKE_lsame( direct, 'f' );
6458

65-
nrows_v = ( LAPACKE_lsame( storev, 'c' ) && LAPACKE_lsame( side, 'l' ) ) ? m :
66-
( ( LAPACKE_lsame( storev, 'c' ) && LAPACKE_lsame( side, 'r' ) ) ? n :
67-
( LAPACKE_lsame( storev, 'r' ) ? k : 1) );
68-
if( LAPACKE_cge_nancheck( matrix_layout, m, n, c, ldc ) ) {
69-
return -13;
59+
nrows_v = ( col && left ) ? m : ( ( col && !left ) ? n : ( !col ? k : 1) );
60+
ncols_v = ( !col && left ) ? m : ( ( !col && !left ) ? n : ( col ? k : 1 ) );
61+
uplo = ( ( left && col ) || !( left || col ) ) ? 'l' : 'u';
62+
63+
if( !forward && ( col && k > nrows_v ) || ( !col && k > ncols_v )) {
64+
LAPACKE_xerbla( "LAPACKE_clarfb", -8 );
65+
return -8;
66+
}
67+
if( LAPACKE_ctz_nancheck( matrix_layout, direct, uplo, 'u',
68+
nrows_v, ncols_v, v, ldv ) ) {
69+
return -9;
7070
}
7171
if( LAPACKE_cge_nancheck( matrix_layout, k, k, t, ldt ) ) {
7272
return -11;
7373
}
74-
if( LAPACKE_lsame( storev, 'c' ) && LAPACKE_lsame( direct, 'f' ) ) {
75-
if( LAPACKE_ctr_nancheck( matrix_layout, 'l', 'u', k, v, ldv ) )
76-
return -9;
77-
if( LAPACKE_cge_nancheck( matrix_layout, nrows_v-k, ncols_v,
78-
&v[k*lrv], ldv ) )
79-
return -9;
80-
} else if( LAPACKE_lsame( storev, 'c' ) && LAPACKE_lsame( direct, 'b' ) ) {
81-
if( k > nrows_v ) {
82-
LAPACKE_xerbla( "LAPACKE_clarfb", -8 );
83-
return -8;
84-
}
85-
if( LAPACKE_ctr_nancheck( matrix_layout, 'u', 'u', k,
86-
&v[(nrows_v-k)*lrv], ldv ) )
87-
return -9;
88-
if( LAPACKE_cge_nancheck( matrix_layout, nrows_v-k, ncols_v, v, ldv ) )
89-
return -9;
90-
} else if( LAPACKE_lsame( storev, 'r' ) && LAPACKE_lsame( direct, 'f' ) ) {
91-
if( LAPACKE_ctr_nancheck( matrix_layout, 'u', 'u', k, v, ldv ) )
92-
return -9;
93-
if( LAPACKE_cge_nancheck( matrix_layout, nrows_v, ncols_v-k,
94-
&v[k*lrv], ldv ) )
95-
return -9;
96-
} else if( LAPACKE_lsame( storev, 'r' ) && LAPACKE_lsame( direct, 'b' ) ) {
97-
if( k > ncols_v ) {
98-
LAPACKE_xerbla( "LAPACKE_clarfb", -8 );
99-
return -8;
100-
}
101-
if( LAPACKE_ctr_nancheck( matrix_layout, 'l', 'u', k,
102-
&v[(ncols_v-k)*lcv], ldv ) )
103-
return -9;
104-
if( LAPACKE_cge_nancheck( matrix_layout, nrows_v, ncols_v-k, v, ldv ) )
105-
return -9;
74+
if( LAPACKE_cge_nancheck( matrix_layout, m, n, c, ldc ) ) {
75+
return -13;
10676
}
10777
}
10878
#endif

lapack-netlib/LAPACKE/src/lapacke_clarfb_work.c

Lines changed: 17 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ lapack_int LAPACKE_clarfb_work( int matrix_layout, char side, char trans,
4242
{
4343
lapack_int info = 0;
4444
lapack_int nrows_v, ncols_v;
45+
lapack_logical left, col, forward;
46+
char uplo;
4547
lapack_int ldc_t, ldt_t, ldv_t;
4648
lapack_complex_float *v_t = NULL, *t_t = NULL, *c_t = NULL;
4749
if( matrix_layout == LAPACK_COL_MAJOR ) {
@@ -52,16 +54,14 @@ lapack_int LAPACKE_clarfb_work( int matrix_layout, char side, char trans,
5254
info = info - 1;
5355
}
5456
} else if( matrix_layout == LAPACK_ROW_MAJOR ) {
55-
nrows_v = ( LAPACKE_lsame( storev, 'c' ) &&
56-
LAPACKE_lsame( side, 'l' ) ) ? m :
57-
( ( LAPACKE_lsame( storev, 'c' ) &&
58-
LAPACKE_lsame( side, 'r' ) ) ? n :
59-
( LAPACKE_lsame( storev, 'r' ) ? k : 1) );
60-
ncols_v = LAPACKE_lsame( storev, 'c' ) ? k :
61-
( ( LAPACKE_lsame( storev, 'r' ) &&
62-
LAPACKE_lsame( side, 'l' ) ) ? m :
63-
( ( LAPACKE_lsame( storev, 'r' ) &&
64-
LAPACKE_lsame( side, 'r' ) ) ? n : 1) );
57+
left = LAPACKE_lsame( side, 'l' );
58+
col = LAPACKE_lsame( storev, 'c' );
59+
forward = LAPACKE_lsame( direct, 'f' );
60+
61+
nrows_v = ( col && left ) ? m : ( ( col && !left ) ? n : ( !col ? k : 1) );
62+
ncols_v = ( !col && left ) ? m : ( ( !col && !left ) ? n : ( col ? k : 1 ) );
63+
uplo = ( ( left && col ) || !( left || col ) ) ? 'l' : 'u';
64+
6565
ldc_t = MAX(1,m);
6666
ldt_t = MAX(1,k);
6767
ldv_t = MAX(1,nrows_v);
@@ -81,6 +81,11 @@ lapack_int LAPACKE_clarfb_work( int matrix_layout, char side, char trans,
8181
LAPACKE_xerbla( "LAPACKE_clarfb_work", info );
8282
return info;
8383
}
84+
if( !forward && ( col && k > nrows_v ) || ( !col && k > ncols_v )) {
85+
info = -8;
86+
LAPACKE_xerbla( "LAPACKE_clarfb_work", info );
87+
return info;
88+
}
8489
/* Allocate memory for temporary array(s) */
8590
v_t = (lapack_complex_float*)
8691
LAPACKE_malloc( sizeof(lapack_complex_float) *
@@ -102,36 +107,8 @@ lapack_int LAPACKE_clarfb_work( int matrix_layout, char side, char trans,
102107
goto exit_level_2;
103108
}
104109
/* Transpose input matrices */
105-
if( LAPACKE_lsame( storev, 'c' ) && LAPACKE_lsame( direct, 'f' ) ) {
106-
LAPACKE_ctr_trans( matrix_layout, 'l', 'u', k, v, ldv, v_t, ldv_t );
107-
LAPACKE_cge_trans( matrix_layout, nrows_v-k, ncols_v, &v[k*ldv], ldv,
108-
&v_t[k], ldv_t );
109-
} else if( LAPACKE_lsame( storev, 'c' ) &&
110-
LAPACKE_lsame( direct, 'b' ) ) {
111-
if( k > nrows_v ) {
112-
LAPACKE_xerbla( "LAPACKE_clarfb_work", -8 );
113-
return -8;
114-
}
115-
LAPACKE_ctr_trans( matrix_layout, 'u', 'u', k, &v[(nrows_v-k)*ldv],
116-
ldv, &v_t[nrows_v-k], ldv_t );
117-
LAPACKE_cge_trans( matrix_layout, nrows_v-k, ncols_v, v, ldv, v_t,
118-
ldv_t );
119-
} else if( LAPACKE_lsame( storev, 'r' ) &&
120-
LAPACKE_lsame( direct, 'f' ) ) {
121-
LAPACKE_ctr_trans( matrix_layout, 'u', 'u', k, v, ldv, v_t, ldv_t );
122-
LAPACKE_cge_trans( matrix_layout, nrows_v, ncols_v-k, &v[k], ldv,
123-
&v_t[k*ldv_t], ldv_t );
124-
} else if( LAPACKE_lsame( storev, 'r' ) &&
125-
LAPACKE_lsame( direct, 'b' ) ) {
126-
if( k > ncols_v ) {
127-
LAPACKE_xerbla( "LAPACKE_clarfb_work", -8 );
128-
return -8;
129-
}
130-
LAPACKE_ctr_trans( matrix_layout, 'l', 'u', k, &v[ncols_v-k], ldv,
131-
&v_t[(ncols_v-k)*ldv_t], ldv_t );
132-
LAPACKE_cge_trans( matrix_layout, nrows_v, ncols_v-k, v, ldv, v_t,
133-
ldv_t );
134-
}
110+
LAPACKE_ctz_trans( matrix_layout, direct, uplo, 'u', nrows_v, ncols_v,
111+
v, ldv, v_t, ldv_t );
135112
LAPACKE_cge_trans( matrix_layout, k, k, t, ldt, t_t, ldt_t );
136113
LAPACKE_cge_trans( matrix_layout, m, n, c, ldc, c_t, ldc_t );
137114
/* Call LAPACK function and adjust info */

lapack-netlib/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
}

lapack-netlib/LAPACKE/src/lapacke_dlarfb.c

Lines changed: 19 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -41,67 +41,37 @@ lapack_int LAPACKE_dlarfb( int matrix_layout, char side, char trans, char direct
4141
lapack_int info = 0;
4242
lapack_int ldwork;
4343
double* work = NULL;
44-
lapack_int ncols_v, nrows_v;
44+
lapack_int nrows_v, ncols_v;
45+
lapack_logical left, col, forward;
46+
char uplo;
4547
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
4648
LAPACKE_xerbla( "LAPACKE_dlarfb", -1 );
4749
return -1;
4850
}
4951
#ifndef LAPACK_DISABLE_NAN_CHECK
5052
if( LAPACKE_get_nancheck() ) {
5153
/* Optionally check input matrices for NaNs */
52-
lapack_int lrv, lcv; /* row, column stride */
53-
if( matrix_layout == LAPACK_COL_MAJOR ) {
54-
lrv = 1;
55-
lcv = ldv;
56-
} else {
57-
lrv = ldv;
58-
lcv = 1;
59-
}
60-
ncols_v = LAPACKE_lsame( storev, 'c' ) ? k :
61-
( ( LAPACKE_lsame( storev, 'r' ) && LAPACKE_lsame( side, 'l' ) ) ? m :
62-
( ( LAPACKE_lsame( storev, 'r' ) && LAPACKE_lsame( side, 'r' ) ) ? n : 1) );
54+
left = LAPACKE_lsame( side, 'l' );
55+
col = LAPACKE_lsame( storev, 'c' );
56+
forward = LAPACKE_lsame( direct, 'f' );
6357

64-
nrows_v = ( LAPACKE_lsame( storev, 'c' ) && LAPACKE_lsame( side, 'l' ) ) ? m :
65-
( ( LAPACKE_lsame( storev, 'c' ) && LAPACKE_lsame( side, 'r' ) ) ? n :
66-
( LAPACKE_lsame( storev, 'r' ) ? k : 1) );
67-
if( LAPACKE_dge_nancheck( matrix_layout, m, n, c, ldc ) ) {
68-
return -13;
58+
nrows_v = ( col && left ) ? m : ( ( col && !left ) ? n : ( !col ? k : 1) );
59+
ncols_v = ( !col && left ) ? m : ( ( !col && !left ) ? n : ( col ? k : 1 ) );
60+
uplo = ( ( left && col ) || !( left || col ) ) ? 'l' : 'u';
61+
62+
if( !forward && ( col && k > nrows_v ) || ( !col && k > ncols_v )) {
63+
LAPACKE_xerbla( "LAPACKE_dlarfb", -8 );
64+
return -8;
65+
}
66+
if( LAPACKE_dtz_nancheck( matrix_layout, direct, uplo, 'u',
67+
nrows_v, ncols_v, v, ldv ) ) {
68+
return -9;
6969
}
7070
if( LAPACKE_dge_nancheck( matrix_layout, k, k, t, ldt ) ) {
7171
return -11;
7272
}
73-
if( LAPACKE_lsame( storev, 'c' ) && LAPACKE_lsame( direct, 'f' ) ) {
74-
if( LAPACKE_dtr_nancheck( matrix_layout, 'l', 'u', k, v, ldv ) )
75-
return -9;
76-
if( LAPACKE_dge_nancheck( matrix_layout, nrows_v-k, ncols_v,
77-
&v[k*lrv], ldv ) )
78-
return -9;
79-
} else if( LAPACKE_lsame( storev, 'c' ) && LAPACKE_lsame( direct, 'b' ) ) {
80-
if( k > nrows_v ) {
81-
LAPACKE_xerbla( "LAPACKE_dlarfb", -8 );
82-
return -8;
83-
}
84-
if( LAPACKE_dtr_nancheck( matrix_layout, 'u', 'u', k,
85-
&v[(nrows_v-k)*lrv], ldv ) )
86-
return -9;
87-
if( LAPACKE_dge_nancheck( matrix_layout, nrows_v-k, ncols_v, v, ldv ) )
88-
return -9;
89-
} else if( LAPACKE_lsame( storev, 'r' ) && LAPACKE_lsame( direct, 'f' ) ) {
90-
if( LAPACKE_dtr_nancheck( matrix_layout, 'u', 'u', k, v, ldv ) )
91-
return -9;
92-
if( LAPACKE_dge_nancheck( matrix_layout, nrows_v, ncols_v-k,
93-
&v[k*lrv], ldv ) )
94-
return -9;
95-
} else if( LAPACKE_lsame( storev, 'r' ) && LAPACKE_lsame( direct, 'b' ) ) {
96-
if( k > ncols_v ) {
97-
LAPACKE_xerbla( "LAPACKE_dlarfb", -8 );
98-
return -8;
99-
}
100-
if( LAPACKE_dtr_nancheck( matrix_layout, 'l', 'u', k,
101-
&v[(ncols_v-k)*lcv], ldv ) )
102-
return -9;
103-
if( LAPACKE_dge_nancheck( matrix_layout, nrows_v, ncols_v-k, v, ldv ) )
104-
return -9;
73+
if( LAPACKE_dge_nancheck( matrix_layout, m, n, c, ldc ) ) {
74+
return -13;
10575
}
10676
}
10777
#endif

0 commit comments

Comments
 (0)