From a2da36b8a1d6c452f60b18048f94021cfeb60514 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Radek=20Hu=C5=A1ek?= <PitelVonSacek@gmail.com>
Date: Wed, 9 Dec 2015 17:08:28 +0100
Subject: [PATCH] Simplify combine() operation

---
 fast-array.h         | 12 +++++-------
 group-connectivity.h |  2 +-
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/fast-array.h b/fast-array.h
index 7edb19b..b9e0090 100644
--- a/fast-array.h
+++ b/fast-array.h
@@ -17,13 +17,11 @@ struct Mapping {
   inline T operator[] (size_t i) const { return data[i]; }
   inline void assign(size_t i, T val) { data[i] = val; }
 
-  Mapping& combine(T alpha, T beta, const Mapping& b) {
-    Mapping &a = *this;
-    size_t size = a.size();
-    for (size_t i = 0; i < size; i++)
-      data[i] = Ring::plus(Ring::multiply(alpha, a.data[i]),
-                           Ring::multiply(beta, b.data[i]));
-    return a;
+  Mapping& combine(T beta, const Mapping& b) {
+    size_t _size = size();
+    for (size_t i = 0; i < _size; i++)
+      data[i] = Ring::plus(data[i], Ring::multiply(beta, b.data[i]));
+    return *this;
   }
 };
 
diff --git a/group-connectivity.h b/group-connectivity.h
index 379e80a..f127f81 100644
--- a/group-connectivity.h
+++ b/group-connectivity.h
@@ -91,7 +91,7 @@ struct Tester : public AbstractTester {
   Mapping& cannonize(Mapping& map) {
     for (const auto &i : nonClassEdges) {
       if (map[i.first] != Ring::zero)
-        map.combine(Ring::one, map[i.first], i.second);
+        map.combine(map[i.first], i.second);
     }
 
     return map;
-- 
GitLab