X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=include%2Futils.ml;fp=include%2Futils.ml;h=855c6d3dac81a53860a8d348c3e306af5bc560b5;hp=0000000000000000000000000000000000000000;hb=cba2938d929fd5119b1491686ddc224d5af618c6;hpb=0cf8def92c8c6e708ec333b13dbe46decf554d81 diff --git a/include/utils.ml b/include/utils.ml new file mode 100644 index 0000000..855c6d3 --- /dev/null +++ b/include/utils.ml @@ -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__ *)