[squeak-dev] The Trunk: Kernel-dtl.1096.mcz

Chris Muller asqueaker at gmail.com
Thu Apr 20 19:47:02 UTC 2017


Okay, but it's a given that hash functions are desired to be fast, so
one can always assume optimized code in them.  I was hoping for a
comment that would refer to the origin of this hash function, so one
could research and possibly understand it...


On Tue, Apr 18, 2017 at 10:59 AM,  <commits at source.squeak.org> wrote:
> David T. Lewis uploaded a new version of Kernel to project The Trunk:
> http://source.squeak.org/trunk/Kernel-dtl.1096.mcz
>
> ==================== Summary ====================
>
> Name: Kernel-dtl.1096
> Author: dtl
> Time: 18 April 2017, 11:59:08.257358 am
> UUID: 877ab97f-9ebe-4405-af31-fe9caab25eb6
> Ancestors: Kernel-eem.1095
>
> SmallInteger>>hashMultiply comment provided by Andres Valloud
>
> =============== Diff against Kernel-eem.1095 ===============
>
> Item was changed:
>   ----- Method: SmallInteger>>hashMultiply (in category 'bit manipulation') -----
>   hashMultiply
> +       "Multiply by 1664525 mod 2^28 without overflowing into large integers."
>         | low |
> -
>         low := self bitAnd: 16383.
>         ^(16r260D * low + ((16r260D * (self bitShift: -14) + (16r0065 * low) bitAnd: 16383) * 16384))
>                         bitAnd: 16r0FFFFFFF!
>
>


More information about the Squeak-dev mailing list