On Nov 15, 10:40 am, Alex Vinokur <[EMAIL PROTECTED]> wrote: [snip] > I have 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. > =================================== > --------------------- > The question is: is it possible to change hashword() to get > * L1 on Little-Endian machine and > * B1 on Big-Endian machine > ?
Sorry, it should be as follows: 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 ? ==================================== Thanks. Alex Vinokur email: alex DOT vinokur AT gmail DOT com http://mathforum.org/library/view/10978.html http://sourceforge.net/users/alexvn ---------------------------(end of broadcast)--------------------------- TIP 7: You can help support the PostgreSQL project by donating at http://www.postgresql.org/about/donate