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 05:40:02 +0000 (05:40 +0000)
committerjulie <julielangou@users.noreply.github.com>
Tue, 23 Feb 2016 05:40:02 +0000 (05:40 +0000)
[PATCH 28/42] Fix lapacke_?gesvj - correct eval of nrows_v

LAPACKE/src/lapacke_cgesvj.c
LAPACKE/src/lapacke_cgesvj_work.c
LAPACKE/src/lapacke_dgesvj.c
LAPACKE/src/lapacke_dgesvj_work.c
LAPACKE/src/lapacke_sgesvj.c
LAPACKE/src/lapacke_sgesvj_work.c
LAPACKE/src/lapacke_zgesvj.c
LAPACKE/src/lapacke_zgesvj_work.c

index 2f968af..c9851e7 100644 (file)
@@ -52,8 +52,8 @@ lapack_int LAPACKE_cgesvj( int matrix_layout, char joba, char jobu, char jobv,
     }
 #ifndef LAPACK_DISABLE_NAN_CHECK
     /* Optionally check input matrices for NaNs */
-    nrows_v = LAPACKE_lsame( jobv, 'v' ) ? n :
-                         ( LAPACKE_lsame( jobv, 'a' ) ? mv : 1);
+    nrows_v = LAPACKE_lsame( jobv, 'v' ) ? MAX(0,n) :
+            ( LAPACKE_lsame( jobv, 'a' ) ? MAX(0,mv) : 0);
     if( LAPACKE_cge_nancheck( matrix_layout, m, n, a, lda ) ) {
         return -7;
     }
index d2f24d0..c2bcef1 100644 (file)
@@ -50,8 +50,8 @@ lapack_int LAPACKE_cgesvj_work( int matrix_layout, char joba, char jobu,
             info = info - 1;
         }
     } else if( matrix_layout == LAPACK_ROW_MAJOR ) {
-        lapack_int nrows_v = LAPACKE_lsame( jobv, 'v' ) ? n :
-                             ( LAPACKE_lsame( jobv, 'a' ) ? mv : 1);
+        lapack_int nrows_v = LAPACKE_lsame( jobv, 'v' ) ? MAX(0,n) :
+                           ( LAPACKE_lsame( jobv, 'a' ) ? MAX(0,mv) : 0);
         lapack_int lda_t = MAX(1,m);
         lapack_int ldv_t = MAX(1,nrows_v);
         lapack_complex_float* a_t = NULL;
index 1ffd432..8723c80 100644 (file)
@@ -49,8 +49,8 @@ lapack_int LAPACKE_dgesvj( int matrix_layout, char joba, char jobu, char jobv,
     }
 #ifndef LAPACK_DISABLE_NAN_CHECK
     /* Optionally check input matrices for NaNs */
-    nrows_v = LAPACKE_lsame( jobv, 'v' ) ? n :
-                         ( LAPACKE_lsame( jobv, 'a' ) ? mv : 1);
+    nrows_v = LAPACKE_lsame( jobv, 'v' ) ? MAX(0,n) :
+            ( LAPACKE_lsame( jobv, 'a' ) ? MAX(0,mv) : 0);
     if( LAPACKE_dge_nancheck( matrix_layout, m, n, a, lda ) ) {
         return -7;
     }
index f2b1b9c..83f07b4 100644 (file)
@@ -48,8 +48,8 @@ lapack_int LAPACKE_dgesvj_work( int matrix_layout, char joba, char jobu,
             info = info - 1;
         }
     } else if( matrix_layout == LAPACK_ROW_MAJOR ) {
-        lapack_int nrows_v = LAPACKE_lsame( jobv, 'v' ) ? n :
-                             ( LAPACKE_lsame( jobv, 'a' ) ? mv : 1);
+        lapack_int nrows_v = LAPACKE_lsame( jobv, 'v' ) ? MAX(0,n) :
+                           ( LAPACKE_lsame( jobv, 'a' ) ? MAX(0,mv) : 0);
         lapack_int lda_t = MAX(1,m);
         lapack_int ldv_t = MAX(1,nrows_v);
         double* a_t = NULL;
index 25e4383..f776d83 100644 (file)
@@ -49,8 +49,8 @@ lapack_int LAPACKE_sgesvj( int matrix_layout, char joba, char jobu, char jobv,
     }
 #ifndef LAPACK_DISABLE_NAN_CHECK
     /* Optionally check input matrices for NaNs */
-    nrows_v = LAPACKE_lsame( jobv, 'v' ) ? n :
-                         ( LAPACKE_lsame( jobv, 'a' ) ? mv : 1);
+    nrows_v = LAPACKE_lsame( jobv, 'v' ) ? MAX(0,n) :
+            ( LAPACKE_lsame( jobv, 'a' ) ? MAX(0,mv) : 0 );
     if( LAPACKE_sge_nancheck( matrix_layout, m, n, a, lda ) ) {
         return -7;
     }
index 74bdeea..ba89c11 100644 (file)
@@ -48,8 +48,8 @@ lapack_int LAPACKE_sgesvj_work( int matrix_layout, char joba, char jobu,
             info = info - 1;
         }
     } else if( matrix_layout == LAPACK_ROW_MAJOR ) {
-        lapack_int nrows_v = LAPACKE_lsame( jobv, 'v' ) ? n :
-                             ( LAPACKE_lsame( jobv, 'a' ) ? mv : 1);
+        lapack_int nrows_v = LAPACKE_lsame( jobv, 'v' ) ? MAX(0,n) :
+                           ( LAPACKE_lsame( jobv, 'a' ) ? MAX(0,mv) : 0);
         lapack_int lda_t = MAX(1,m);
         lapack_int ldv_t = MAX(1,nrows_v);
         float* a_t = NULL;
index dbd5c43..a7e91bf 100644 (file)
@@ -52,8 +52,8 @@ lapack_int LAPACKE_zgesvj( int matrix_layout, char joba, char jobu, char jobv,
     }
 #ifndef LAPACK_DISABLE_NAN_CHECK
     /* Optionally check input matrices for NaNs */
-    nrows_v = LAPACKE_lsame( jobv, 'v' ) ? n :
-                         ( LAPACKE_lsame( jobv, 'a' ) ? mv : 1);
+    nrows_v = LAPACKE_lsame( jobv, 'v' ) ? MAX(0,n) :
+            ( LAPACKE_lsame( jobv, 'a' ) ? MAX(0,mv) : 0);
     if( LAPACKE_zge_nancheck( matrix_layout, m, n, a, lda ) ) {
         return -7;
     }
index e618bf9..5d139a0 100644 (file)
@@ -50,8 +50,8 @@ lapack_int LAPACKE_zgesvj_work( int matrix_layout, char joba, char jobu,
             info = info - 1;
         }
     } else if( matrix_layout == LAPACK_ROW_MAJOR ) {
-        lapack_int nrows_v = LAPACKE_lsame( jobv, 'v' ) ? n :
-                             ( LAPACKE_lsame( jobv, 'a' ) ? mv : 1);
+        lapack_int nrows_v = LAPACKE_lsame( jobv, 'v' ) ? MAX(0,n) :
+                           ( LAPACKE_lsame( jobv, 'a' ) ? MAX(0,mv) : 0);
         lapack_int lda_t = MAX(1,m);
         lapack_int ldv_t = MAX(1,nrows_v);
         lapack_complex_double* a_t = NULL;