You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
letopab=ifHM.mem wpoint y then widen a b elseS.Dom.join a b
96
+
in
97
+
let old =HM.find rho y in
98
+
let tmp = op old d in
99
+
HM.replace stable y ();
100
+
ifnot (S.Dom.leq tmp old) then (
101
+
if tracing &¬ (S.Dom.is_bot old) then trace "update""side to %a (wpx: %b) from %a new: %a"S.Var.pretty_trace y (HM.mem wpoint y) S.Var.pretty_trace x S.Dom.pretty tmp;
102
+
HM.replace rho y tmp;
103
+
destabilize y;
104
+
(* make y a widening point. This will only matter for the next side _ y. *)
105
+
if tracing &¬ (HM.mem wpoint y) then trace "wpoint""side adding wpoint %a"S.Var.pretty_trace y;
106
+
HM.replace wpoint y ()
107
+
)
88
108
89
-
letsidexyd=(* side from x to y; only to variables y w/o rhs; x only used for trace *)
90
-
if tracing then trace "side""side to %a (wpx: %b) from %a; value: %a"S.Var.pretty_trace y (HM.mem wpoint y) S.Var.pretty_trace x S.Dom.pretty d;
letopab=ifHM.mem wpoint y then widen a b elseS.Dom.join a b
98
-
in
99
-
let old =HM.find rho y in
100
-
let tmp = op old d in
101
-
HM.replace stable y ();
102
-
ifnot (S.Dom.leq tmp old) then (
103
-
if tracing &¬ (S.Dom.is_bot old) then trace "update""side to %a (wpx: %b) from %a new: %a"S.Var.pretty_trace y (HM.mem wpoint y) S.Var.pretty_trace x S.Dom.pretty tmp;
104
-
HM.replace rho y tmp;
105
-
destabilize y;
106
-
(* make y a widening point. This will only matter for the next side _ y. *)
107
-
if tracing &¬ (HM.mem wpoint y) then trace "wpoint""side adding wpoint %a"S.Var.pretty_trace y;
108
-
HM.replace wpoint y ()
109
-
)
110
-
in
111
-
112
-
(* begining of iterate*)
109
+
anditeratex=(* ~(inner) solve in td3*)
113
110
if tracing then trace "iter""begin iterate %a, called: %b, stable: %b, wpoint: %b"S.Var.pretty_trace x (HM.mem called x) (HM.mem stable x) (HM.mem wpoint x);
0 commit comments