diff --git a/fast-array.h b/fast-array.h index 7edb19b0eb1064b64615887a157c6df26b72b19c..b9e00905267bd6ea52599e738a42e55da06907fc 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 379e80aa71b7974191c02b5e80efd7d455b3c1db..f127f812045e0c94125770550fabf0d99b04a076 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;