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
Enterprise-grade ITSM, for every business
Freshservice is an intuitive, AI-powered platform that helps IT, operations, and business teams deliver exceptional service without the usual complexity. Automate repetitive tasks, resolve issues faster, and provide seamless support across the organization. From managing incidents and assets to driving smarter decisions, Freshservice makes it easy to stay efficient and scale with confidence.
Rate This Project
Login To Rate This Project
User Reviews
Be the first to post a review of CountBitsSet!