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