Td3.Base
module Arg : ConstrSys.IncrSolverArg
module S : ConstrSys.EqConstrSys
module VS : sig ... end
type solver_data = {
st : (S.Var.t * S.Dom.t) list;
infl : VS.t HM.t;
sides : VS.t HM.t;
rho : S.Dom.t HM.t;
wpoint : unit HM.t;
stable : unit HM.t;
side_dep : VS.t HM.t;
Dependencies of side-effected variables. Knowing these allows restarting them and re-triggering all side effects.
*)side_infl : VS.t HM.t;
Influences to side-effected variables. Not normally in infl
, but used for restarting them.
var_messages : Messages.Message.t HM.t;
Messages from right-hand sides of variables. Used for incremental postsolving.
*)rho_write : S.Dom.t HM.t HM.t;
Side effects from variables to write-only variables with values. Used for fast incremental restarting of write-only variables.
*)dep : VS.t HM.t;
Dependencies of variables. Inverse of infl
. Used for fast pre-reachable pruning in incremental postsolving.
}
type marshal = solver_data
val create_empty_data : unit -> solver_data
val print_data : solver_data -> unit
val print_data_verbose : solver_data -> string -> unit
val verify_data : solver_data -> unit
val pp_phase :
Ppx_deriving_runtime.Format.formatter ->
phase ->
Ppx_deriving_runtime.unit
val show_phase : phase -> Ppx_deriving_runtime.string
module CurrentVarS : sig ... end
module S = CurrentVarS.S
val solve :
(S.Var.t * S.Dom.t) list ->
HM.key list ->
solver_data option ->
S.Dom.t HM.t * solver_data