From bf91483e0aea5b5ad8904162124223f29450e687 Mon Sep 17 00:00:00 2001 From: Jonathan Kliem Date: Tue, 25 Aug 2020 08:57:26 +0200 Subject: [PATCH] improved count atoms --- .../combinatorial_polyhedron/bit_vector_operations.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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; }