public abstract class AbstractLengauerTarjanDominatorsFinder extends Object
Modifier and Type | Field and Description |
---|---|
protected int[] |
ancestor |
protected int[] |
bucket |
protected int[] |
dom |
protected DirectedGraph |
g |
protected Iterator<Integer>[] |
iterator |
protected int |
k |
protected int[] |
label |
protected gnu.trove.list.array.TIntArrayList |
list |
protected int |
n |
protected int[] |
parent |
protected ISet[] |
preds |
protected int |
root |
protected int[] |
semi |
protected ISet[] |
succs |
protected DirectedGraph |
T |
protected int[] |
vertex |
Constructor and Description |
---|
AbstractLengauerTarjanDominatorsFinder(int s,
DirectedGraph g)
Object that finds dominators of the given flow graph g(s)
|
Modifier and Type | Method and Description |
---|---|
protected abstract void |
compress(int v) |
protected abstract int |
eval(int v) |
boolean |
findDominators()
Find immediate dominators of the given graph
and preprocess dominance requests
|
boolean |
findPostDominators()
Find immediate postdominators of the given graph
and preprocess dominance requests
post dominators are dominators of the inverse graph
|
DirectedGraph |
getDominatorTree()
Get the dominator tree formed with arcs (x,y)
such that x is the immediate dominator of y
|
int |
getImmediateDominatorsOf(int x) |
protected void |
initParams(boolean inverseGraph) |
boolean |
isDomminatedBy(int x,
int y)
BEWARE requires preprocessDominanceRequests()
|
protected abstract void |
link(int v,
int w) |
protected DirectedGraph g
protected DirectedGraph T
protected int root
protected int n
protected int k
protected int[] parent
protected int[] vertex
protected int[] bucket
protected int[] ancestor
protected int[] label
protected int[] semi
protected int[] dom
protected ISet[] succs
protected ISet[] preds
protected gnu.trove.list.array.TIntArrayList list
public AbstractLengauerTarjanDominatorsFinder(int s, DirectedGraph g)
public boolean findDominators()
public boolean findPostDominators()
protected void initParams(boolean inverseGraph)
protected abstract void link(int v, int w)
protected abstract int eval(int v)
protected abstract void compress(int v)
public int getImmediateDominatorsOf(int x)
public boolean isDomminatedBy(int x, int y)
public DirectedGraph getDominatorTree()
Copyright © 2018. All rights reserved.