From 0c6309d24e9858f3bb11a08d663c02718f55058d Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Fri, 6 May 2022 15:50:22 +0200
Subject: [PATCH] qr/lq: update the calls to qr/lq factorization algorithms

---
 compute/pzlatms.c      |  2 +-
 compute/zgelqf_param.c | 11 ++++++++++-
 compute/zgels_param.c  |  2 +-
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/compute/pzlatms.c b/compute/pzlatms.c
index 58a5fd9f7..efa044b46 100644
--- a/compute/pzlatms.c
+++ b/compute/pzlatms.c
@@ -291,7 +291,7 @@ void chameleon_pzlatms( cham_dist_t idist, unsigned long long int seed, cham_sym
                              NULL, NULL, NULL );
 
         /* V <= qr(V) */
-        chameleon_pzgelqf_param( 1, &qrtree, &descV,
+        chameleon_pzgelqf_param( 1, kt, &qrtree, &descV,
                                  &descTS, &descTT, descDptr, sequence, request );
 
         /* A <= (U * D) * V */
diff --git a/compute/zgelqf_param.c b/compute/zgelqf_param.c
index f1a346995..7b2a14d3c 100644
--- a/compute/zgelqf_param.c
+++ b/compute/zgelqf_param.c
@@ -235,6 +235,7 @@ int CHAMELEON_zgelqf_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
 {
     CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
+    int KT;
 
     chamctxt = chameleon_context_self();
     if (chamctxt == NULL) {
@@ -280,6 +281,14 @@ int CHAMELEON_zgelqf_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
      if (chameleon_min(M, N) == 0)
      return CHAMELEON_SUCCESS;
      */
+
+    if ( A->m < A->n ) {
+        KT = A->mt;
+    }
+    else {
+        KT = A->nt;
+    }
+
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int m = chameleon_min( A->m, A->n );
@@ -288,7 +297,7 @@ int CHAMELEON_zgelqf_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
     }
 #endif
 
-    chameleon_pzgelqf_param( 1, qrtree, A, TS, TT, Dptr, sequence, request );
+    chameleon_pzgelqf_param( 1, KT, qrtree, A, TS, TT, Dptr, sequence, request );
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( A, sequence );
         CHAMELEON_Desc_Flush( TS, sequence );
diff --git a/compute/zgels_param.c b/compute/zgels_param.c
index 3d1b9c782..c029a67a9 100644
--- a/compute/zgels_param.c
+++ b/compute/zgels_param.c
@@ -434,7 +434,7 @@ int CHAMELEON_zgels_param_Tile_Async( const libhqr_tree_t *qrtree, cham_trans_t
         /*
          * Compute LQ factorization of A
          */
-        chameleon_pzgelqf_param( 1, qrtree, A, TS, TT, Dptr, sequence, request );
+        chameleon_pzgelqf_param( 1, A->mt, qrtree, A, TS, TT, Dptr, sequence, request );
 
         /* Perform the solve part */
         if ( trans == ChamNoTrans ) {
-- 
GitLab