| From: | Alex Vinokur <alexvn(at)users(dot)sourceforge(dot)net> |
|---|---|
| To: | pgsql-patches(at)postgresql(dot)org |
| Subject: | Re: hashlittle(), hashbig(), hashword() and endianness |
| Date: | 2007-11-15 10:56:21 |
| Message-ID: | 4a96bb23-fb44-4285-9b46-093efc483be1@w28g2000hsf.googlegroups.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-patches |
On Nov 15, 10:40 am, Alex Vinokur <ale(dot)(dot)(dot)(at)users(dot)sourceforge(dot)net>
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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Heikki Linnakangas | 2007-11-15 11:23:44 | Re: hashlittle(), hashbig(), hashword() and endianness |
| Previous Message | Alex Vinokur | 2007-11-15 08:40:19 | hashlittle(), hashbig(), hashword() and endianness |