diff --git a/arvo/hoon.hoon b/arvo/hoon.hoon index d072dc1910..6c23cbc272 100644 --- a/arvo/hoon.hoon +++ b/arvo/hoon.hoon @@ -1037,35 +1037,46 @@ :: section 2cD, insecure hashing :: :: ++ fnv |=(a=@ (end 5 1 (mul 16.777.619 a))) :: FNV scrambler -++ mur - ~/ %mur - |= [key=@ syd=@] - ?> (lte (met 5 syd) 1) - =+ ^= row - |= [a=@ b=@] - %+ con - (end 5 1 (lsh 0 a b)) - (rsh 0 (sub 32 a) b) - =+ mow=|=([a=@ b=@] (end 5 1 (mul a b))) - =+ len=(met 5 key) - =- =. goc (mix goc len) - =. goc (mix goc (rsh 4 1 goc)) - =. goc (mow goc 0x85eb.ca6b) - =. goc (mix goc (rsh 0 13 goc)) - =. goc (mow goc 0xc2b2.ae35) - (mix goc (rsh 4 1 goc)) - ^= goc - =+ [inx=0 goc=syd] - |- ^- @ - ?: =(inx len) goc - =+ kop=(cut 5 [inx 1] key) - =. kop (mow kop 0xcc9e.2d51) - =. kop (row 15 kop) - =. kop (mow kop 0x1b87.3593) - =. goc (mix kop goc) - =. goc (row 13 goc) - =. goc (end 5 1 (add 0xe654.6b64 (mul 5 goc))) - $(inx +(inx)) +:: +++ mum :: mug with murmur3 + ~/ %mum + |= a=* + |^ (trim ?@(a a (mix $(a -.a) (mix 0x7fff.ffff $(a +.a))))) + ++ spec :: standard murmur3 + |= [syd=@ key=@] + ?> (lte (met 5 syd) 1) + =+ ^= row + |= [a=@ b=@] + (con (end 5 1 (lsh 0 a b)) (rsh 0 (sub 32 a) b)) + =+ mow=|=([a=@ b=@] (end 5 1 (mul a b))) + =+ len=(met 5 key) + =- =. goc (mix goc len) + =. goc (mix goc (rsh 4 1 goc)) + =. goc (mow goc 0x85eb.ca6b) + =. goc (mix goc (rsh 0 13 goc)) + =. goc (mow goc 0xc2b2.ae35) + (mix goc (rsh 4 1 goc)) + ^= goc + =+ [inx=0 goc=syd] + |- ^- @ + ?: =(inx len) goc + =+ kop=(cut 5 [inx 1] key) + =. kop (mow kop 0xcc9e.2d51) + =. kop (row 15 kop) + =. kop (mow kop 0x1b87.3593) + =. goc (mix kop goc) + =. goc (row 13 goc) + =. goc (end 5 1 (add 0xe654.6b64 (mul 5 goc))) + $(inx +(inx)) + :: + ++ trim :: 31-bit nonzero + |= key=@ + =+ syd=0xcafe.babe + |- ^- @ + =+ haz=(spec syd key) + =+ ham=(mix (rsh 0 31 haz) (end 0 31 haz)) + ?.(=(0 ham) ham $(syd +(syd))) + -- :: ++ mug :: 31bit nonzero FNV1a ~/ %mug diff --git a/main/pub/src/doc/say/arvo/5.md b/main/pub/src/doc/say/arvo/5.md index bf8fb25be0..b577e8ed53 100644 --- a/main/pub/src/doc/say/arvo/5.md +++ b/main/pub/src/doc/say/arvo/5.md @@ -238,7 +238,7 @@ we put: :::: /hoon/three/mad/fab/pub :: /= hello /: /===/pub/fab/mad/res/hello /hymn/ - : + :: :::: ~tasfyn-partyv :: ::