Fixed undefined behavior and updated documentation
- Due to the conservative use of
unsafe
, the library technically produced undefined behavior on target platforms that do not supportPOPCNT
orBMI2
. This has been fixed by failing compilation if either is not present - Documentation stated that some behavior was undefined when it was just unpredictable but well-defined. Those issues have been fixed
- Fixed a bug that would lead to undefined behavior in release mode and crash in debug mode, where a shift operation with a modulus of 64 was possible
Technically, none of these changes should be breaking, since they only affect undefined behavior
Also, I added sucds
as a new crate in comparison benchmarks, which is faster in general, but much worse in worst-cases.