X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FResult.java;h=dfe12bbc6ed7cb48928cec81a46912629607b043;hp=c91ab769ec4d10261b4c32edb9b31bc9e0cad297;hb=24219bdf084b45273e869cd19382d1640b396566;hpb=6f1b2b1cba77222aeed1594d878b8c1250e31c1f diff --git a/src/edu/berkeley/sbp/Result.java b/src/edu/berkeley/sbp/Result.java index c91ab76..dfe12bb 100644 --- a/src/edu/berkeley/sbp/Result.java +++ b/src/edu/berkeley/sbp/Result.java @@ -6,20 +6,21 @@ import edu.berkeley.sbp.Sequence.Pos; import edu.berkeley.sbp.Sequence.Pos; import java.util.*; -final class Result implements GraphViz.ToGraphViz { +final class Result + implements GraphViz.ToGraphViz { private Forest.Many f = new Forest.Many(); - //private HashSet predecessors = new HashSet(); - //private HashSet successors = new HashSet(); - private FastSet predecessors = new FastSet(); - private FastSet successors = new FastSet(); + //private HashSet predecessors = new HashSet(); + //private HashSet successors = new HashSet(); + private FastSet predecessors = new FastSet(); + private FastSet successors = new FastSet(); private boolean destroyed = false; private boolean primordeal; private int usedByNonDoomedNode = 0; private Pos reduction; private GSS.Phase predPhase; - public boolean predecessorsContains(Node n) { + public boolean predecessorsContains(StateNode n) { return predecessors.contains(n); } public Pos reduction() { return reduction; } @@ -37,14 +38,14 @@ final class Result implements GraphViz.ToGraphViz { public GSS.Phase phase() { return predPhase; } public Forest getForest() { return f; } - public Iterable getPreds() { return predecessors; } - public void addSucc(Node succ) { + public Iterable getPreds() { return predecessors; } + public void addSucc(StateNode succ) { if (successors.contains(succ)) return; successors.add(succ); usedByNonDoomedNode += succ.state().doomed ? 0 : 1; if (predecessors.size() > 1) throw new Error(); } - public void removeSucc(Node succ) { + public void removeSucc(StateNode succ) { if (!successors.contains(succ)) return; successors.remove(succ); usedByNonDoomedNode -= succ.state().doomed ? 0 : 1; @@ -65,14 +66,14 @@ final class Result implements GraphViz.ToGraphViz { if (primordeal) return; // never destroy the "primordeal" result destroyed = true; while(predecessors.size() > 0) - for(Node pred : predecessors) { + for(StateNode pred : predecessors) { removePred(pred); pred.removeSucc(this); break; } predecessors = null; while(successors.size() > 0) - for(Node succ : successors) { + for(StateNode succ : successors) { removeSucc(succ); succ.removeResult(this); break; @@ -80,13 +81,13 @@ final class Result implements GraphViz.ToGraphViz { successors = null; } - public void removePred(Node pred) { + public void removePred(StateNode pred) { if (!predecessors.contains(pred)) return; predecessors.remove(pred); check(); } - public void addPred(Node pred) { + public void addPred(StateNode pred) { if (predPhase==null) predPhase = pred.phase(); if (predPhase != pred.phase()) throw new Error(); predecessors.add(pred); @@ -98,7 +99,7 @@ final class Result implements GraphViz.ToGraphViz { this(null, null, null); this.primordeal = true; } - public Result(Forest f, Pos reduction, Node pred) { + public Result(Forest f, Pos reduction, StateNode pred) { this.f.merge(f); this.reduction = reduction; if (pred != null) addPred(pred); @@ -106,9 +107,9 @@ final class Result implements GraphViz.ToGraphViz { // GraphViz ////////////////////////////////////////////////////////////////////////////// - public GraphViz.Node toGraphViz(GraphViz gv) { + public GraphViz.StateNode toGraphViz(GraphViz gv) { if (gv.hasNode(this)) return gv.createNode(this); - GraphViz.Node n = gv.createNode(this); + GraphViz.StateNode n = gv.createNode(this); n.label = ""+f; n.shape = "rectangle"; //if (pred()!=null) n.edge(pred, "");