Using buil-in gcc function for counting bits
This commit is contained in:
@@ -86,11 +86,13 @@ class BoolSquareMatrix {
|
|||||||
STORAGE vector_value = 0;
|
STORAGE vector_value = 0;
|
||||||
for (STORAGE ind = 0; ind < SIZE; ++ind) {
|
for (STORAGE ind = 0; ind < SIZE; ++ind) {
|
||||||
BoolVector<STORAGE, SIZE> cur_vec = vec * get_row(ind);
|
BoolVector<STORAGE, SIZE> cur_vec = vec * get_row(ind);
|
||||||
STORAGE cur_sum = 0;
|
/* STORAGE cur_sum = 0;
|
||||||
for (STORAGE vec_ind = 0; vec_ind < SIZE; ++vec_ind)
|
for (STORAGE vec_ind = 0; vec_ind < SIZE; ++vec_ind)
|
||||||
cur_sum += cur_vec.at(vec_ind);
|
cur_sum += cur_vec.at(vec_ind);
|
||||||
|
same but slow version, we just need number of bits
|
||||||
|
*/
|
||||||
vector_value *= 2;
|
vector_value *= 2;
|
||||||
vector_value += cur_sum % 2;
|
vector_value += __builtin_popcount(cur_vec.get_value()) % 2; // cur_sum
|
||||||
}
|
}
|
||||||
return BoolVector<STORAGE, SIZE>(vector_value);
|
return BoolVector<STORAGE, SIZE>(vector_value);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user