2 * sdbm - ndbm work-alike hashed database library
3 * based on Per-Aake Larson's Dynamic Hashing algorithms. BIT 18 (1978).
4 * author: oz@nexus.yorku.ca
5 * status: public domain. keep it that way.
14 * polynomial conversion ignoring overflows
15 * [this seems to work remarkably well, in fact better
16 * then the ndbm hash function. Replace at your own risk]
21 sdbm_hash(register char *str, register int len)
23 register unsigned long n = 0;
27 #define HASHC n = *str++ + 65599 * n
30 register int loop = (len + 8 - 1) >> 3;
32 switch(len & (8 - 1)) {
35 case 6: HASHC; case 5: HASHC;
36 case 4: HASHC; case 3: HASHC;
37 case 2: HASHC; case 1: HASHC;
44 n = *str++ + 65599 * n;