Hi @lemire , good day.
Is it possible to parallelize this loop
|
for (uint32_t i = size - 1; i < size; i--) { |
|
// the hash of the key we insert next |
|
uint64_t hash = reverseOrder[i]; |
|
uint16_t xor2 = binary_fuse16_fingerprint(hash); |
|
uint8_t found = reverseH[i]; |
|
h012[0] = binary_fuse16_hash(0, hash, filter); |
|
h012[1] = binary_fuse16_hash(1, hash, filter); |
|
h012[2] = binary_fuse16_hash(2, hash, filter); |
|
h012[3] = h012[0]; |
|
h012[4] = h012[1]; |
|
filter->Fingerprints[h012[found]] = (uint16_t)( |
|
(uint32_t)xor2 ^ |
|
(uint32_t)filter->Fingerprints[h012[found + 1]] ^ |
|
(uint32_t)filter->Fingerprints[h012[found + 2]]); |
|
} |
? Or the computation of fingerprints is always supposed to be linearly dependent on the previous (iterating in reverse order) hash value ?
Hi @lemire , good day.
Is it possible to parallelize this loop
xor_singleheader/include/binaryfusefilter.h
Lines 733 to 747 in a5a3630