From e529a2f2acab44e1b770e1e418e3e2b1b3c7ca67 Mon Sep 17 00:00:00 2001 From: Aleksey Lobanov Date: Fri, 13 Dec 2019 19:06:51 +0300 Subject: [PATCH] Using buil-in gcc function for counting bits --- al_bool_matrix.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/al_bool_matrix.hpp b/al_bool_matrix.hpp index 84f5761..2bf063f 100644 --- a/al_bool_matrix.hpp +++ b/al_bool_matrix.hpp @@ -86,11 +86,13 @@ class BoolSquareMatrix { STORAGE vector_value = 0; for (STORAGE ind = 0; ind < SIZE; ++ind) { BoolVector cur_vec = vec * get_row(ind); - STORAGE cur_sum = 0; + /* STORAGE cur_sum = 0; for (STORAGE vec_ind = 0; vec_ind < SIZE; ++vec_ind) cur_sum += cur_vec.at(vec_ind); + same but slow version, we just need number of bits + */ vector_value *= 2; - vector_value += cur_sum % 2; + vector_value += __builtin_popcount(cur_vec.get_value()) % 2; // cur_sum } return BoolVector(vector_value); }