Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Dec 2007 20:50:14 +0000 (GMT)
From:      "Edward B. DREGER" <eddy+public+spam@noc.everquick.net>
To:        Garrett Cooper <youshi10@u.washington.edu>
Cc:        hackers@freebsd.org
Subject:   Re: BSD license compatible hash algorithm?
Message-ID:  <Pine.LNX.4.62.0712292039410.21327@pop.ict1.everquick.net>
In-Reply-To: <7F9D2F63-B5E6-41DE-843A-8D673C2DC88E@u.washington.edu>
References:  <5950EE0C-383D-4D6B-9991-A0DEABD2ADE4@u.washington.edu> <7F9D2F63-B5E6-41DE-843A-8D673C2DC88E@u.washington.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
GC> Date: Thu, 27 Dec 2007 16:34:32 -0800
GC> From: Garrett Cooper

GC> On Dec 27, 2007, at 4:30 PM, Garrett Cooper wrote:
GC>
GC> > Just wondering if anyone knew of a good BSD license compatible
GC> > key-based hash placement / retrieval algorithm that was available
GC> > anywhere.
GC>
GC> 1. It needs to be in C, not C++.

Although I'm not directly answering your question...


GC> 2. I meant hash table / bucket when I said "hash" in the subject.

...have you explored [order-preserving] minimal perfect hash functions?

perfect_hash = ( hash1[x] + hash2[x] ) % entry_count ;

The "trick" lies in computing hash1[] and hash2[].  A Google search for

	==> chm92 (hash|hashing) <==

will get you started.


Eddy
--
Everquick Internet - http://www.everquick.net/
A division of Brotsman & Dreger, Inc. - http://www.brotsman.com/
Bandwidth, consulting, e-commerce, hosting, and network building
Phone: +1 785 865 5885 Lawrence and [inter]national
Phone: +1 316 794 8922 Wichita
________________________________________________________________________
DO NOT send mail to the following addresses:
davidc@brics.com -*- jfconmaapaq@intc.net -*- sam@everquick.net
Sending mail to spambait addresses is a great way to get blocked.
Ditto for broken OOO autoresponders and foolish AV software backscatter.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.62.0712292039410.21327>