private long hash(final float[] a,final int l,final int k){
  final int[] w=weight[k];
  long h=init[k];
  int i=l;
  while (i-- != 0)   h^=(h << 5) + Float.floatToRawIntBits(a[i]) * w[i % NUMBER_OF_WEIGHTS] + (h >>> 2);
  return (h & 0x7FFFFFFFFFFFFFFFL) % m;
}

private long hash ( final float [ ] a , final int l , final int k ) { final int [ ] w = weight [ k ] ; long h = init [ k ] ; int i = l ; while ( i -- != 0 ) h ^= ( h << 5 ) + Float . floatToRawIntBits ( a [ i ] ) * w [ i % NUMBER_OF_WEIGHTS ] + ( h > > > 2 ) ; return ( h & 0x7FFFFFFFFFFFFFFFL ) % m ; }
hashes the given float array with the given hash function .
