func fnvHash(data []byte) uint64 {
	hash := offset_basis
	if len(data) >= 8 {
		nLen := len(data) - 7
		for i := 0; i < nLen; i++ {
			b := data[i:]
			hash ^= uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 |
				uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56
			hash *= fnv_prime
		}
	} else {
		b := [8]byte{}
		copy(b[8-len(data):], data)
		hash ^= uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 |
			uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56
		hash *= fnv_prime
	}
	return hash
}
// fnvHash mixes in data into mix using the manash fnv method.
fnvHash mixes in data into mix using the manash fnv method.
// fnvHash mixes in data into mix using the manash fnv method .
func fnvHash(data []byte) uint64 {
	hash := offset_basis
	if len(data) >= 8 {
		nLen := len(data) - 7
		for i := 0; i < nLen; i++ {
			b := data[i:]
			hash ^= uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 |
				uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56
			hash *= fnv_prime
		}
	} else {
		b := [8]byte{}
		copy(b[8-len(data):], data)
		hash ^= uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 |
			uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56
		hash *= fnv_prime
	}
	return hash
}
func fnvHash ( data [ ] byte ) uint64 { hash := offset_basis if len ( data ) >= 8 { nLen := len ( data ) - 7 for i := 0 ; i < nLen ; i ++ { b := data [ i : ] hash ^= uint64 ( b [ 7 ] ) | uint64 ( b [ 6 ] ) << 8 | uint64 ( b [ 5 ] ) << 16 | uint64 ( b [ 4 ] ) << 24 | uint64 ( b [ 3 ] ) << 32 | uint64 ( b [ 2 ] ) << 40 | uint64 ( b [ 1 ] ) << 48 | uint64 ( b [ 0 ] ) << 56 hash *= fnv_prime } } else { b := [ 8 ] byte { } copy ( b [ 8 - len ( data ) : ] , data ) hash ^= uint64 ( b [ 7 ] ) | uint64 ( b [ 6 ] ) << 8 | uint64 ( b [ 5 ] ) << 16 | uint64 ( b [ 4 ] ) << 24 | uint64 ( b [ 3 ] ) << 32 | uint64 ( b [ 2 ] ) << 40 | uint64 ( b [ 1 ] ) << 48 | uint64 ( b [ 0 ] ) << 56 hash *= fnv_prime } return hash }
fnvHash mixes in data into mix using the manash fnv method.
fnvHash mixes in data into mix using the manash fnv method .