Re: Good hash for pointers

Liste des GroupesRevenir à l c 
Sujet : Re: Good hash for pointers
De : tr.17687 (at) *nospam* z991.linuxsc.com (Tim Rentsch)
Groupes : comp.lang.c
Date : 16. Jun 2024, 04:32:23
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <86h6dtlfzs.fsf@linuxsc.com>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
User-Agent : Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Michael S <already5chosen@yahoo.com> writes:

On Sun, 09 Jun 2024 18:31:15 -0700
Tim Rentsch <tr.17687@z991.linuxsc.com> wrote:
>
Malcolm McLean <malcolm.arthur.mclean@gmail.com> writes:
>
On 09/06/2024 12:35, Bonita Montero wrote:
>
uint64_t MichaelsHash( uint64_t key )
{
 __m128i xkey = _mm_set_epi64x( key, 42 );
 using bar_t = pair<uint64_t, uint64_t>;
 static bar_t const bars[8] =
 {
  { 0xBB09BBCC90B24BF2, 0x825C622FF2792A01 },
  { 0x94F0535CB06D4060, 0x939C756246DBFD1D },
  { 0x5B835E01A7E14CA1, 0xAC2BDAFC023CDD06 },
  { 0xE0B6A4735B774AEC, 0x9CAFB43E7DDE494C },
 };
 for( bar_t const &bar : bars )
  xkey = _mm_aesenc_si128( xkey, _mm_set_epi64x( bar.second,
bar.first ) );
 return xkey.m128i_u64[0];
}
>
Now the code is about six times faster and I get a eight times
speedup over single-threaded processing with the same code.  Of
course the results are still the same.
>
I have your permission to drop that in?
>
Note that this code was cribbed from Michael S.
>
I don't permit to use my name in variant, modified by Bonita.
I prefer if my name is not used even on my own variant.
This code was never intended for production use.  It is intended for use
as reference, as something that is "certainly random enough and then
many billions times more than enough".  It is much much slower than
necessary for non-crypto hash.  [...]

The problem with using the posted AES code (of either version) is
that it is not sufficiently portable nor does it comply with C90
rules.  How fast or slow the code runs might be a reason not to
use it, but it is not necessarily a reason not to use it - that
depends on a variety of factors, not the least of which is how
fast it actually is in the environments under consideration.

If you
think it's important to ask permission, I think he is
the one you should be asking.
>
By the way, I thought you were looking for code that works
in standard C, and acceptable under C90 rules.  Have you
changed your mind about that?  The code above is a far
cry from C, let alone C90.
>
Exactly.
I think that all methods that are both good and fast rely on 64-bit
unsigned integer arithmetic.  And it seems to me that C90 does not
provide it in portable manner.
So, under portable C90 constraints one has to choose between good and
fast.

I am confident that C90 can support defining a suitable hash
function portable to any system that has a C90 implementation
appropriate to that system's environment.

That said, unless some sort of objective measure is given for the
terms good and fast, the last quoted sentence is pretty much
meaningless.

Date Sujet#  Auteur
4 Jun 24 * Re: Good hash for pointers32Michael S
5 Jun 24 +* Re: Good hash for pointers4Bonita Montero
5 Jun 24 i`* Re: Good hash for pointers3Michael S
5 Jun 24 i `* Re: Good hash for pointers2Bonita Montero
5 Jun 24 i  `- Re: Good hash for pointers1Michael S
5 Jun 24 +* Re: Good hash for pointers17Tim Rentsch
5 Jun 24 i+* AES problem (was: Good hash for pointers)2Michael S
6 Jun 24 ii`- Re: AES problem (was: Good hash for pointers)1Tim Rentsch
5 Jun 24 i+* Re: Good hash for pointers11Michael S
6 Jun 24 ii`* Re: Good hash for pointers10Tim Rentsch
6 Jun 24 ii `* Re: Good hash for pointers9Michael S
17 Jun 24 ii  `* Re: Good hash for pointers8Tim Rentsch
17 Jun 24 ii   `* Re: Good hash for pointers7Michael S
18 Jun 24 ii    `* Re: Good hash for pointers6Tim Rentsch
18 Jun 24 ii     +* Re: Good hash for pointers2Keith Thompson
19 Jun 24 ii     i`- Re: Good hash for pointers1Tim Rentsch
19 Jun 24 ii     `* Re: Good hash for pointers3James Kuyper
19 Jun 24 ii      +- Re: Good hash for pointers1Keith Thompson
23 Jun 24 ii      `- Re: Good hash for pointers1Tim Rentsch
6 Jun 24 i`* Re: Good hash for pointers3Michael S
16 Jun 24 i `* Re: Good hash for pointers2Tim Rentsch
16 Jun 24 i  `- Re: Good hash for pointers1Chris M. Thomasson
7 Jun 24 `* Re: Good hash for pointers10Bonita Montero
9 Jun 24  `* Re: Good hash for pointers9Bonita Montero
9 Jun 24   +* Re: Good hash for pointers2Richard Harnden
9 Jun 24   i`- Re: Good hash for pointers1Bonita Montero
10 Jun 24   `* Re: Good hash for pointers6Malcolm McLean
10 Jun 24    +* Re: Good hash for pointers4Tim Rentsch
10 Jun 24    i`* Re: Good hash for pointers3Michael S
10 Jun 24    i +- Re: Good hash for pointers1Bonita Montero
16 Jun 24    i `- Re: Good hash for pointers1Tim Rentsch
10 Jun 24    `- Re: Good hash for pointers1Bonita Montero

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal