Some question concerning Bob Jenkins' functions
hashword(uint32_t*, size_t), hashlittle(uint8_t*, size_t) and
hashbig(uint8_t*, size_t) in lookup3.c.
Let k1 by a key: uint8_t* k1; strlen(k1)%sizeof(uint32_t) == 0.
1. hashlittle(k1) produces the same value on Little-Endian and Big-
Endian machines.
Let hashlittle(k1) be == L1.
2. hashbig(k1) produces the same value on Little-Endian and Big-Endian
machines.
Let hashbig(k1) be == B1.
L1 != B1
3. hashword((uint32_t*)k1) produces
* L1 on LittleEndian machine and
* B1 on BigEndian machine.
Is it possible to create two new hash functions on basis of
hashword():
i) hashword_little () that produces L1 on Little-Endian and Big-
Endian machines;
ii) hashword_big () that produces B1 on Little-Endian and Big-
Endian machines
?
Alex Vinokur
email: alex DOT vinokur AT gmail DOT com
http://mathforum.org/library/view/10978.html
http://sourceforge.net/users/alexvn