Hash functions

Kevin Ryde user42 at zip.com.au
Thu May 6 00:20:35 CEST 2004

Piotr Wyderski <wyderski at ii.uni.wroc.pl> writes:
> unsigned int mpX_hash(mpX_t p), where X is one of {z,f,q}.

A difficulty would be what algorithm to pick, it'd affect what sort of
values might hash together, and what would be certain of being
distinct.  Perhaps there should be a "modulus" to request a value in a
given range too.  Would also need to think whether results should be
the same on all systems (limb size independent) and whether to remain
fixed across gmp versions.

>         static inline unsigned int hash(const mpf_class& p) {

I guess you might want to work the exponent into it too.

>                 h ^= p.get_mpf_t()->_mp_d[i];

Don't forget a limb can be a long long.

More information about the gmp-discuss mailing list