private List<Integer> getRank(DirectedGraph<Integer, DefaultEdge> graph) { final int[] rankArr = new int[graph.vertexSet().size()]; int rank = 0; for (int i : TopologicalOrderIterator.of(graph)) { rankArr[i] = rank++; } return ImmutableIntList.of(rankArr); }
private List<Integer> getRank(DirectedGraph<Integer, DefaultEdge> graph) { final int[] rankArr = new int[graph.vertexSet().size()]; int rank = 0; for (int i : TopologicalOrderIterator.of(graph)) { rankArr[i] = rank++; } return ImmutableIntList.of(rankArr); }
private DirectedGraph<Integer, DefaultEdge> createGraphFromExpression( final List<RexNode> exprs) { final DirectedGraph<Integer, DefaultEdge> graph = DefaultDirectedGraph.create(); for (int i = 0; i < exprs.size(); i++) { graph.addVertex(i); } for (final Ord<RexNode> expr : Ord.zip(exprs)) { expr.e.accept( new RexVisitorImpl<Void>(true) { public Void visitLocalRef(RexLocalRef localRef) { graph.addEdge(localRef.getIndex(), expr.i); return null; } }); } assert graph.vertexSet().size() == exprs.size(); return graph; } }
private DirectedGraph<Integer, DefaultEdge> createGraphFromExpression( final List<RexNode> exprs) { final DirectedGraph<Integer, DefaultEdge> graph = DefaultDirectedGraph.create(); for (int i = 0; i < exprs.size(); i++) { graph.addVertex(i); } for (final Ord<RexNode> expr : Ord.zip(exprs)) { expr.e.accept( new RexVisitorImpl<Void>(true) { public Void visitLocalRef(RexLocalRef localRef) { graph.addEdge(localRef.getIndex(), expr.i); return null; } }); } assert graph.vertexSet().size() == exprs.size(); return graph; } }
for (RelTableRef tRef : graph.vertexSet()) { do { List<RelTableRef> nodesToRemove = new ArrayList<>(); for (RelTableRef tRef : graph.vertexSet()) { if (graph.getInwardEdges(tRef).size() == 1 && graph.getOutwardEdges(tRef).isEmpty()) { if (!Collections.disjoint(graph.vertexSet(), extraTableRefs)) { return false;
for (RelTableRef tRef : graph.vertexSet()) { do { List<RelTableRef> nodesToRemove = new ArrayList<>(); for (RelTableRef tRef : graph.vertexSet()) { if (graph.getInwardEdges(tRef).size() == 1 && graph.getOutwardEdges(tRef).isEmpty()) { if (!Collections.disjoint(graph.vertexSet(), extraTableRefs)) { return false;
if (graph.vertexSet().contains(rel)) { return (HepRelVertex) rel;
if (graph.vertexSet().contains(rel)) { return (HepRelVertex) rel;