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

Project Samples

Project Activity

See All Activity >

Categories

Algorithms

License

Public Domain

Follow CountBitsSet

CountBitsSet Web Site

Other Useful Business Software
AI-generated apps that pass security review Icon
AI-generated apps that pass security review

Stop waiting on engineering. Build production-ready internal tools with AI—on your company data, in your cloud.

Retool lets you generate dashboards, admin panels, and workflows directly on your data. Type something like “Build me a revenue dashboard on my Stripe data” and get a working app with security, permissions, and compliance built in from day one. Whether on our cloud or self-hosted, create the internal software your team needs without compromising enterprise standards or control.
Try Retool free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of CountBitsSet!

Additional Project Details

Operating Systems

Linux, Windows

Intended Audience

Developers, Education

User Interface

Command-line, Console/Terminal

Programming Language

C++

Related Categories

C++ Algorithms

Registered

2012-09-01