private static long hashLength0to16(byte[] bytes, int offset, int length) { if (length >= 8) { long mul = K2 + length * 2; long a = load64(bytes, offset) + K2; long b = load64(bytes, offset + length - 8); long c = rotateRight(b, 37) * mul + a; long d = (rotateRight(a, 25) + b) * mul; return hashLength16(c, d, mul); } if (length >= 4) { long mul = K2 + length * 2; long a = load32(bytes, offset) & 0xFFFFFFFFL; return hashLength16(length + (a << 3), load32(bytes, offset + length - 4) & 0xFFFFFFFFL, mul); } if (length > 0) { byte a = bytes[offset]; byte b = bytes[offset + (length >> 1)]; byte c = bytes[offset + (length - 1)]; int y = (a & 0xFF) + ((b & 0xFF) << 8); int z = length + ((c & 0xFF) << 2); return shiftMix(y * K2 ^ z * K0) * K2; } return K2; }
private static long hashLength0to16(byte[] bytes, int offset, int length) { if (length >= 8) { long mul = K2 + length * 2; long a = load64(bytes, offset) + K2; long b = load64(bytes, offset + length - 8); long c = rotateRight(b, 37) * mul + a; long d = (rotateRight(a, 25) + b) * mul; return hashLength16(c, d, mul); } if (length >= 4) { long mul = K2 + length * 2; long a = load32(bytes, offset) & 0xFFFFFFFFL; return hashLength16(length + (a << 3), load32(bytes, offset + length - 4) & 0xFFFFFFFFL, mul); } if (length > 0) { byte a = bytes[offset]; byte b = bytes[offset + (length >> 1)]; byte c = bytes[offset + (length - 1)]; int y = (a & 0xFF) + ((b & 0xFF) << 8); int z = length + ((c & 0xFF) << 2); return shiftMix(y * K2 ^ z * K0) * K2; } return K2; }
private static long hashLength0to16(byte[] bytes, int offset, int length) { if (length >= 8) { long mul = K2 + length * 2; long a = load64(bytes, offset) + K2; long b = load64(bytes, offset + length - 8); long c = rotateRight(b, 37) * mul + a; long d = (rotateRight(a, 25) + b) * mul; return hashLength16(c, d, mul); } if (length >= 4) { long mul = K2 + length * 2; long a = load32(bytes, offset) & 0xFFFFFFFFL; return hashLength16(length + (a << 3), load32(bytes, offset + length - 4) & 0xFFFFFFFFL, mul); } if (length > 0) { byte a = bytes[offset]; byte b = bytes[offset + (length >> 1)]; byte c = bytes[offset + (length - 1)]; int y = (a & 0xFF) + ((b & 0xFF) << 8); int z = length + ((c & 0xFF) << 2); return shiftMix(y * K2 ^ z * K0) * K2; } return K2; }
@SuppressWarnings("ConstantOverflow") long y = seed * K1 + 113; long z = shiftMix(y * K2 + 113) * K2; long[] v = new long[2]; long[] w = new long[2]; weakHashLength32WithSeeds(bytes, offset + 32, z + w[1], y + load64(bytes, offset + 16), w); return hashLength16( hashLength16(v[0], w[0], mul) + shiftMix(y) * K0 + x, hashLength16(v[1], w[1], mul) + z, mul);
@SuppressWarnings("ConstantOverflow") long y = seed * K1 + 113; long z = shiftMix(y * K2 + 113) * K2; long[] v = new long[2]; long[] w = new long[2]; weakHashLength32WithSeeds(bytes, offset + 32, z + w[1], y + load64(bytes, offset + 16), w); return hashLength16( hashLength16(v[0], w[0], mul) + shiftMix(y) * K0 + x, hashLength16(v[1], w[1], mul) + z, mul);
@SuppressWarnings("ConstantOverflow") long y = seed * K1 + 113; long z = shiftMix(y * K2 + 113) * K2; long[] v = new long[2]; long[] w = new long[2]; weakHashLength32WithSeeds(bytes, offset + 32, z + w[1], y + load64(bytes, offset + 16), w); return hashLength16( hashLength16(v[0], w[0], mul) + shiftMix(y) * K0 + x, hashLength16(v[1], w[1], mul) + z, mul);
private static long hashLength0to16(byte[] bytes, int offset, int length) { if (length >= 8) { long mul = K2 + length * 2; long a = load64(bytes, offset) + K2; long b = load64(bytes, offset + length - 8); long c = rotateRight(b, 37) * mul + a; long d = (rotateRight(a, 25) + b) * mul; return hashLength16(c, d, mul); } if (length >= 4) { long mul = K2 + length * 2; long a = load32(bytes, offset) & 0xFFFFFFFFL; return hashLength16(length + (a << 3), load32(bytes, offset + length - 4) & 0xFFFFFFFFL, mul); } if (length > 0) { byte a = bytes[offset]; byte b = bytes[offset + (length >> 1)]; byte c = bytes[offset + (length - 1)]; int y = (a & 0xFF) + ((b & 0xFF) << 8); int z = length + ((c & 0xFF) << 2); return shiftMix(y * K2 ^ z * K0) * K2; } return K2; }
private static long hashLength0to16(byte[] bytes, int offset, int length) { if (length >= 8) { long mul = K2 + length * 2; long a = load64(bytes, offset) + K2; long b = load64(bytes, offset + length - 8); long c = rotateRight(b, 37) * mul + a; long d = (rotateRight(a, 25) + b) * mul; return hashLength16(c, d, mul); } if (length >= 4) { long mul = K2 + length * 2; long a = load32(bytes, offset) & 0xFFFFFFFFL; return hashLength16(length + (a << 3), load32(bytes, offset + length - 4) & 0xFFFFFFFFL, mul); } if (length > 0) { byte a = bytes[offset]; byte b = bytes[offset + (length >> 1)]; byte c = bytes[offset + (length - 1)]; int y = (a & 0xFF) + ((b & 0xFF) << 8); int z = length + ((c & 0xFF) << 2); return shiftMix(y * K2 ^ z * K0) * K2; } return K2; }
@SuppressWarnings("ConstantOverflow") long y = seed * K1 + 113; long z = shiftMix(y * K2 + 113) * K2; long[] v = new long[2]; long[] w = new long[2]; weakHashLength32WithSeeds(bytes, offset + 32, z + w[1], y + load64(bytes, offset + 16), w); return hashLength16( hashLength16(v[0], w[0], mul) + shiftMix(y) * K0 + x, hashLength16(v[1], w[1], mul) + z, mul);
@SuppressWarnings("ConstantOverflow") long y = seed * K1 + 113; long z = shiftMix(y * K2 + 113) * K2; long[] v = new long[2]; long[] w = new long[2]; weakHashLength32WithSeeds(bytes, offset + 32, z + w[1], y + load64(bytes, offset + 16), w); return hashLength16( hashLength16(v[0], w[0], mul) + shiftMix(y) * K0 + x, hashLength16(v[1], w[1], mul) + z, mul);