sig
type var_name = string
type var_type = Float | Int | Bool
type value = F of float | I of int | B of bool
type bool_expr
val make_bool_expr :
(LuckyDraw.var_name * LuckyDraw.var_type) list ->
string -> LuckyDraw.bool_expr
val and_b :
LuckyDraw.bool_expr -> LuckyDraw.bool_expr -> LuckyDraw.bool_expr
val or_b :
LuckyDraw.bool_expr -> LuckyDraw.bool_expr -> LuckyDraw.bool_expr
val xor_b :
LuckyDraw.bool_expr -> LuckyDraw.bool_expr -> LuckyDraw.bool_expr
val impl_b :
LuckyDraw.bool_expr -> LuckyDraw.bool_expr -> LuckyDraw.bool_expr
val eq_b :
LuckyDraw.bool_expr -> LuckyDraw.bool_expr -> LuckyDraw.bool_expr
val not_b : LuckyDraw.bool_expr -> LuckyDraw.bool_expr
val true_b : LuckyDraw.bool_expr
val false_b : LuckyDraw.bool_expr
val ite_b :
LuckyDraw.bool_expr ->
LuckyDraw.bool_expr -> LuckyDraw.bool_expr -> LuckyDraw.bool_expr
val var_b : string -> LuckyDraw.bool_expr
type int_expr
val var_i : string -> LuckyDraw.int_expr
val val_i : int -> LuckyDraw.int_expr
val eq_i : LuckyDraw.int_expr -> LuckyDraw.int_expr -> LuckyDraw.bool_expr
val sup_i : LuckyDraw.int_expr -> LuckyDraw.int_expr -> LuckyDraw.bool_expr
val supeq_i :
LuckyDraw.int_expr -> LuckyDraw.int_expr -> LuckyDraw.bool_expr
val inf_i : LuckyDraw.int_expr -> LuckyDraw.int_expr -> LuckyDraw.bool_expr
val infeq_i :
LuckyDraw.int_expr -> LuckyDraw.int_expr -> LuckyDraw.bool_expr
val ite_i :
LuckyDraw.bool_expr ->
LuckyDraw.int_expr -> LuckyDraw.int_expr -> LuckyDraw.int_expr
val sum_i : LuckyDraw.int_expr -> LuckyDraw.int_expr -> LuckyDraw.int_expr
val diff_i : LuckyDraw.int_expr -> LuckyDraw.int_expr -> LuckyDraw.int_expr
val prod_i : LuckyDraw.int_expr -> LuckyDraw.int_expr -> LuckyDraw.int_expr
val quot_i : LuckyDraw.int_expr -> LuckyDraw.int_expr -> LuckyDraw.int_expr
val mod_i : LuckyDraw.int_expr -> LuckyDraw.int_expr -> LuckyDraw.int_expr
val div_i : LuckyDraw.int_expr -> LuckyDraw.int_expr -> LuckyDraw.int_expr
val uminus_i : LuckyDraw.int_expr -> LuckyDraw.int_expr
type float_expr
val var_f : string -> LuckyDraw.float_expr
val val_f : float -> LuckyDraw.float_expr
val eq_f :
LuckyDraw.float_expr -> LuckyDraw.float_expr -> LuckyDraw.bool_expr
val sup_f :
LuckyDraw.float_expr -> LuckyDraw.float_expr -> LuckyDraw.bool_expr
val supeq_f :
LuckyDraw.float_expr -> LuckyDraw.float_expr -> LuckyDraw.bool_expr
val inf_f :
LuckyDraw.float_expr -> LuckyDraw.float_expr -> LuckyDraw.bool_expr
val infeq_f :
LuckyDraw.float_expr -> LuckyDraw.float_expr -> LuckyDraw.bool_expr
val ite_f :
LuckyDraw.bool_expr ->
LuckyDraw.float_expr -> LuckyDraw.float_expr -> LuckyDraw.float_expr
val sum_f :
LuckyDraw.float_expr -> LuckyDraw.float_expr -> LuckyDraw.float_expr
val diff_f :
LuckyDraw.float_expr -> LuckyDraw.float_expr -> LuckyDraw.float_expr
val prod_f :
LuckyDraw.float_expr -> LuckyDraw.float_expr -> LuckyDraw.float_expr
val quot_f :
LuckyDraw.float_expr -> LuckyDraw.float_expr -> LuckyDraw.float_expr
val uminus_f : LuckyDraw.float_expr -> LuckyDraw.float_expr
type subst = LuckyDraw.var_name * LuckyDraw.value
type solution = LuckyDraw.subst list
type solutions_set
val solve : LuckyDraw.bool_expr -> LuckyDraw.solutions_set
type draw_mode = int * int * int
val draw :
?mode:LuckyDraw.draw_mode ->
?verbose:int -> LuckyDraw.solutions_set -> LuckyDraw.solution list
val set_efficient_mode : unit -> unit
val set_fair_mode : unit -> unit
val string_of_value : LuckyDraw.value -> string
val bool_expr_to_string : LuckyDraw.bool_expr -> string
val print_solution : LuckyDraw.solution -> unit
val set_seed : int -> unit
val set_default_max_int : int -> unit
val set_default_min_int : int -> unit
val set_default_max_float : float -> unit
val set_default_min_float : float -> unit
end