public void addBytes(byte[] val, int offset, int length) {
    // We use the trick mentioned in "Less Hashing, Same Performance: Building a Better Bloom Filter"
    // by Kirsch et.al. From abstract 'only two hash functions are necessary to effectively
    // implement a Bloom filter without any loss in the asymptotic false positive probability'

    // Lets split up 64-bit hashcode into two 32-bit hash codes and employ the technique mentioned
    // in the above paper
    long hash64 = val == null ? Murmur3.NULL_HASHCODE :
      Murmur3.hash64(val, offset, length);
    addHash(hash64);
  }
A constructor to support rebuilding the BloomFilter from a serialized representation.
@param bits BloomK sketch data in form of array of longs.
@param numFuncs  Number of functions called as K.
storage-api/src/java/org/apache/hive/common/util/BloomKFilter.java