]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/hash.cc
patch::: 1.1.60.jcn2
[lilypond.git] / flower / hash.cc
index 1e2debd13b4fbef8a313cc9cfaf1026b5e067676..c33e7ed53d148c4275895f2edfd3c12289265ef0 100644 (file)
@@ -1,3 +1,11 @@
+/*   
+  hash.cc --  implement various functions for hash tables.
+  
+  source file of the Flower Library
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
 #include "string.hh"
 #include "array.hh"
 #include "dictionary.hh"
@@ -6,6 +14,7 @@
 // Note: assumes long is at least 32 bits.
 const unsigned long my_prime_list[] = 
 {
+  5, 11, 23,                   // be a bit careful for short lists: we want reasonable mem usage.
   53,         97,         193,       389,       769,
   1543,       3079,       6151,      12289,     24593,
   49157,      98317,      196613,    393241,    786433,
@@ -14,12 +23,14 @@ const unsigned long my_prime_list[] =
   1610612741u, 3221225473u, 4294967291u
 };
 
-unsigned long prime_list (int idx)
+unsigned long
+prime_list (int idx)
 {
   return my_prime_list [idx];
 }
 
-unsigned int hash (String s)
+unsigned int
+string_hash (String s)
 {
   const char* str = s.ch_C ();
   unsigned int result = 0;
@@ -31,3 +42,16 @@ unsigned int hash (String s)
   return result;
 }
 
+
+unsigned int
+hash (unsigned int i)
+{
+  return i;
+}
+
+unsigned int
+int_hash (int i)
+{
+  return (unsigned) i;
+}
+