Usable version:
[tatoo.git] / include / utils.ml
diff --git a/include/utils.ml b/include/utils.ml
new file mode 100644 (file)
index 0000000..855c6d3
--- /dev/null
@@ -0,0 +1,37 @@
+IFNDEF UTILS__ML__
+THEN
+DEFINE UTILS__ML__
+
+IFDEF WORDSIZE64
+THEN
+INCLUDE "utils64.ml"
+ELSE
+INCLUDE "utils32.ml"
+END
+
+
+DEFINE HASHINT2 (x,y) = (((x)+HPARAM*(y)) land 0x3fffffff)
+DEFINE HASHINT3 (x,y,z) = (((x)  + (y) * HPARAM + (z) * HPARAM2) land 0x3fffffff)
+DEFINE HASHINT4 (x,y,z,t) =  (((x)  + (y) * HPARAM + (z)*HPARAM2 + (t)* HPARAM3) land 0x3fffffff)
+DEFINE HASHINT5 (x,y,z,t,u) =  (((x)  + (y) * HPARAM + (z)*HPARAM2 + (t)* HPARAM3 + (u)*HPARAM4) land 0x3fffffff)
+
+(* Magic Constants used for hashing *)
+DEFINE PRIME1 = 7
+DEFINE PRIME2 = 19
+DEFINE PRIME3 = 83
+DEFINE PRIME4 = 223
+DEFINE PRIME5 = 491
+DEFINE PRIME6 = 733
+DEFINE PRIME7 = 1009
+DEFINE PRIME8 = 4093
+DEFINE PRIME9 = 65599
+
+DEFINE SMALL_H_SIZE  = PRIME2
+DEFINE MED_H_SIZE    = PRIME5
+DEFINE BIG_H_SIZE    = PRIME8
+
+DEFINE SMALL_A_SIZE  = 128
+DEFINE MED_A_SIZE = 2048
+DEFINE BIG_A_SIZE = 8192
+
+END (* IFNDEF UTILS__ML__ *)