code: public static long murmur(final BitVector bv, final long prefixLength, final long[] state) {
  		final long precomputedUpTo = prefixLength - prefixLength % Long.SIZE;
  		long h = state[(int) (precomputedUpTo / Long.SIZE)], k;
  
  		if (prefixLength > precomputedUpTo) {
  			k = bv.getLong(precomputedUpTo, prefixLength);
  			k *= M;
  			k ^= k >>> R;
  			k *= M;
  
  			h ^= k;
  			h *= M;
  		}
  
  		k = prefixLength;
  		k *= M;
  		k ^= k >>> R;
  		k *= M;
  
  		h ^= k;
  		h *= M;
  		return h;
  
  	}
docs: Constant-time MurmurHash 64-bit hashing for any prefix.
  
  @param bv
  a bit vector.
  @param prefixLength
  the length of the prefix of <code>bv</code> over which the
  hash must be computed.
  @param state
  the state array returned by
  {@link #preprocessMurmur(BitVector, long)}.
  @return the hash for the prefix of <code>bv</code> or
  <code>prefixLength</code> bits.