Java Hash Calculate hash64to32(long v)

Here you can find the source of hash64to32(long v)

Description

hashto

License

Apache License

Declaration

static int hash64to32(long v) 

Method Source Code

//package com.java2s;
/*//ww  w.  ja v  a  2 s  .co  m
 *  Copyright 2011-2015 Cojen.org
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

public class Main {
    static int hash64to32(long v) {
        v = v = (v << 18) - v - 1; // (~v) + (v << 18)
        v = v ^ (v >>> 31);
        v = (v + (v << 2)) + (v << 4); // v * 21
        v = v ^ (v >>> 11);
        v = v + (v << 6);
        v = v ^ (v >>> 22);
        return (int) v;
    }
}

Related

  1. hash3(int hash, Object x, Object y, Object z)
  2. Hash32(byte[] v, int iStart, int iLength)
  3. hash32shiftmult(int k)
  4. hash64(final byte[] data, int length)
  5. hash64To32(long lg)
  6. hashAdd(final int left, final int right)
  7. hashAll(Object[] array)
  8. hasHangulJongSung(char ch)
  9. hashArray(int h, Object[] a)