[Python-Dev] String hash function multiplier

Jeff Epler jepler at unpythonic.net
Tue Apr 13 21:09:54 EDT 2004

With -O2 -mcpu=i686 or newer, gcc uses "imul" for both 100003 and 65599,
rather than shifts and adds.

There may be a few people who care about some other processor, but I
wouldn't listen to them. (the only non-x86 CPU I program for on a weekly
basis doesn't have hardware multiply, but it's also much too small for

The current value goes back a long way:
... all the way back to when Python did string haching instead of

Other than some abstract beauty to 65599, are there some other practical
advantages I'm missing?


More information about the Python-Dev mailing list