APPLYING INTEL PATCHES sent to Julie on Feb 19th 2016 by Dima from INTEL (dmitry...
authorjulie <julielangou@users.noreply.github.com>
Tue, 23 Feb 2016 06:03:59 +0000 (06:03 +0000)
committerjulie <julielangou@users.noreply.github.com>
Tue, 23 Feb 2016 06:03:59 +0000 (06:03 +0000)
[PATCH 37/42] Fix lapacke_?gemqrt - avoid nancheck of unset data

LAPACKE/src/lapacke_cgemqrt.c
LAPACKE/src/lapacke_dgemqrt.c
LAPACKE/src/lapacke_sgemqrt.c
LAPACKE/src/lapacke_zgemqrt.c

index 5f539f3..4dde4c9 100644 (file)
@@ -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
index 68cc6de..b5456a0 100644 (file)
@@ -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
index 93d4fca..5cf83e0 100644 (file)
@@ -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
index d8b1540..a17d5f5 100644 (file)
@@ -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