module Matrix:sig
..end
equal
typedim =
int option
typematrix =
Ctypes.c_object * dim list
val of_array : Ctypes.arrayinfo -> Ctypes.c_object * int option list
module KEY:
module COBJ:sig
..end
module MACHINE:KEY
(
Ctypes
)
module NATURAL:KEY
(
COBJ
)
val natural_id : Ctypes.c_object -> string
val add_rank : Buffer.t -> int -> unit
val add_dim : Buffer.t -> int -> 'a option -> int
val id : 'a option list -> string
equal
type
denv = {
|
size_var : |
(* |
size variables
| *) |
|
size_val : |
(* |
size values
| *) |
|
index_var : |
(* |
index variables
| *) |
|
index_val : |
(* |
index values
| *) |
|
index_range : |
(* |
indices are in range of size variables
| *) |
|
index_offset : |
(* |
polynomial of indices
| *) |
|
monotonic : |
(* |
all dimensions are defined
| *) |
val collect : int -> 'a option list -> denv
val denv : int option list -> denv
val dval : int option list -> Lang.F.term list
val size : 'a * int option list -> Lang.F.term list
val tau : Ctypes.c_object -> 'a list -> Lang.tau
val do_merge : 'a option list -> 'a option list -> 'a option list
val merge : 'a option list -> 'a option list -> 'a option list option