aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LAPACKE/src/lapacke_cunmlq_work.c4
-rw-r--r--LAPACKE/src/lapacke_dormlq_work.c4
-rw-r--r--LAPACKE/src/lapacke_sormlq_work.c4
-rw-r--r--LAPACKE/src/lapacke_zunmlq_work.c4
4 files changed, 12 insertions, 4 deletions
diff --git a/LAPACKE/src/lapacke_cunmlq_work.c b/LAPACKE/src/lapacke_cunmlq_work.c
index e8fcf23a..5cf66424 100644
--- a/LAPACKE/src/lapacke_cunmlq_work.c
+++ b/LAPACKE/src/lapacke_cunmlq_work.c
@@ -41,6 +41,7 @@ lapack_int LAPACKE_cunmlq_work( int matrix_layout, char side, char trans,
lapack_complex_float* work, lapack_int lwork )
{
lapack_int info = 0;
+ lapack_int r;
if( matrix_layout == LAPACK_COL_MAJOR ) {
/* Call LAPACK function and adjust info */
LAPACK_cunmlq( &side, &trans, &m, &n, &k, a, &lda, tau, c, &ldc, work,
@@ -49,12 +50,13 @@ lapack_int LAPACKE_cunmlq_work( int matrix_layout, char side, char trans,
info = info - 1;
}
} else if( matrix_layout == LAPACK_ROW_MAJOR ) {
+ r = LAPACKE_lsame( side, 'l' ) ? m : n;
lapack_int lda_t = MAX(1,k);
lapack_int ldc_t = MAX(1,m);
lapack_complex_float* a_t = NULL;
lapack_complex_float* c_t = NULL;
/* Check leading dimension(s) */
- if( lda < m ) {
+ if( lda < r ) {
info = -8;
LAPACKE_xerbla( "LAPACKE_cunmlq_work", info );
return info;
diff --git a/LAPACKE/src/lapacke_dormlq_work.c b/LAPACKE/src/lapacke_dormlq_work.c
index 5a1a647d..99a7c3c7 100644
--- a/LAPACKE/src/lapacke_dormlq_work.c
+++ b/LAPACKE/src/lapacke_dormlq_work.c
@@ -40,6 +40,7 @@ lapack_int LAPACKE_dormlq_work( int matrix_layout, char side, char trans,
double* work, lapack_int lwork )
{
lapack_int info = 0;
+ lapack_int r;
lapack_int lda_t, ldc_t;
double *a_t = NULL, *c_t = NULL;
if( matrix_layout == LAPACK_COL_MAJOR ) {
@@ -50,10 +51,11 @@ lapack_int LAPACKE_dormlq_work( int matrix_layout, char side, char trans,
info = info - 1;
}
} else if( matrix_layout == LAPACK_ROW_MAJOR ) {
+ r = LAPACKE_lsame( side, 'l' ) ? m : n;
lda_t = MAX(1,k);
ldc_t = MAX(1,m);
/* Check leading dimension(s) */
- if( lda < m ) {
+ if( lda < r ) {
info = -8;
LAPACKE_xerbla( "LAPACKE_dormlq_work", info );
return info;
diff --git a/LAPACKE/src/lapacke_sormlq_work.c b/LAPACKE/src/lapacke_sormlq_work.c
index 9934f020..bbf55bd8 100644
--- a/LAPACKE/src/lapacke_sormlq_work.c
+++ b/LAPACKE/src/lapacke_sormlq_work.c
@@ -40,6 +40,7 @@ lapack_int LAPACKE_sormlq_work( int matrix_layout, char side, char trans,
float* work, lapack_int lwork )
{
lapack_int info = 0;
+ lapack_int r;
lapack_int lda_t, ldc_t;
float *a_t = NULL, *c_t = NULL;
if( matrix_layout == LAPACK_COL_MAJOR ) {
@@ -50,10 +51,11 @@ lapack_int LAPACKE_sormlq_work( int matrix_layout, char side, char trans,
info = info - 1;
}
} else if( matrix_layout == LAPACK_ROW_MAJOR ) {
+ r = LAPACKE_lsame( side, 'l' ) ? m : n;
lda_t = MAX(1,k);
ldc_t = MAX(1,m);
/* Check leading dimension(s) */
- if( lda < m ) {
+ if( lda < r ) {
info = -8;
LAPACKE_xerbla( "LAPACKE_sormlq_work", info );
return info;
diff --git a/LAPACKE/src/lapacke_zunmlq_work.c b/LAPACKE/src/lapacke_zunmlq_work.c
index 7390ca99..38a2d947 100644
--- a/LAPACKE/src/lapacke_zunmlq_work.c
+++ b/LAPACKE/src/lapacke_zunmlq_work.c
@@ -41,6 +41,7 @@ lapack_int LAPACKE_zunmlq_work( int matrix_layout, char side, char trans,
lapack_complex_double* work, lapack_int lwork )
{
lapack_int info = 0;
+ lapack_int r;
if( matrix_layout == LAPACK_COL_MAJOR ) {
/* Call LAPACK function and adjust info */
LAPACK_zunmlq( &side, &trans, &m, &n, &k, a, &lda, tau, c, &ldc, work,
@@ -49,12 +50,13 @@ lapack_int LAPACKE_zunmlq_work( int matrix_layout, char side, char trans,
info = info - 1;
}
} else if( matrix_layout == LAPACK_ROW_MAJOR ) {
+ r = LAPACKE_lsame( side, 'l' ) ? m : n;
lapack_int lda_t = MAX(1,k);
lapack_int ldc_t = MAX(1,m);
lapack_complex_double* a_t = NULL;
lapack_complex_double* c_t = NULL;
/* Check leading dimension(s) */
- if( lda < m ) {
+ if( lda < r ) {
info = -8;
LAPACKE_xerbla( "LAPACKE_zunmlq_work", info );
return info;