diff options
Diffstat (limited to 'LAPACKE/src/lapacke_ctprfb.c')
-rw-r--r-- | LAPACKE/src/lapacke_ctprfb.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/LAPACKE/src/lapacke_ctprfb.c b/LAPACKE/src/lapacke_ctprfb.c index a007f924..45840e1a 100644 --- a/LAPACKE/src/lapacke_ctprfb.c +++ b/LAPACKE/src/lapacke_ctprfb.c @@ -41,6 +41,7 @@ lapack_int LAPACKE_ctprfb( int matrix_layout, char side, char trans, char direct lapack_complex_float* a, lapack_int lda, lapack_complex_float* b, lapack_int ldb ) { + lapack_int ncols_v, nrows_v; lapack_int info = 0; lapack_int ldwork; lapack_int work_size; @@ -51,16 +52,28 @@ lapack_int LAPACKE_ctprfb( int matrix_layout, char side, char trans, char direct } #ifndef LAPACK_DISABLE_NAN_CHECK /* Optionally check input matrices for NaNs */ + if( LAPACKE_lsame( storev, 'C' ) ) { + ncols_v = k; + nrows_v = LAPACKE_lsame( side, 'L' ) ? m : + ( LAPACKE_lsame( side, 'R' ) ? n : 0 ); + } else if( LAPACKE_lsame( storev, 'R' ) ) { + ncols_v = LAPACKE_lsame( side, 'L' ) ? m : + ( LAPACKE_lsame( side, 'R' ) ? n : 0 ); + nrows_v = k; + } else { + ncols_v = 0; + nrows_v = 0; + } if( LAPACKE_cge_nancheck( matrix_layout, k, m, a, lda ) ) { return -14; } if( LAPACKE_cge_nancheck( matrix_layout, m, n, b, ldb ) ) { return -16; } - if( LAPACKE_cge_nancheck( matrix_layout, ldt, k, t, ldt ) ) { + if( LAPACKE_cge_nancheck( matrix_layout, k, k, t, ldt ) ) { return -12; } - if( LAPACKE_cge_nancheck( matrix_layout, ldv, k, v, ldv ) ) { + if( LAPACKE_cge_nancheck( matrix_layout, nrows_v, ncols_v, v, ldv ) ) { return -10; } #endif |