private boolean checkTree(MyPhyloTree net) { MyPhyloTree n = new MyPhyloTree(net); n.setTimeDegree(null); HashSet<MyEdge> criticalEdges = new HashSet<MyEdge>(); for (MyEdge e : n.getEdges()) { if (e.isCritical()) criticalEdges.add(e); } for (MyEdge e : criticalEdges) { MyNode s = e.getSource(); MyNode t = e.getTarget(); s.removeOutEdge(e); MyNode x = n.newNode(); n.newEdge(s, x); n.newEdge(x, t); } CheckTimeConsistency checker = new CheckTimeConsistency(); int k = checker.run(n, 0, false, true, -1); if (k != 0) return false; return true; }
private void clearEdges(MyPhyloTree n) { for (MyEdge e : n.getEdges()) { e.setCritical(false); } }