From c5527229280f64d66bada609be0c6c68582c779e Mon Sep 17 00:00:00 2001
From: Christopher Haine <chaine@hpe.com>
Date: Mon, 7 Dec 2020 16:29:15 +0100
Subject: [PATCH] fixed double transfo + transpose

---
 maestro/pool.c                  |  3 ++-
 tests/check_layout.c            | 13 ++++++-------
 transformation/transformation.c | 10 +++++-----
 3 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/maestro/pool.c b/maestro/pool.c
index 6fe93f16..201fc667 100644
--- a/maestro/pool.c
+++ b/maestro/pool.c
@@ -837,6 +837,7 @@ HAVE_SOURCE:
   }
   
   /* if applicable, transform incoming cdo so it matches demanded cdo requirements */
+/*
   status = mstro_transform_layout(e->cdo_handles[src], cdo,
                                   e->cdo_handles[src]->attributes, cdo->attributes);
   if(status==MSTRO_NOMATCH) {
@@ -846,7 +847,7 @@ HAVE_SOURCE:
         e->cdo_handles[src], cdo);
     goto BAILOUT_UNLOCK_ENTRY;
   }
-  
+*/  
   /* drop our own entry */
   status = mstro_pool_entry__drop(e, cdo);
   if(status==MSTRO_OK) {
diff --git a/tests/check_layout.c b/tests/check_layout.c
index 18caa7ab..e3d4f419 100644
--- a/tests/check_layout.c
+++ b/tests/check_layout.c
@@ -49,8 +49,8 @@
 #include <errno.h>
 #include "maestro/logging.h"
 
-#define N 20
-#define M 40
+#define N 3
+#define M 4
 #define ROWMAJ MSTRO_ATTR_CORE_CDO_LAYOUT_ORDER_ROWMAJOR
 #define COLMAJ MSTRO_ATTR_CORE_CDO_LAYOUT_ORDER_COLMAJOR
 
@@ -59,10 +59,8 @@ CHEAT_DECLARE (
 	print_mat(double* p)
 	{
       size_t i,j;
-	  for (i=0; i<N; i++) {
-        for (j=0; j<M; j++)
-	      fprintf(stderr, "%2.0f ", p[i*M+j]);
-	     fprintf(stderr, "\n");
+	  for (i=0; i<N*M; i++) {
+	      fprintf(stderr, "%2.0f ", p[i]);
 	  }
      fprintf(stderr, "\n");
 
@@ -97,7 +95,8 @@ CHEAT_TEST(layout_attribute_works,
 
   srandom(time(NULL));
   for(size_t i=0; i<data_count; i++) {
-    src_data[i]=random()%100;
+  //  src_data[i]=random()%100;
+    src_data[i]=i;
   }
   
   cheat_assert(MSTRO_OK == mstro_init("Tests","LAYOUT",0));
diff --git a/transformation/transformation.c b/transformation/transformation.c
index 8f1516fd..b9fe7318 100644
--- a/transformation/transformation.c
+++ b/transformation/transformation.c
@@ -217,13 +217,13 @@ mstro_transform_transpose(
   dst_ptr = m_dst->allocation->ptr;
 
   eltsize = src_eltsize;
-  for (i=0; i<dst_d1; i++)
-    for (j=0; j<dst_d0; j++)
+  for (i=0; i<dst_d0; i++)
+    for (j=0; j<dst_d1; j++)
       for (k=0; k<eltsize; k++)
-        dst_ptr[i*dst_d0*eltsize + j*eltsize +k]
-            = src_ptr[j*dst_d1*eltsize + i*eltsize+k];
-
+        dst_ptr[i*dst_d1*eltsize + j*eltsize +k]
+            = src_ptr[j*dst_d0*eltsize + i*eltsize+k];
   }
+
   return MSTRO_OK;
 
 }
-- 
GitLab