(a: &[u8], b: &[u8])
| 43 | /// POPCNT on x86_64). |
| 44 | #[inline] |
| 45 | pub fn hamming_distance(a: &[u8], b: &[u8]) -> u32 { |
| 46 | debug_assert_eq!(a.len(), b.len()); |
| 47 | let mut dist = 0u32; |
| 48 | for i in 0..a.len() { |
| 49 | dist += (a[i] ^ b[i]).count_ones(); |
| 50 | } |
| 51 | dist |
| 52 | } |
| 53 | |
| 54 | /// Hamming distance operating on u64 chunks for better throughput. |
| 55 | /// |