lapacke_*larfb: char vars should be compared by LAPACKE_lsame
authoreugene.chereshnev <eugenechereshnev@gmail.com>
Wed, 1 Feb 2017 02:10:08 +0000 (18:10 -0800)
committereugene.chereshnev <eugenechereshnev@gmail.com>
Sat, 4 Feb 2017 02:40:05 +0000 (18:40 -0800)
LAPACKE/src/lapacke_clarfb.c
LAPACKE/src/lapacke_dlarfb.c
LAPACKE/src/lapacke_slarfb.c
LAPACKE/src/lapacke_zlarfb.c

index c1d3130..5a66707 100644 (file)
@@ -41,7 +41,7 @@ lapack_int LAPACKE_clarfb( int matrix_layout, char side, char trans, char direct
                            lapack_int ldc )
 {
     lapack_int info = 0;
-    lapack_int ldwork = ( side=='l')?n:(( side=='r')?m:1);
+    lapack_int ldwork;
     lapack_complex_float* work = NULL;
     lapack_int ncols_v, nrows_v;
     if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
@@ -100,6 +100,13 @@ lapack_int LAPACKE_clarfb( int matrix_layout, char side, char trans, char direct
             return -9;
     }
 #endif
+    if( LAPACKE_lsame( side, 'l' ) ) {
+        ldwork = n;
+    } else if( LAPACKE_lsame( side, 'r' ) ) {
+        ldwork = m;
+    } else {
+        ldwork = 1;
+    }
     /* Allocate memory for working array(s) */
     work = (lapack_complex_float*)
         LAPACKE_malloc( sizeof(lapack_complex_float) * ldwork * MAX(1,k) );
index b1bc5d4..5b3449a 100644 (file)
@@ -40,7 +40,7 @@ lapack_int LAPACKE_dlarfb( int matrix_layout, char side, char trans, char direct
                            lapack_int ldc )
 {
     lapack_int info = 0;
-    lapack_int ldwork = ( side=='l')?n:(( side=='r')?m:1);
+    lapack_int ldwork;
     double* work = NULL;
     lapack_int ncols_v, nrows_v;
     if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
@@ -99,6 +99,13 @@ lapack_int LAPACKE_dlarfb( int matrix_layout, char side, char trans, char direct
             return -9;
     }
 #endif
+    if( LAPACKE_lsame( side, 'l' ) ) {
+        ldwork = n;
+    } else if( LAPACKE_lsame( side, 'r' ) ) {
+        ldwork = m;
+    } else {
+        ldwork = 1;
+    }
     /* Allocate memory for working array(s) */
     work = (double*)LAPACKE_malloc( sizeof(double) * ldwork * MAX(1,k) );
     if( work == NULL ) {
index c64fc1f..6c84fbd 100644 (file)
@@ -40,7 +40,7 @@ lapack_int LAPACKE_slarfb( int matrix_layout, char side, char trans, char direct
                            lapack_int ldc )
 {
     lapack_int info = 0;
-    lapack_int ldwork = ( side=='l')?n:(( side=='r')?m:1);
+    lapack_int ldwork;
     float* work = NULL;
     lapack_int ncols_v, nrows_v;
     if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
@@ -99,6 +99,13 @@ lapack_int LAPACKE_slarfb( int matrix_layout, char side, char trans, char direct
             return -9;
     }
 #endif
+    if( LAPACKE_lsame( side, 'l' ) ) {
+        ldwork = n;
+    } else if( LAPACKE_lsame( side, 'r' ) ) {
+        ldwork = m;
+    } else {
+        ldwork = 1;
+    }
     /* Allocate memory for working array(s) */
     work = (float*)LAPACKE_malloc( sizeof(float) * ldwork * MAX(1,k) );
     if( work == NULL ) {
index e4f993f..f87d769 100644 (file)
@@ -41,7 +41,7 @@ lapack_int LAPACKE_zlarfb( int matrix_layout, char side, char trans, char direct
                            lapack_int ldc )
 {
     lapack_int info = 0;
-    lapack_int ldwork = ( side=='l')?n:(( side=='r')?m:1);
+    lapack_int ldwork;
     lapack_complex_double* work = NULL;
     lapack_int ncols_v, nrows_v;
     if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
@@ -100,6 +100,13 @@ lapack_int LAPACKE_zlarfb( int matrix_layout, char side, char trans, char direct
             return -9;
     }
 #endif
+    if( LAPACKE_lsame( side, 'l' ) ) {
+        ldwork = n;
+    } else if( LAPACKE_lsame( side, 'r' ) ) {
+        ldwork = m;
+    } else {
+        ldwork = 1;
+    }
     /* Allocate memory for working array(s) */
     work = (lapack_complex_double*)
         LAPACKE_malloc( sizeof(lapack_complex_double) * ldwork * MAX(1,k) );