diff options
author | julie <julielangou@users.noreply.github.com> | 2016-02-23 06:11:24 +0000 |
---|---|---|
committer | julie <julielangou@users.noreply.github.com> | 2016-02-23 06:11:24 +0000 |
commit | d3daaf8ace52c6142af558e34a8406cb7eb4c08f (patch) | |
tree | fcf0236aa1ae5db98b0eb02ab7f1b67ab7ae4719 /LAPACKE | |
parent | 261790e5af4c1c2e22c7ca40ff4d7ba86457cb9e (diff) |
APPLYING INTEL PATCHES sent to Julie on Feb 19th 2016 by Dima from INTEL (dmitry.g.baksheev@intel.com)
[PATCH 41/42] Fix lapacke_?tpmqrt - avoid nancheck of unset data
Diffstat (limited to 'LAPACKE')
-rw-r--r-- | LAPACKE/src/lapacke_ctpmqrt.c | 14 | ||||
-rw-r--r-- | LAPACKE/src/lapacke_dtpmqrt.c | 14 | ||||
-rw-r--r-- | LAPACKE/src/lapacke_stpmqrt.c | 14 | ||||
-rw-r--r-- | LAPACKE/src/lapacke_ztpmqrt.c | 14 |
4 files changed, 44 insertions, 12 deletions
diff --git a/LAPACKE/src/lapacke_ctpmqrt.c b/LAPACKE/src/lapacke_ctpmqrt.c index bcb92a81..c9ec1a86 100644 --- a/LAPACKE/src/lapacke_ctpmqrt.c +++ b/LAPACKE/src/lapacke_ctpmqrt.c @@ -41,6 +41,8 @@ lapack_int LAPACKE_ctpmqrt( int matrix_layout, char side, char trans, lapack_complex_float* a, lapack_int lda, lapack_complex_float* b, lapack_int ldb ) { + lapack_int ncols_a, nrows_a; + lapack_int nrows_v; lapack_int info = 0; lapack_complex_float* work = NULL; if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) { @@ -49,16 +51,22 @@ lapack_int LAPACKE_ctpmqrt( int matrix_layout, char side, char trans, } #ifndef LAPACK_DISABLE_NAN_CHECK /* Optionally check input matrices for NaNs */ - if( LAPACKE_cge_nancheck( matrix_layout, k, m, a, lda ) ) { + ncols_a = LAPACKE_lsame( side, 'L' ) ? n : + ( LAPACKE_lsame( side, 'R' ) ? k : 0 ); + nrows_a = LAPACKE_lsame( side, 'L' ) ? k : + ( LAPACKE_lsame( side, 'R' ) ? m : 0 ); + nrows_v = LAPACKE_lsame( side, 'L' ) ? m : + ( LAPACKE_lsame( side, 'R' ) ? n : 0 ); + if( LAPACKE_cge_nancheck( matrix_layout, nrows_a, ncols_a, a, lda ) ) { return -13; } if( LAPACKE_cge_nancheck( matrix_layout, m, n, b, ldb ) ) { return -15; } - if( LAPACKE_cge_nancheck( matrix_layout, ldt, nb, t, ldt ) ) { + if( LAPACKE_cge_nancheck( matrix_layout, nb, k, t, ldt ) ) { return -11; } - if( LAPACKE_cge_nancheck( matrix_layout, ldv, k, v, ldv ) ) { + if( LAPACKE_cge_nancheck( matrix_layout, nrows_v, k, v, ldv ) ) { return -9; } #endif diff --git a/LAPACKE/src/lapacke_dtpmqrt.c b/LAPACKE/src/lapacke_dtpmqrt.c index d11f0828..dbb559e6 100644 --- a/LAPACKE/src/lapacke_dtpmqrt.c +++ b/LAPACKE/src/lapacke_dtpmqrt.c @@ -40,6 +40,8 @@ lapack_int LAPACKE_dtpmqrt( int matrix_layout, char side, char trans, double* a, lapack_int lda, double* b, lapack_int ldb ) { + lapack_int ncols_a, nrows_a; + lapack_int nrows_v; lapack_int info = 0; double* work = NULL; if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) { @@ -48,16 +50,22 @@ lapack_int LAPACKE_dtpmqrt( int matrix_layout, char side, char trans, } #ifndef LAPACK_DISABLE_NAN_CHECK /* Optionally check input matrices for NaNs */ - if( LAPACKE_dge_nancheck( matrix_layout, k, m, a, lda ) ) { + ncols_a = LAPACKE_lsame( side, 'L' ) ? n : + ( LAPACKE_lsame( side, 'R' ) ? k : 0 ); + nrows_a = LAPACKE_lsame( side, 'L' ) ? k : + ( LAPACKE_lsame( side, 'R' ) ? m : 0 ); + nrows_v = LAPACKE_lsame( side, 'L' ) ? m : + ( LAPACKE_lsame( side, 'R' ) ? n : 0 ); + if( LAPACKE_dge_nancheck( matrix_layout, nrows_a, ncols_a, a, lda ) ) { return -13; } if( LAPACKE_dge_nancheck( matrix_layout, m, n, b, ldb ) ) { return -15; } - if( LAPACKE_dge_nancheck( matrix_layout, ldt, nb, t, ldt ) ) { + if( LAPACKE_dge_nancheck( matrix_layout, nb, k, t, ldt ) ) { return -11; } - if( LAPACKE_dge_nancheck( matrix_layout, ldv, k, v, ldv ) ) { + if( LAPACKE_dge_nancheck( matrix_layout, nrows_v, k, v, ldv ) ) { return -9; } #endif diff --git a/LAPACKE/src/lapacke_stpmqrt.c b/LAPACKE/src/lapacke_stpmqrt.c index 43c266a9..98c6848e 100644 --- a/LAPACKE/src/lapacke_stpmqrt.c +++ b/LAPACKE/src/lapacke_stpmqrt.c @@ -39,6 +39,8 @@ lapack_int LAPACKE_stpmqrt( int matrix_layout, char side, char trans, lapack_int ldv, const float* t, lapack_int ldt, float* a, lapack_int lda, float* b, lapack_int ldb ) { + lapack_int ncols_a, nrows_a; + lapack_int nrows_v; lapack_int info = 0; float* work = NULL; if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) { @@ -47,16 +49,22 @@ lapack_int LAPACKE_stpmqrt( int matrix_layout, char side, char trans, } #ifndef LAPACK_DISABLE_NAN_CHECK /* Optionally check input matrices for NaNs */ - if( LAPACKE_sge_nancheck( matrix_layout, k, m, a, lda ) ) { + ncols_a = LAPACKE_lsame( side, 'L' ) ? n : + ( LAPACKE_lsame( side, 'R' ) ? k : 0 ); + nrows_a = LAPACKE_lsame( side, 'L' ) ? k : + ( LAPACKE_lsame( side, 'R' ) ? m : 0 ); + nrows_v = LAPACKE_lsame( side, 'L' ) ? m : + ( LAPACKE_lsame( side, 'R' ) ? n : 0 ); + if( LAPACKE_sge_nancheck( matrix_layout, nrows_a, ncols_a, a, lda ) ) { return -13; } if( LAPACKE_sge_nancheck( matrix_layout, m, n, b, ldb ) ) { return -15; } - if( LAPACKE_sge_nancheck( matrix_layout, ldt, nb, t, ldt ) ) { + if( LAPACKE_sge_nancheck( matrix_layout, nb, k, t, ldt ) ) { return -11; } - if( LAPACKE_sge_nancheck( matrix_layout, ldv, k, v, ldv ) ) { + if( LAPACKE_sge_nancheck( matrix_layout, nrows_v, k, v, ldv ) ) { return -9; } #endif diff --git a/LAPACKE/src/lapacke_ztpmqrt.c b/LAPACKE/src/lapacke_ztpmqrt.c index a591363c..bef62053 100644 --- a/LAPACKE/src/lapacke_ztpmqrt.c +++ b/LAPACKE/src/lapacke_ztpmqrt.c @@ -41,6 +41,8 @@ lapack_int LAPACKE_ztpmqrt( int matrix_layout, char side, char trans, lapack_complex_double* a, lapack_int lda, lapack_complex_double* b, lapack_int ldb ) { + lapack_int ncols_a, nrows_a; + lapack_int nrows_v; lapack_int info = 0; lapack_complex_double* work = NULL; if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) { @@ -49,16 +51,22 @@ lapack_int LAPACKE_ztpmqrt( int matrix_layout, char side, char trans, } #ifndef LAPACK_DISABLE_NAN_CHECK /* Optionally check input matrices for NaNs */ - if( LAPACKE_zge_nancheck( matrix_layout, k, m, a, lda ) ) { + ncols_a = LAPACKE_lsame( side, 'L' ) ? n : + ( LAPACKE_lsame( side, 'R' ) ? k : 0 ); + nrows_a = LAPACKE_lsame( side, 'L' ) ? k : + ( LAPACKE_lsame( side, 'R' ) ? m : 0 ); + nrows_v = LAPACKE_lsame( side, 'L' ) ? m : + ( LAPACKE_lsame( side, 'R' ) ? n : 0 ); + if( LAPACKE_zge_nancheck( matrix_layout, nrows_a, ncols_a, a, lda ) ) { return -13; } if( LAPACKE_zge_nancheck( matrix_layout, m, n, b, ldb ) ) { return -15; } - if( LAPACKE_zge_nancheck( matrix_layout, ldt, nb, t, ldt ) ) { + if( LAPACKE_zge_nancheck( matrix_layout, nb, k, t, ldt ) ) { return -11; } - if( LAPACKE_zge_nancheck( matrix_layout, ldv, k, v, ldv ) ) { + if( LAPACKE_zge_nancheck( matrix_layout, nrows_v, k, v, ldv ) ) { return -9; } #endif |