pub fn dominated_by<G>(graph: G, entry: G::NodeId, h: G::NodeId) -> IxBitSet<G::NodeId>
where
    G: IntoNeighbors + IntoNodeIdentifiers + Visitable,
    G::NodeId: IndexLike,
{
    if entry == h {
        graph.node_identifiers().collect()
    } else {
        let mut dfs = Dfs::new(graph, entry);
        dfs.discovered.visit(h);
        let inv_dom_set: IxBitSet<_> = dfs.iter(graph).collect();
        graph
            .node_identifiers()
            .filter(|&n| !inv_dom_set.contains(n))
            .collect()
    }
}
/// Returns the set of nodes that `h` dominates.
Returns the set of nodes that `h` dominates.
Returns the set of nodes that ` h ` dominates .
pub fn dominated_by<G>(graph: G, entry: G::NodeId, h: G::NodeId) -> IxBitSet<G::NodeId>
where
    G: IntoNeighbors + IntoNodeIdentifiers + Visitable,
    G::NodeId: IndexLike,
{
    if entry == h {
        graph.node_identifiers().collect()
    } else {
        let mut dfs = Dfs::new(graph, entry);
        dfs.discovered.visit(h);
        let inv_dom_set: IxBitSet<_> = dfs.iter(graph).collect();
        graph
            .node_identifiers()
            .filter(|&n| !inv_dom_set.contains(n))
            .collect()
    }
}
pub fn dominated_by < G > ( graph : G , entry : G :: NodeId , h : G :: NodeId ) -> IxBitSet < G :: NodeId > where G : IntoNeighbors + IntoNodeIdentifiers + Visitable , G :: NodeId : IndexLike , { if entry == h { graph . node_identifiers ( ) . collect ( ) } else { let mut dfs = Dfs :: new ( graph , entry ) ; dfs . discovered . visit ( h ) ; let inv_dom_set : IxBitSet < _ > = dfs . iter ( graph ) . collect ( ) ; graph . node_identifiers ( ) . filter ( | & n | ! inv_dom_set . contains ( n ) ) . collect ( ) } }
Returns the set of nodes that `h` dominates.
Returns the set of nodes that ` h ` dominates .
graph
G
entry
G::NodeId
h
G::NodeId
graph
G
entry
G::NodeId
h
G::NodeId