private static long update(long hash, long value) { long temp = hash ^ mix(0, value); return temp * PRIME64_1 + PRIME64_4; }
private static long update(long hash, long value) { long temp = hash ^ mix(0, value); return temp * PRIME64_1 + PRIME64_4; }
private int updateBody(Object base, long address, int length) { int remaining = length; while (remaining >= 32) { v1 = mix(v1, unsafe.getLong(base, address)); v2 = mix(v2, unsafe.getLong(base, address + 8)); v3 = mix(v3, unsafe.getLong(base, address + 16)); v4 = mix(v4, unsafe.getLong(base, address + 24)); address += 32; remaining -= 32; } int index = length - remaining; bodyLength += index; return index; }
private int updateBody(Object base, long address, int length) { int remaining = length; while (remaining >= 32) { v1 = mix(v1, unsafe.getLong(base, address)); v2 = mix(v2, unsafe.getLong(base, address + 8)); v3 = mix(v3, unsafe.getLong(base, address + 16)); v4 = mix(v4, unsafe.getLong(base, address + 24)); address += 32; remaining -= 32; } int index = length - remaining; bodyLength += index; return index; }
private static long updateTail(long hash, long value) { long temp = hash ^ mix(0, value); return rotateLeft(temp, 27) * PRIME64_1 + PRIME64_4; }
private static long updateTail(long hash, long value) { long temp = hash ^ mix(0, value); return rotateLeft(temp, 27) * PRIME64_1 + PRIME64_4; }
private static long updateBody(long seed, Object base, long address, int length) { long v1 = seed + PRIME64_1 + PRIME64_2; long v2 = seed + PRIME64_2; long v3 = seed; long v4 = seed - PRIME64_1; int remaining = length; while (remaining >= 32) { v1 = mix(v1, unsafe.getLong(base, address)); v2 = mix(v2, unsafe.getLong(base, address + 8)); v3 = mix(v3, unsafe.getLong(base, address + 16)); v4 = mix(v4, unsafe.getLong(base, address + 24)); address += 32; remaining -= 32; } long hash = rotateLeft(v1, 1) + rotateLeft(v2, 7) + rotateLeft(v3, 12) + rotateLeft(v4, 18); hash = update(hash, v1); hash = update(hash, v2); hash = update(hash, v3); hash = update(hash, v4); return hash; }
private static long updateBody(long seed, Object base, long address, int length) { long v1 = seed + PRIME64_1 + PRIME64_2; long v2 = seed + PRIME64_2; long v3 = seed; long v4 = seed - PRIME64_1; int remaining = length; while (remaining >= 32) { v1 = mix(v1, unsafe.getLong(base, address)); v2 = mix(v2, unsafe.getLong(base, address + 8)); v3 = mix(v3, unsafe.getLong(base, address + 16)); v4 = mix(v4, unsafe.getLong(base, address + 24)); address += 32; remaining -= 32; } long hash = rotateLeft(v1, 1) + rotateLeft(v2, 7) + rotateLeft(v3, 12) + rotateLeft(v4, 18); hash = update(hash, v1); hash = update(hash, v2); hash = update(hash, v3); hash = update(hash, v4); return hash; }