Function ADS::hash_fibonacci

Function Documentation

std::uint64_t ADS::hash_fibonacci(std::uint64_t i, int p)

the multiplication with integers for m = 2^p, w = 64: the p most significant bits of the 64 least significant ones of i s, with s = floor( C 2^64 ); it is floor( m frac( i s / 2^64 ) ), which differs from the exact floor( m frac( C i ) ) by about m i / 2^64

Pre:

1 <= p <= 63

Post:

the result is below 2^p