I was curious how much better the Algorithms, pointed out by BitTwiddling Hacks, perform than a simple Lookup Table approach...
Now I think, perhaps my little investigation is interesting for others too...
PS: the parallel counting Algo is about 35% faster on average on my computers than a simple LUT based solution. Also this shows nicely how different a human brain compatible solution is to a binary machine optimal solution :-)
In the meantime I added other Algorithms beside countbisset (hamming weight): ceil(log2()) + floor(log2()), bitreverse, ...
I also recommand to try the code with different compilers and / or plattforms.
PS: see result.txt in Code, to see various runs with different compilers and compiler switches
Features
- C++
- CountBitsSet, PopulationCount.Integer Hamming weight
- simple Benchmark
Categories
AlgorithmsLicense
Public DomainFollow CountBitsSet
Other Useful Business Software
Gen AI apps are built with MongoDB Atlas
MongoDB Atlas is the developer-friendly database used to build, scale, and run gen AI and LLM-powered apps—without needing a separate vector database. Atlas offers built-in vector search, global availability across 115+ regions, and flexible document modeling. Start building AI apps faster, all in one place.
Rate This Project
Login To Rate This Project
User Reviews
Be the first to post a review of CountBitsSet!