private int h1(long y) {
    int x = (int) ((((y >>> 32) ^ y)) & 0xFFFFFFFF);
    x = (x + salt[0]) + (x << 12);
    x = (x ^ salt[1]) ^ (x >> 19);
    x = (x + salt[2]) + (x << 5);
    x = (x + salt[3]) ^ (x << 9);
    x = (x + salt[4]) + (x << 3);
    x = (x ^ salt[5]) ^ (x >> 16);

    // Return value modulo n but always in the positive range (0..n-1).
    // And with the mask to zero the sign bit to make the input to mod positive
    // so the output will definitely be positive.
    return (x & 0x7FFFFFFF) % n;
  }
Variation of Robert Jenkins' hash function.
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CuckooSetLong.java