# hi, any JS or BigNum-math expert around ? I have a mix-function from RapidHash # in TS/JS : function rapid_mix_fast(a: bigint, b: bigint): bigint { const m = a  b; return BigInt.asUintN(64, m) ^ (m >> 64n); }``` and in Nim : # nim# proc mixFast( a,b :uint64 ) :uint64 = # let # hiBits :uint64 = 0'u64 # m = mulx_u64(a,b, hiBits.addr) # loBits = a  b # debugEcho " hiBits-", hiBits, " m-",m , ", loBits-",loBits # result = (m xor hiBits) # echo mixFast( 34'u64, 1647675675699997562'u64) For given `a` and `b`the lower 64-bits `loBits` are not the same ? The intrinsic `mulx_u64` writes the upper 64-bits to `hiBits` - which gives `3`on JS ann Nim. The lower part have a diff of `4145` ?