All pastes #411499 Raw Edit

Hash functions

public cpp v1 · immutable
#411499 ·published 2007-03-27 02:24 UTC
rendered paste body
reversejenkins(string[]){	// Based on a Jenkins hash	new		dwHash = 0,		pos = strlen(string);	while (pos--)	{		dwHash += string[pos];		dwHash += (dwHash << 10);		dwHash ^= (dwHash >> 6);	}	dwHash += (dwHash << 3);	dwHash ^= (dwHash >> 11);	dwHash += (dwHash << 15);	return dwHash;}jenkins(string[]){	// Based on a Jenkins hash	new		dwHash = 0,		len = strlen(string),		pos = 0,		c;	while (pos < len)	{		c = string[pos];		dwHash += (c > 'Z' || c < 'A') ? (c) : (c | 0x20); // Lower case		dwHash += (dwHash << 10);		dwHash ^= (dwHash >> 6);		pos++;	}	dwHash += (dwHash << 3);	dwHash ^= (dwHash >> 11);	dwHash += (dwHash << 15);	return dwHash;}bernstein(string[]){	new		hash = -1,		i = 0,		j = strlen(string);	while (i < j)	{		hash *= 33;		hash += string[i];		i++;	}}