Handbook
Glossary
hash128-long ( bytes low high -- hash )
Vocabulary
checksums
.
cityhash
.
private
Inputs
bytes
an
object
low
an
object
high
an
object
Outputs
hash
an
object
Definition
USING:
accessors
kernel
math
math.bitwise
sequences
;
IN:
checksums.cityhash.private
::
hash128-long
( bytes low high -- hash )
bytes
length
:>
len len
k1
W*
:>
z high
k1
bitxor
-49
bitroll-64
k1
W*
bytes 0
fetch64
W+
:>
v0 v0 -42
bitroll-64
k1
W*
bytes 8
fetch64
W+
:>
v1 high z
W+
-35
bitroll-64
k1
W*
low
W+
:>
w0 low bytes 88
fetch64
W+
-53
bitroll-64
k1
W*
:>
w1 low high z v0 v1 w0 w1
hash-state
boa
:>
state len 128
/i
2
*
<iota>
[|
i | bytes i 64
*
state
k1
1
hash-round
]
each
state state
x>>
state
v0>>
state
z>>
W+
-49
bitroll-64
k0
W*
W+
>>x
state
y>>
k0
W*
state
w1>>
-37
bitroll-64
W+
>>y
state
z>>
k0
W*
state
w0>>
-27
bitroll-64
~57 more~
;