Hamming Bitwise Fast
A fast, zero-dependency implementation of bitwise Hamming Distance using a method amenable to auto-vectorization.
This started out as a benchmark of various bitwise Hamming distance implementations in Rust. However, after finding that a simple implementation that is amenable to auto-vectorization was comparable, if not faster, than other implementations, I decided to publish it as a crate.
Note: This is for comparing bit-vectors, not for comparing strings.
Usage
use hamming_bitwise_fast;
assert_eq!;
assert_eq!;
Benchmarks
This uses Criterion to benchmark various Hamming distance implementations:
- The auto-vectorized implementation in this crate
- A naive for-loop based implementation
- A naive iterator based implementation
hamminghamming_rssimsimd
Running the benchmark
Then open the target/criterion/report/index.html file in your browser to view the results.
Results
These were the results running on 3 different types of machines:
2023 MacBook Pro M2 Max
Linode 2 CPU 4GB
Fly.io 2 CPU 4GB
License
This project is licensed under either of the following licenses, at your option:
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.