-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Ivan Voras wrote: > Garrett Cooper wrote: > >> Looks promising, but how difficult would it be to port the code >> to other platforms (Win32 for instance?). > > The hash algorithm itself as implemented in hash.h is pretty much a > text-book hash algorithm (D.J.Bernstein's): > > #ifndef HASHINIT > #define HASHINIT 5381 > #define HASHSTEP(x,c) (((x << 5) + x) + (c)) > #endif > > /* > * Return a 32-bit hash of the given buffer. The init > * value should be 0, or the previous hash value to extend > * the previous hash. > */ > static __inline uint32_t > hash32_buf(const void *buf, size_t len, uint32_t hash) > { > const unsigned char *p = buf; > > while (len--) > hash = HASHSTEP(hash, *p++); > > return hash; > } > > It apparently has some weaknesses if used on binary (non-text) data > but I don't see why it wouldn't work on Windows.
All hashs have issues with pooling.... see http://www.burtleburtle.net/bob/hash/index.html... btw it is a old wives tale that the number of buckets should be prime (mostly based on the very weak implementation Knuth offered) - -- Aryeh M. Friedman FloSoft Systems http://www.flosoft-systems.com Developer, not business, friendly -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.4 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHdO8mzIOMjAek4JIRApb6AJ93JNR1sIPg6mH4TrOCEUn2jfdinwCeI/UO IQLG9bX1N5PHxsSALDS7dzw= =saZk -----END PGP SIGNATURE----- _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"