In our bii internal series we’ve walked through the process to convert our python code into C code, compile it as a python native extension to distribute it for different platforms. One of the major drawbacks of using native code is that we are not supporting all systems but, on the other side, we gain in efficiency and have more control over the environments where the app runs. We’re doing some benchmark to see how much faster is biicode processing projects: running all in python code or with the native extensions.
BITSCAN 1.0, our exclusive C++ library developed by Pablo San Segundo for sets of bits greater than the CPU register word, has proven its efficiency!
In order to find out if BITSCAN was fast enough to be a substantial improvement over other libraries that manage bit strings, it has been compared with std::bitset and boost::dynamic_bitset similar data structures.
A comment on basic features
STL ‘s Bitset (stl∷bitset) is NOT dynamic (i.e. the size of the bit string must be provided in compilation time by as a template parameter), so it does not actually provide the same functionality.
Boost´s Dynamic Bitset (boost:dynamic_bitset) is similar in functionality in fast forward bit scanning. However, Boost does NOT currently support reverse bit scanning which is important in many applications.