Implement runtime optimisation via Hashing of transitions.
[tatoo.git] / src / utils / cache.ml
index a38fe0c..7ba67d5 100644 (file)
@@ -14,7 +14,7 @@
 (***********************************************************************)
 
 (*
-  Time-stamp: <Last modified on 2013-03-13 16:02:03 CET by Kim Nguyen>
+  Time-stamp: <Last modified on 2013-03-13 18:17:13 CET by Kim Nguyen>
 *)
 
 let realloc l old_size new_size dummy =
@@ -30,7 +30,7 @@ struct
                dummy : 'a;
                mutable offset : int;
              }
-  let create n a = {
+  let create _ a = {
     line = Array.create 0 a;
     dummy = a;
     offset = ~-1;
@@ -241,3 +241,30 @@ struct
       done
 
 end
+
+module N6 =
+struct
+  type 'a t = 'a N3.t N3.t
+
+  let create _n a =
+         let dummy1 = N3.create 512 a in
+         N3.create 512 dummy1
+
+  let add a i j k l m n v =
+    let line = N3.find a i j k in
+    if line == N3.dummy a then
+      let nline =  N3.create 0 (N3.dummy line) in
+      N3.add a i j k nline;
+      N3.add nline l m n v
+    else
+      N3.add line l m n v
+
+  let find a i j k l m n =
+    let v = N3.find a i j k in
+    if v == N3.dummy a then N3.dummy (N3.dummy a)
+    else N3.find v l m n
+
+
+  let dummy a = N3.dummy (N3.dummy a)
+  let iteri _f _a = assert false
+end