sig
type pervasives_bool = bool
type ('mix, 'id) e =
BIN_ALG_OP of Operator.bin_alg_op *
('mix, 'id) Alg_expr.e Locality.annot *
('mix, 'id) Alg_expr.e Locality.annot
| UN_ALG_OP of Operator.un_alg_op * ('mix, 'id) Alg_expr.e Locality.annot
| STATE_ALG_OP of Operator.state_alg_op
| ALG_VAR of 'id
| KAPPA_INSTANCE of 'mix
| TOKEN_ID of 'id
| CONST of Nbr.t
| IF of ('mix, 'id) Alg_expr.bool Locality.annot *
('mix, 'id) Alg_expr.e Locality.annot *
('mix, 'id) Alg_expr.e Locality.annot
| DIFF_TOKEN of (('mix, 'id) Alg_expr.e Locality.annot * 'id)
| DIFF_KAPPA_INSTANCE of (('mix, 'id) Alg_expr.e Locality.annot * 'mix)
and ('mix, 'id) bool =
TRUE
| FALSE
| BIN_BOOL_OP of Operator.bin_bool_op *
('mix, 'id) Alg_expr.bool Locality.annot *
('mix, 'id) Alg_expr.bool Locality.annot
| UN_BOOL_OP of Operator.un_bool_op *
('mix, 'id) Alg_expr.bool Locality.annot
| COMPARE_OP of Operator.compare_op *
('mix, 'id) Alg_expr.e Locality.annot *
('mix, 'id) Alg_expr.e Locality.annot
val e_to_yojson :
filenames:int Mods.StringMap.t ->
('a -> Yojson.Basic.json) ->
('b -> Yojson.Basic.json) -> ('a, 'b) Alg_expr.e -> Yojson.Basic.json
val e_of_yojson :
filenames:string array ->
(Yojson.Basic.json -> 'a) ->
(Yojson.Basic.json -> 'b) -> Yojson.Basic.json -> ('a, 'b) Alg_expr.e
val print :
(Format.formatter -> 'a -> unit) ->
(Format.formatter -> 'b -> unit) ->
(Format.formatter -> 'b -> unit) ->
Format.formatter -> ('a, 'b) Alg_expr.e -> unit
val bool_to_yojson :
filenames:int Mods.StringMap.t ->
('a -> Yojson.Basic.json) ->
('b -> Yojson.Basic.json) -> ('a, 'b) Alg_expr.bool -> Yojson.Basic.json
val bool_of_yojson :
filenames:string array ->
(Yojson.Basic.json -> 'a) ->
(Yojson.Basic.json -> 'b) -> Yojson.Basic.json -> ('a, 'b) Alg_expr.bool
val print_bool :
(Format.formatter -> 'a -> unit) ->
(Format.formatter -> 'b -> unit) ->
(Format.formatter -> 'b -> unit) ->
Format.formatter -> ('a, 'b) Alg_expr.bool -> unit
val const : Nbr.t -> ('a, 'b) Alg_expr.e Locality.annot
val int : int -> ('a, 'b) Alg_expr.e Locality.annot
val float : float -> ('a, 'b) Alg_expr.e Locality.annot
val add :
('a, 'b) Alg_expr.e Locality.annot ->
('a, 'b) Alg_expr.e Locality.annot -> ('a, 'b) Alg_expr.e Locality.annot
val minus :
('a, 'b) Alg_expr.e Locality.annot ->
('a, 'b) Alg_expr.e Locality.annot -> ('a, 'b) Alg_expr.e Locality.annot
val mult :
('a, 'b) Alg_expr.e Locality.annot ->
('a, 'b) Alg_expr.e Locality.annot -> ('a, 'b) Alg_expr.e Locality.annot
val div :
('a, 'b) Alg_expr.e Locality.annot ->
('a, 'b) Alg_expr.e Locality.annot -> ('a, 'b) Alg_expr.e Locality.annot
val pow :
('a, 'b) Alg_expr.e Locality.annot ->
('a, 'b) Alg_expr.e Locality.annot -> ('a, 'b) Alg_expr.e Locality.annot
val ln :
('a, 'b) Alg_expr.e Locality.annot -> ('a, 'b) Alg_expr.e Locality.annot
val uminus :
('a, 'b) Alg_expr.e Locality.annot -> ('a, 'b) Alg_expr.e Locality.annot
val sin :
('a, 'b) Alg_expr.e Locality.annot -> ('a, 'b) Alg_expr.e Locality.annot
val cos :
('a, 'b) Alg_expr.e Locality.annot -> ('a, 'b) Alg_expr.e Locality.annot
val sqrt :
('a, 'b) Alg_expr.e Locality.annot -> ('a, 'b) Alg_expr.e Locality.annot
val add_dep :
Operator.DepSet.t * Operator.DepSet.t * Operator.DepSet.t array *
Operator.DepSet.t array ->
Operator.rev_dep ->
('a, int) Alg_expr.e Locality.annot ->
Operator.DepSet.t * Operator.DepSet.t * Operator.DepSet.t array *
Operator.DepSet.t array
val add_dep_bool :
Operator.DepSet.t * Operator.DepSet.t * Operator.DepSet.t array *
Operator.DepSet.t array ->
Operator.rev_dep ->
('a, int) Alg_expr.bool Locality.annot ->
Operator.DepSet.t * Operator.DepSet.t * Operator.DepSet.t array *
Operator.DepSet.t array
val setup_alg_vars_rev_dep :
unit NamedDecls.t ->
(string Locality.annot * ('a, int) Alg_expr.e Locality.annot) array ->
Operator.DepSet.t * Operator.DepSet.t * Operator.DepSet.t array *
Operator.DepSet.t array
val has_mix :
?var_decls:('b -> ('c, 'b) Alg_expr.e) ->
('a, 'b) Alg_expr.e -> Alg_expr.pervasives_bool
val has_progress_dep :
only_time:Alg_expr.pervasives_bool ->
Operator.DepSet.t * Operator.DepSet.t * Operator.DepSet.t array *
Operator.DepSet.t array ->
('a, int) Alg_expr.e Locality.annot -> Alg_expr.pervasives_bool
val extract_connected_components :
('a, 'b) Alg_expr.e Locality.annot -> 'a list
val extract_connected_components_bool :
('a, 'b) Alg_expr.bool Locality.annot -> 'a list
val propagate_constant :
?max_time:float ->
?max_events:int ->
int list ->
(string Locality.annot * ('a, int) Alg_expr.e Locality.annot) array ->
('a, int) Alg_expr.e Locality.annot ->
('a, int) Alg_expr.e Locality.annot
val propagate_constant_bool :
?max_time:float ->
?max_events:int ->
int list ->
(string Locality.annot * ('a, int) Alg_expr.e Locality.annot) array ->
('a, int) Alg_expr.bool Locality.annot ->
('a, int) Alg_expr.bool Locality.annot
val is_equality_test_time :
Operator.DepSet.t * Operator.DepSet.t * Operator.DepSet.t array *
Operator.DepSet.t array ->
('a, int) Alg_expr.bool -> Alg_expr.pervasives_bool
end