GNU bug report logs - #50093
djb2 correction

Previous Next

Package: grep;

Reported by: Jim Meyering <jim <at> meyering.net>

Date: Tue, 17 Aug 2021 10:33:02 UTC

Severity: normal

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


Message #8 received at 50093 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Jim Meyering <jim <at> meyering.net>
Cc: alex.murray <at> canonical.com, 50093 <at> debbugs.gnu.org
Subject: Re: bug#50093: djb2 correction
Date: Tue, 17 Aug 2021 14:04:26 -0700
[Message part 1 (text/plain, inline)]
On 8/17/21 3:32 AM, Jim Meyering wrote:
> -  size_t h = 0;
> +  size_t h = 5381;

I expect DJB chose that number because of the primeth recurrence 
sequence <https://oeis.org/A007097>:

2 is 1st prime.
3 is 2nd prime.
5 is 3rd prime.
11 is 5th prime.
31 is 11th prime.
127 is 31st prime.
709 is 127th prime.
5381 is 709th prime.
52711 is 5381st prime.
...

Although 5381 is the largest number in this sequence that can fit into 
'int' in a portable C program, and that's probably why DJB chose 5381, 
we're not limited to such small values here.

How about the attached patch instead?
[0001-grep-djb2-correction.patch (text/x-patch, attachment)]

This bug report was last modified 3 years and 281 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.