/** * Special-purpose version for hashing a single long value. Value is treated as little-endian */ public static int hash(long input) { int low = (int) input; int high = (int) (input >>> 32); int k1 = mixK1(low); int h1 = mixH1(DEFAULT_SEED, k1); k1 = mixK1(high); h1 = mixH1(h1, k1); return fmix(h1, SizeOf.SIZE_OF_LONG); }
/** * Special-purpose version for hashing a single long value. Value is treated as little-endian */ public static int hash(long input) { int low = (int) input; int high = (int) (input >>> 32); int k1 = mixK1(low); int h1 = mixH1(DEFAULT_SEED, k1); k1 = mixK1(high); h1 = mixH1(h1, k1); return fmix(h1, SizeOf.SIZE_OF_LONG); }
/** * Special-purpose version for hashing a single int value. Value is treated as little-endian */ public static int hash(int input) { int k1 = mixK1(input); int h1 = mixH1(DEFAULT_SEED, k1); return fmix(h1, SizeOf.SIZE_OF_INT); }
/** * Special-purpose version for hashing a single int value. Value is treated as little-endian */ public static int hash(int input) { int k1 = mixK1(input); int h1 = mixH1(DEFAULT_SEED, k1); return fmix(h1, SizeOf.SIZE_OF_INT); }
@SuppressFBWarnings({"SF_SWITCH_NO_DEFAULT", "SF_SWITCH_FALLTHROUGH"}) public static int hash(int seed, Slice data, int offset, int length) { final int fastLimit = offset + length - SizeOf.SIZE_OF_INT + 1; int h1 = seed; int current = offset; while (current < fastLimit) { int k1 = mixK1(data.getInt(current)); current += SizeOf.SIZE_OF_INT; h1 = mixH1(h1, k1); } int k1 = 0; switch (length & 3) { case 3: k1 ^= ((int) data.getUnsignedByte(current + 2)) << 16; case 2: k1 ^= ((int) data.getUnsignedByte(current + 1)) << 8; case 1: k1 ^= ((int) data.getUnsignedByte(current + 0)) << 0; } h1 ^= mixK1(k1); return fmix(h1, length); }
@SuppressFBWarnings({"SF_SWITCH_NO_DEFAULT", "SF_SWITCH_FALLTHROUGH"}) public static int hash(int seed, Slice data, int offset, int length) { final int fastLimit = offset + length - SizeOf.SIZE_OF_INT + 1; int h1 = seed; int current = offset; while (current < fastLimit) { int k1 = mixK1(data.getInt(current)); current += SizeOf.SIZE_OF_INT; h1 = mixH1(h1, k1); } int k1 = 0; switch (length & 3) { case 3: k1 ^= ((int) data.getUnsignedByte(current + 2)) << 16; case 2: k1 ^= ((int) data.getUnsignedByte(current + 1)) << 8; case 1: k1 ^= ((int) data.getUnsignedByte(current + 0)) << 0; } h1 ^= mixK1(k1); return fmix(h1, length); }