Add a bullet symbol.
[tatoo.git] / src / cache.mli
1 (***********************************************************************)
2 (*                                                                     *)
3 (*                               TAToo                                 *)
4 (*                                                                     *)
5 (*                     Kim Nguyen, LRI UMR8623                         *)
6 (*                   Université Paris-Sud & CNRS                       *)
7 (*                                                                     *)
8 (*  Copyright 2010-2013 Université Paris-Sud and Centre National de la *)
9 (*  Recherche Scientifique. All rights reserved.  This file is         *)
10 (*  distributed under the terms of the GNU Lesser General Public       *)
11 (*  License, with the special exception on linking described in file   *)
12 (*  ../LICENSE.                                                        *)
13 (*                                                                     *)
14 (***********************************************************************)
15
16 (** N-dimentional caches *)
17
18 module N1 :
19 sig
20
21   type 'a t
22   val create : 'a -> 'a t
23   val find : 'a t -> int -> 'a
24   val add : 'a t -> int -> 'a -> unit
25   val dummy : 'a t -> 'a
26   val iteri : (int -> 'a -> bool -> unit) -> 'a t -> unit
27   val stats : 'a t -> int*int
28 end
29
30 module N2:
31 sig
32     type 'a t
33     val create : 'a -> 'a t
34     val find : 'a t -> int -> int -> 'a
35     val add : 'a t -> int -> int -> 'a -> unit
36     val dummy : 'a t -> 'a
37     val iteri : (int -> int -> 'a -> bool -> unit) -> 'a t -> unit
38     val stats : 'a t -> int*int
39 end
40
41 module N3 :
42   sig
43     type 'a t
44     val create : 'a -> 'a t
45     val find : 'a t -> int -> int -> int -> 'a
46     val add : 'a t -> int -> int -> int -> 'a -> unit
47     val dummy : 'a t -> 'a
48     val iteri : (int -> int -> int -> 'a -> bool -> unit) -> 'a t -> unit
49     val stats : 'a t -> int*int
50   end
51
52 module N4 :
53   sig
54     type 'a t
55     val create : 'a -> 'a t
56     val find : 'a t -> int -> int -> int -> int -> 'a
57     val add : 'a t -> int -> int -> int -> int -> 'a -> unit
58     val dummy : 'a t -> 'a
59     val iteri : (int -> int -> int -> int -> 'a -> bool -> unit) -> 'a t -> unit
60     val stats : 'a t -> int*int
61   end
62
63 module N5 :
64   sig
65     type 'a t
66     val create : 'a -> 'a t
67     val find : 'a t -> int -> int -> int -> int -> int -> 'a
68     val add : 'a t -> int -> int -> int -> int -> int -> 'a -> unit
69     val dummy : 'a t -> 'a
70     val iteri : (int -> int -> int -> int -> int -> 'a -> bool -> unit) -> 'a t -> unit
71     val stats : 'a t -> int*int
72   end
73
74 module N6 :
75   sig
76     type 'a t
77     val create : 'a -> 'a t
78     val find : 'a t -> int -> int -> int -> int -> int -> int -> 'a
79     val add : 'a t -> int -> int -> int -> int -> int -> int -> 'a -> unit
80     val dummy : 'a t -> 'a
81     val iteri : (int -> int -> int -> int -> int -> int -> 'a -> bool -> unit) -> 'a t -> unit
82     val stats : 'a t -> int*int
83   end