[Javabdd-checkins] JavaBDD_tests/trace TraceDriver.java,1.3,1.4
Brought to you by:
joewhaley
From: John W. <joe...@us...> - 2005-05-09 10:28:58
|
Update of /cvsroot/javabdd/JavaBDD_tests/trace In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30578/trace Modified Files: TraceDriver.java Log Message: Better support for dynamic variable reordering. Index: TraceDriver.java =================================================================== RCS file: /cvsroot/javabdd/JavaBDD_tests/trace/TraceDriver.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TraceDriver.java 6 May 2005 21:41:26 -0000 1.3 --- TraceDriver.java 9 May 2005 10:28:46 -0000 1.4 *************** *** 113,116 **** --- 113,128 ---- } + class TracedReorderOperation extends TracedOperation { + public BDDFactory.ReorderMethod method; + public void execute() throws IOException { + bdd.reorder(method); + } + public void show() { + out.print(index + "\t"); + out.print("reorder("+method+");"); + out.println(); + } + } + // -------------------------------------------------------------- class TracedBDDOperation extends TracedOperation { *************** *** 426,434 **** out.println("setting auto reorder to " + auto_reorder); bdd.autoReorder(getReorderMethod(auto_reorder)); ! bdd.varBlockAll(); } //bdd.setNodeNames(new TracedNames() ); } // ----------------------------------------------------- private void alloc_var(String name) { --- 438,457 ---- out.println("setting auto reorder to " + auto_reorder); bdd.autoReorder(getReorderMethod(auto_reorder)); ! try { ! java.lang.reflect.Method cb = TraceDriver.class.getDeclaredMethod("reorder_callback", new Class[] { boolean.class, BDDFactory.ReorderStats.class }); ! bdd.registerReorderCallback(this, cb); ! } catch (NoSuchMethodException x) { ! System.out.println("Cannot find callback method"); ! } } //bdd.setNodeNames(new TracedNames() ); } + public static void reorder_callback(boolean prestate, BDDFactory.ReorderStats s) { + System.out.print(prestate?"Start":"Finish"); + System.out.println("ing reorder."); + if (!prestate) System.out.println(s); + } + // ----------------------------------------------------- private void alloc_var(String name) { *************** *** 499,502 **** --- 522,533 ---- return tp; } + private TracedReorderOperation createReorderOperation(BDDFactory.ReorderMethod m) { + TracedReorderOperation tp = new TracedReorderOperation(); + tp.index = op_count; + tp.method = m; + operations.add(tp); + return tp; + } + // ----------------------------------------------------- *************** *** 519,522 **** --- 550,558 ---- bdd.printStat(); } + + if (auto_reorder != 0) { + out.println("Final variable order:"); + bdd.printOrder(); + } } *************** *** 597,601 **** need(")"); need(";"); BDDFactory.ReorderMethod m = getReorderMethod(type); ! bdd.reorder(m); } else { --- 633,637 ---- need(")"); need(";"); BDDFactory.ReorderMethod m = getReorderMethod(type); ! createReorderOperation(m); } else { *************** *** 663,666 **** --- 699,703 ---- case 5: m = BDDFactory.REORDER_SIFT; break; case 6: m = BDDFactory.REORDER_SIFTITE; break; + case 7: m = BDDFactory.REORDER_RANDOM; break; default: m = BDDFactory.REORDER_NONE; break; } *************** *** 725,728 **** --- 762,767 ---- sp2s.set(v2, v1); + bdd.varBlockAll(); + // s2sp.showName(); |