hash128-long ( bytes low high -- hash )


Vocabulary
checksums.cityhash.private

Inputs
bytesan object
lowan object
highan object


Outputs
hashan object


Definition


:: 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~ ;