Ideal Hash Array Mapped Tries: an Erlang functional datatype.
Go to file
2013-11-15 13:43:54 -05:00
src All sorts of things. 2013-11-15 13:43:54 -05:00
.gitignore Ignore backup files. 2013-02-24 16:30:06 -05:00
Makefile All sorts of things. 2013-11-15 13:43:54 -05:00
README A few fixes here and there. 2013-02-25 10:46:48 -05:00
rebar.config All sorts of things. 2013-11-15 13:43:54 -05:00

Ideal Hash Array Mapped Tries: an Erlang functional datatype

"The Hash Array Mapped Trie (HAMT) is based on the simple notion of hashing
a key and storing the key in a trie based on this hash value. The AMT is
used to implement the required structure efficiently. The Array Mapped Trie
(AMT) is a versatile data structure and yields attractive alternative to
contemporary algo- rithms in many applications. Here I describe how it is
used to develop Hash Trees with near ideal characteristics that avoid the
traditional problem, setting the size of the initial root hash table or
incurring the high cost of dynamic resizing to achieve an acceptable
performance."

The quote above is from the paper "Ideal Hash Tries" by Phil Bagwell [2000]:
@ARTICLE{Bagwell01idealhash,
    author = {Phil Bagwell},
    title = {Ideal Hash Trees},
    journal = {Es Grands Champs},
    year = {2001},
    volume = {1195}
}
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.21.6279
http://lampwww.epfl.ch/papers/idealhashtrees.pdf
http://en.wikipedia.org/wiki/Hash_array_mapped_trie

This is an experiment in functional datatypes in Erlang.  At some point I'll
mature this into a persistent concurrent hash array mapped trie (ctrie).