Tesseract
3.02
|
Go to the source code of this file.
Functions | |
inT32 | hash (inT32 bits, void *key, inT32 keysize) |
Definition at line 30 of file hashfn.cpp.
{ inT32 bitindex; //current bit count uinT32 keybits; //bit buffer uinT32 hcode; //current hash code uinT32 mask; //bit mask mask = (1 << bits) - 1; keysize *= 8; //in bits bitindex = 0; keybits = 0; hcode = 0; do { while (keysize > 0 && bitindex <= 24) { keybits |= *((uinT8 *) key) << bitindex; key = (uinT8 *) key + 1; bitindex += 8; keysize -= 8; } hcode ^= keybits & mask; //key new key keybits >>= bits; } while (keysize > 0); return hcode; //initial hash }