X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Futils%2Fcache.ml;h=7ba67d57f88177835b91fa5a35280d3bdecb0256;hp=a38fe0c9f821e422eefbad0eaec1f0f1342ba72a;hb=738218592e41da4ceb46f4dba41f292a60ba1f7b;hpb=748057239bad98bebc0f38403f05c1feb3712e82 diff --git a/src/utils/cache.ml b/src/utils/cache.ml index a38fe0c..7ba67d5 100644 --- a/src/utils/cache.ml +++ b/src/utils/cache.ml @@ -14,7 +14,7 @@ (***********************************************************************) (* - Time-stamp: + Time-stamp: *) 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