diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/bit_vector_operations.cc b/src/sage/geometry/polyhedron/combinatorial_polyhedron/bit_vector_operations.cc index b9c88f8dc24..d6e2ac27aee 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/bit_vector_operations.cc +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/bit_vector_operations.cc @@ -55,13 +55,13 @@ inline size_t count_atoms(uint64_t* A, size_t face_length){ This is the number of set bits in A. ``face_length`` is the length of A in terms of uint64_t. */ + size_t i; unsigned int count = 0; - for (size_t i=0; i>= 1; - } + a = a - ((a >> 1) & 0x5555555555555555ULL); + a = (a & 0x3333333333333333ULL) + ((a >> 2) & 0x3333333333333333ULL); + count += ( ((a + (a >> 4)) & 0x0f0f0f0f0f0f0f0fULL) * 0x0101010101010101ULL ) >> 56; } return count; }