diff options
-rw-r--r-- | LAPACKE/src/lapacke_cunmlq_work.c | 4 | ||||
-rw-r--r-- | LAPACKE/src/lapacke_dormlq_work.c | 4 | ||||
-rw-r--r-- | LAPACKE/src/lapacke_sormlq_work.c | 4 | ||||
-rw-r--r-- | LAPACKE/src/lapacke_zunmlq_work.c | 4 |
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; |