Module Matrix

module Matrix: sig .. end
unique w.r.t equal

type dim = int option 
type matrix = Ctypes.c_object * dim list 
module MACHINE: Model.Key  with type t = matrix
module NATURAL: Model.Key  with type t = matrix
val of_array : Ctypes.arrayinfo -> matrix
val id : dim list -> string
unique w.r.t equal
val natural_id : Ctypes.c_object -> string
name for elements in NATURAL
val merge : dim list -> dim list -> dim list option
type denv = {
   size_var : Lang.F.var list; (*
size variables
*)
   size_val : Lang.F.term list; (*
size values
*)
   index_var : Lang.F.var list; (*
index variables
*)
   index_val : Lang.F.term list; (*
index values
*)
   index_range : Lang.F.pred list; (*
indices are in range of size variables
*)
   index_offset : Lang.F.term list; (*
polynomial of indices
*)
   monotonic : bool; (*
all dimensions are defined
*)
}
val denv : dim list -> denv
val size : matrix -> Lang.F.term list
val tau : Ctypes.c_object -> dim list -> Lang.F.tau