- Reorder the keys used to cache transitions
[tatoo.git] / src / auto / eval.ml
index e4def93..f51e0d5 100644 (file)
@@ -14,7 +14,7 @@
 (***********************************************************************)
 
 (*
-  Time-stamp: <Last modified on 2013-03-15 23:46:44 CET by Kim Nguyen>
+  Time-stamp: <Last modified on 2013-03-16 09:39:39 CET by Kim Nguyen>
 *)
 
 INCLUDE "utils.ml"
@@ -96,7 +96,12 @@ END
           TRACE(Html.trace (T.preorder tree node) _i "Right BU States: %a<br/>Right BU Trans: %a<br/>" StateSet.print states3 (Ata.TransList.print ~sep:"<br/>") _trans3)
         in
         if states3 != states2 then set cache tree node states3;
-        if states0 != states3 && (not !redo) then redo := true
+        (*if states0 != states3 && (not !redo) then redo := true *)
+        if (not !redo)
+          && not (Ata.TransList.nil == _trans3)
+          && (states1 != states3)
+          && not (StateSet.intersect states3 auto.Ata.selection_states)
+        then redo := true
       end
     in
     loop node;
@@ -122,6 +127,7 @@ END
     let iter = ref 0 in
     Ata.reset auto;
     while !redo do
+      redo := false;
       redo := top_down_run auto tree node cache !iter;
       incr iter;
     done;