From 5b3dabf5dccbecf2d081f3f194501440a7af2b63 Mon Sep 17 00:00:00 2001
From: Jaron Kent-Dobias <jaron@kent-dobias.com>
Date: Fri, 20 Dec 2019 15:03:34 -0500
Subject: maybe now

---
 hadamard_pt.hpp | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/hadamard_pt.hpp b/hadamard_pt.hpp
index f101446..a1123d5 100644
--- a/hadamard_pt.hpp
+++ b/hadamard_pt.hpp
@@ -81,16 +81,21 @@ public:
           Ms[j].tune(m, ε);
         }
 
-        for (unsigned j = 0; j < Ms.size() - 1; j++) {
-          if (this->step(j, j + 1, true)) {
-            std::swap(colors[j], colors[j + 1]);
-          colors.front() = down;
-          colors.back() = up;
+        for (unsigned j = 0; j < Ms.size() / 2; j++) {
+          unsigned k = 2 * j;
+          if (this->step(k, k + 1, true)) {
+            std::swap(colors[k], colors[k + 1]);
+            colors.front() = down;
+            colors.back() = up;
           }
-          if (this->step(Ms.size() - 2 - j, Ms.size() - 1 - j, true)) {
-            std::swap(colors[Ms.size() - 2 - j], colors[Ms.size() - 1 - j]);
-          colors.front() = down;
-          colors.back() = up;
+        }
+
+        for (unsigned j = 0; j < Ms.size() / 2 - 1; j++) {
+          unsigned k = 2 * j + 1;
+          if (this->step(k, k + 1, true)) {
+            std::swap(colors[k], colors[k + 1]);
+            colors.front() = down;
+            colors.back() = up;
           }
         }
 
-- 
cgit v1.2.3-70-g09d2