From 7184824558bf435d7641bdde9ecf462f77bdbe08 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Thu, 7 Nov 2019 13:10:54 +0100
Subject: [PATCH] compute/map: Fix the pmap function for pentagonal matrices

---
 compute/pmap.c | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/compute/pmap.c b/compute/pmap.c
index bcc1a868e..ef30f09de 100644
--- a/compute/pmap.c
+++ b/compute/pmap.c
@@ -11,7 +11,7 @@
  *
  * @version 1.3.0
  * @author Mathieu Faverge
- * @date 2024-03-11
+ * @date 2024-03-14
  *
  */
 #include "control/common.h"
@@ -28,31 +28,34 @@ void chameleon_pmap( cham_uplo_t uplo, int ndata, cham_map_data_t *data,
     CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     const CHAM_desc_t *A = data[0].desc;
-    int m, n;
+    int m, n, minmn;
 
     chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
     RUNTIME_options_init( &options, chamctxt, sequence, request );
 
+    minmn = chameleon_min( A->mt, A->nt );
+
     switch( uplo ) {
     case ChamUpper:
-        for (n = 0; n < A->nt; n++) {
-            for (m = 0; m < n; m++) {
+        for (m = 0; m < minmn; m++) {
+            INSERT_TASK_map(
+                &options, uplo, m, m,
+                ndata, data,
+                op_fct, op_args );
+
+            for (n = m+1; n < A->nt; n++) {
                 INSERT_TASK_map(
                     &options, ChamUpperLower, m, n,
                     ndata, data,
                     op_fct, op_args );
             }
-            INSERT_TASK_map(
-                &options, uplo, n, n,
-                ndata, data,
-                op_fct, op_args );
         }
         break;
 
     case ChamLower:
-        for (n = 0; n < A->nt; n++) {
+        for (n = 0; n < minmn; n++){
             INSERT_TASK_map(
                 &options, uplo, n, n,
                 ndata, data,
-- 
GitLab