From d3b48e2af1c55d54c4452893b9a9dbc633b19c38 Mon Sep 17 00:00:00 2001 From: julie Date: Tue, 23 Feb 2016 06:03:59 +0000 Subject: [PATCH] APPLYING INTEL PATCHES sent to Julie on Feb 19th 2016 by Dima from INTEL (dmitry.g.baksheev@intel.com) [PATCH 37/42] Fix lapacke_?gemqrt - avoid nancheck of unset data --- LAPACKE/src/lapacke_cgemqrt.c | 7 +++++-- LAPACKE/src/lapacke_dgemqrt.c | 7 +++++-- LAPACKE/src/lapacke_sgemqrt.c | 7 +++++-- LAPACKE/src/lapacke_zgemqrt.c | 7 +++++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/LAPACKE/src/lapacke_cgemqrt.c b/LAPACKE/src/lapacke_cgemqrt.c index 5f539f3..4dde4c9 100644 --- a/LAPACKE/src/lapacke_cgemqrt.c +++ b/LAPACKE/src/lapacke_cgemqrt.c @@ -40,6 +40,7 @@ lapack_int LAPACKE_cgemqrt( int matrix_layout, char side, char trans, lapack_int ldt, lapack_complex_float* c, lapack_int ldc ) { + lapack_int nrows_v; lapack_int info = 0; lapack_complex_float* work = NULL; if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) { @@ -48,13 +49,15 @@ lapack_int LAPACKE_cgemqrt( int matrix_layout, char side, char trans, } #ifndef LAPACK_DISABLE_NAN_CHECK /* Optionally check input matrices for NaNs */ + nrows_v = LAPACKE_lsame( side, 'L' ) ? m : + ( LAPACKE_lsame( side, 'R' ) ? n : 0 ); if( LAPACKE_cge_nancheck( matrix_layout, m, n, c, ldc ) ) { return -12; } - if( LAPACKE_cge_nancheck( matrix_layout, ldt, nb, t, ldt ) ) { + if( LAPACKE_cge_nancheck( matrix_layout, nb, k, t, ldt ) ) { return -10; } - if( LAPACKE_cge_nancheck( matrix_layout, ldv, k, v, ldv ) ) { + if( LAPACKE_cge_nancheck( matrix_layout, nrows_v, k, v, ldv ) ) { return -8; } #endif diff --git a/LAPACKE/src/lapacke_dgemqrt.c b/LAPACKE/src/lapacke_dgemqrt.c index 68cc6de..b5456a0 100644 --- a/LAPACKE/src/lapacke_dgemqrt.c +++ b/LAPACKE/src/lapacke_dgemqrt.c @@ -39,6 +39,7 @@ lapack_int LAPACKE_dgemqrt( int matrix_layout, char side, char trans, const double* t, lapack_int ldt, double* c, lapack_int ldc ) { + lapack_int nrows_v; lapack_int info = 0; double* work = NULL; if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) { @@ -47,13 +48,15 @@ lapack_int LAPACKE_dgemqrt( int matrix_layout, char side, char trans, } #ifndef LAPACK_DISABLE_NAN_CHECK /* Optionally check input matrices for NaNs */ + nrows_v = LAPACKE_lsame( side, 'L' ) ? m : + ( LAPACKE_lsame( side, 'R' ) ? n : 0 ); if( LAPACKE_dge_nancheck( matrix_layout, m, n, c, ldc ) ) { return -12; } - if( LAPACKE_dge_nancheck( matrix_layout, ldt, nb, t, ldt ) ) { + if( LAPACKE_dge_nancheck( matrix_layout, nb, k, t, ldt ) ) { return -10; } - if( LAPACKE_dge_nancheck( matrix_layout, ldv, k, v, ldv ) ) { + if( LAPACKE_dge_nancheck( matrix_layout, nrows_v, k, v, ldv ) ) { return -8; } #endif diff --git a/LAPACKE/src/lapacke_sgemqrt.c b/LAPACKE/src/lapacke_sgemqrt.c index 93d4fca..5cf83e0 100644 --- a/LAPACKE/src/lapacke_sgemqrt.c +++ b/LAPACKE/src/lapacke_sgemqrt.c @@ -39,6 +39,7 @@ lapack_int LAPACKE_sgemqrt( int matrix_layout, char side, char trans, const float* t, lapack_int ldt, float* c, lapack_int ldc ) { + lapack_int nrows_v; lapack_int info = 0; float* work = NULL; if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) { @@ -47,13 +48,15 @@ lapack_int LAPACKE_sgemqrt( int matrix_layout, char side, char trans, } #ifndef LAPACK_DISABLE_NAN_CHECK /* Optionally check input matrices for NaNs */ + nrows_v = LAPACKE_lsame( side, 'L' ) ? m : + ( LAPACKE_lsame( side, 'R' ) ? n : 0 ); if( LAPACKE_sge_nancheck( matrix_layout, m, n, c, ldc ) ) { return -12; } - if( LAPACKE_sge_nancheck( matrix_layout, ldt, nb, t, ldt ) ) { + if( LAPACKE_sge_nancheck( matrix_layout, nb, k, t, ldt ) ) { return -10; } - if( LAPACKE_sge_nancheck( matrix_layout, ldv, k, v, ldv ) ) { + if( LAPACKE_sge_nancheck( matrix_layout, nrows_v, k, v, ldv ) ) { return -8; } #endif diff --git a/LAPACKE/src/lapacke_zgemqrt.c b/LAPACKE/src/lapacke_zgemqrt.c index d8b1540..a17d5f5 100644 --- a/LAPACKE/src/lapacke_zgemqrt.c +++ b/LAPACKE/src/lapacke_zgemqrt.c @@ -40,6 +40,7 @@ lapack_int LAPACKE_zgemqrt( int matrix_layout, char side, char trans, lapack_int ldt, lapack_complex_double* c, lapack_int ldc ) { + lapack_int nrows_v; lapack_int info = 0; lapack_complex_double* work = NULL; if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) { @@ -48,13 +49,15 @@ lapack_int LAPACKE_zgemqrt( int matrix_layout, char side, char trans, } #ifndef LAPACK_DISABLE_NAN_CHECK /* Optionally check input matrices for NaNs */ + nrows_v = LAPACKE_lsame( side, 'L' ) ? m : + ( LAPACKE_lsame( side, 'R' ) ? n : 0 ); if( LAPACKE_zge_nancheck( matrix_layout, m, n, c, ldc ) ) { return -12; } - if( LAPACKE_zge_nancheck( matrix_layout, ldt, nb, t, ldt ) ) { + if( LAPACKE_zge_nancheck( matrix_layout, nb, k, t, ldt ) ) { return -10; } - if( LAPACKE_zge_nancheck( matrix_layout, ldv, k, v, ldv ) ) { + if( LAPACKE_zge_nancheck( matrix_layout, nrows_v, k, v, ldv ) ) { return -8; } #endif -- 2.7.4