From c97ec72a6e6dfc287ef579cd4dc4f786b226afc1 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Fri, 24 Aug 2018 14:17:53 +0200
Subject: [PATCH] Fix  short stringification

---
 python/dune/perftool/sumfact/vectorization.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/python/dune/perftool/sumfact/vectorization.py b/python/dune/perftool/sumfact/vectorization.py
index 14b9ba4d..0b6c9494 100644
--- a/python/dune/perftool/sumfact/vectorization.py
+++ b/python/dune/perftool/sumfact/vectorization.py
@@ -169,11 +169,14 @@ def short_stringify_vectorization_strategy(strategy):
 
     stage1 = []
     stage3 = []
+    keys = set(sf.cache_key for sf in strategy.values())
     for kernel in strategy.values():
-        if kernel.stage == 1:
-            stage1.append(_short(kernel))
-        if kernel.stage == 3:
-            stage3.append(_short(kernel))
+        if kernel.cache_key in keys:
+            keys.discard(kernel.cache_key)
+            if kernel.stage == 1:
+                stage1.append(_short(kernel))
+            if kernel.stage == 3:
+                stage3.append(_short(kernel))
 
     return "m0={};S1:{};S3:{}".format(qp[0], "|".join(stage1), "|".join(stage3))
 
@@ -267,6 +270,7 @@ def level1_optimal_vectorization_strategy(sumfacts, width):
         cost = strategy_cost((qp, optimal_strategies[qp]))
         print("The target cost was:   {}".format(get_form_option("vectorization_target")))
         print("The achieved cost was: {}".format(cost))
+        print("The optimal cost would be: {}".format(strategy_cost(level1_optimal_vectorization_strategy(sumfacts, width))))
         set_form_option("vectorization_strategy", "target")
         print("The score in 'target' logic was: {}".format(strategy_cost((qp, optimal_strategies[qp]))))
 
-- 
GitLab