Local zeta-function: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Cydebot
m Robot - Speedily moving category Fixed points to Category:Fixed points (mathematics) per CFDS.
 
attempt minor correction attempt
Line 1: Line 1:
{| style="float:right" class=wikitable
|-
! 1
| dom     || {{color|#c0c0c0|1}} || {{color|#800000|2}} || 3 || 4 || 5 || 6
|-
! 2
| dom ||  || {{color|#c0c0c0|2}} || {{color|#800000|3}} || {{color|#800000|4}} || 5 || {{color|#800000|6}}
|-
! 3
| dom ||  ||  || {{color|#c0c0c0|3}} ||  ||  || 
|-
! 4
| dom ||  ||  ||  || {{color|#c0c0c0|4}} ||  || 
|-
! 5
| dom ||  ||  ||  ||  || {{color|#c0c0c0|5}} || 
|-
! 6
| dom ||  ||  ||  ||  ||  || {{color|#c0c0c0|6}}
|-
| colspan=8 | Corresponding domination relation
|-
| colspan=8 | {{color|#c0c0c0|Grey nodes}} are not strictly dominated
|-
| colspan=8 | {{color|#800000|Red nodes}} are immediately dominated
|}
{| style="float:right"
| [[File:Domrel.png|thumb|200px|Example control flow graph with entry node 1.]]
|}
{{for|Dominating set problem|Dominating set}}


In [[computer science]], in [[control flow graph]]s, a [[basic block|node]] '''d''' ''dominates'' a node '''n''' if every path from the ''entry node'' to '''n''' must go through '''d'''. Notationally, this is written as '''d''' dom '''n''' (or sometimes '''d''' <math>\gg</math> '''n'''). By definition, every node dominates itself.


Roberto is the name I just love to be recognized with though I generally really like being asked like that. My very good say it's not great for me but possibilities I love doing may be to bake but I'm so [http://Imageshack.us/photos/thinking thinking] on starting something totally new. South Carolina is where my home is. Software developing is how As well as support my family. You can consider my website here: http://circuspartypanama.com/<br><br>Take a look at my web blog - how to hack clash of clans - [http://circuspartypanama.com/ see here now],
There are a number of related concepts:
 
* A node d ''strictly dominates'' a node n if d dominates n and d does not equal n.
* The ''immediate dominator'' or '''idom''' of a node ''n'' is the unique node that strictly dominates ''n'' but does not strictly dominate any other node that strictly dominates ''n''. Not all nodes have immediate dominators (e.g. entry nodes don't).
* The ''dominance frontier'' of a node d is the set of all nodes n such that d dominates an immediate predecessor of n, but d does not strictly dominate n. It is the set of nodes where d's dominance stops.
* A ''dominator tree'' is a [[tree (graph theory)|tree]] where each node's children are those nodes it immediately dominates. Because the immediate dominator is unique, it is a tree. The start node is the root of the tree.
 
== History ==
Dominance was first introduced by Reese T. Prosser in a 1959 paper on analysis of flow diagrams.<ref>{{cite paper
|last=Prosser
|first=Reese T.
|title=Applications of Boolean matrices to the analysis of flow diagrams
|url=http://portal.acm.org/ft_gateway.cfm?id=1460314&type=pdf&coll=GUIDE&dl=GUIDE&CFID=79528182&CFTOKEN=33765747
|journal=AFIPS Joint Computer Conferences: Papers presented at the December 1&ndash;3, 1959, eastern joint IRE-AIEE-ACM computer conference
|publisher=ACM
|location=Boston, MA
|pages=133–138
|year=1959 }}</ref> Prosser did not present an algorithm for computing dominance, which had to wait ten years for Edward S. Lowry and C. W. Medlock.<ref>{{cite paper
|title=Object code optimization
|url=http://portal.acm.org/ft_gateway.cfm?id=362838&type=pdf&coll=GUIDE&dl=GUIDE&CFID=79528182&CFTOKEN=33765747
|journal=Communications of the ACM
|volume=12
|issue=1
|month=January
|year=1969
|pages=13–22
|first=Edward S.
|last=Lowry
|coauthors=and Medlock, Cleburne W. }}</ref> Ron Cytron ''et al.'' rekindled interest in dominance in 1989 when they applied it to efficient computation of φ functions, which are used in [[static single assignment form]].<ref>{{cite paper
|first=Ron
|last=Cytron
|coauthors=Hind, Michael; and Hsieh, Wilson
|id = {{citeseerx|10.1.1.50.9287}}
|title=Automatic Generation of DAG Parallelism
|journal=Proceedings of the ACM SIGPLAN 89 Conference on Programming Language Design and Implementation
|year=1989
|pages=54–68 }}</ref>
 
== Applications ==
Dominators, and dominance frontiers particularly, have applications in [[compiler]]s for computing [[static single assignment form]]. A number of compiler optimizations can also benefit from dominators. The flow graph in this case comprises [[basic block]]s.
 
Automatic parallelization benefits from postdominance frontiers. This is an efficient method of computing control dependence, which is critical to the analysis.
 
Memory usage analysis can benefit from the dominator tree to easily find leaks and identify high memory usage.<ref>{{cite web |url=http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.mat.ui.help%2Fconcepts%2Fdominatortree.html |title=Dominator Tree |author=<!--Staff writer(s); no by-line.--> |date=2008, 2012 |website=eclipse.org  |publisher=SAP AG and IBM Corporation |accessdate=21 June 2013 }}</ref>
 
In hardware systems, dominators are used for computing signal probabilities for test generation, estimating switching activities for power and noise analysis, and selecting cut points in equivalence checking.<ref>{{cite paper
|last=Teslenko
|first=Maxim
|coauthors=and Dubrova, Elena
|title=An Efficient Algorithm for Finding Double-Vertex Dominators in Circuit Graphs
|url=http://dl.acm.org/citation.cfm?id=1049138
|journal=Proceedings of Design and Test in Europe Conference
|pages=406–411
|year=2005 }}</ref>
In software systems, they are used for reducing the size of the test set in structural testing techniques such as statement and branch coverage.<ref>{{cite paper
|last=Dubrova
|first=Elena
|title=Structural Testing Based on Minimum Kernels
|url=http://dl.acm.org/citation.cfm?id=1049294
|journal=Proceedings of Design and Test in Europe Conference
|pages=1168–1173 
|year=2005 }}</ref>
 
== Algorithms ==
The dominators of a node n are given by the maximal solution to the following data-flow equations:
 
: <math>\operatorname{Dom}(n_o) = \left \{ n_o \right \}</math>
 
: <math>\operatorname{Dom}(n) = \left ( \bigcap_{p \in \text{preds}(n)}^{} \operatorname{Dom}(p) \right ) \bigcup^{} \left \{ n \right \} </math>
 
where <math>n_o</math> is the start node.
 
The dominator of the start node is the start node itself. The set of dominators for any other node n is the intersection of the set of dominators for all predecessors p of n. The node n is also in the set of dominators for n.
 
An algorithm for direct solution is:
 
  // dominator of the start node is the start itself
  Dom(n<sub>0</sub>) = {n<sub>0</sub>}
  // for all other nodes, set all nodes as the dominators
  '''for each''' n '''in''' N - {n<sub>0</sub>}
      Dom(n) = N;
  // iteratively eliminate nodes that are not dominators
  '''while''' changes in any Dom(n)
      '''for each''' n '''in''' N - {n<sub>0</sub>}:
          Dom(n) = {n} union with intersection over Dom(p) for all p in pred(n)
 
Direct solution is [[quadratic growth|quadratic]] in the number of nodes, or O(n<sup>2</sup>). [[Thomas Lengauer|Lengauer]] and [[Robert Endre Tarjan|Tarjan]] developed an algorithm which is almost linear, but its implementation tends to be complex and time consuming for a graph of several hundred nodes or fewer.<ref>{{cite paper
|title=A fast algorithm for finding dominators in a flowgraph
|url=http://portal.acm.org/ft_gateway.cfm?id=357071&type=pdf&coll=GUIDE&dl=GUIDE&CFID=79528182&CFTOKEN=33765747
|journal=ACM Transactions on Programming Languages and Systems (TOPLAS)
|volume=1
|issue=1
|month=July
|year=1979
|pages=121–141
|first=Thomas
|last=Lengauer
|coauthors=and Tarjan, Robert Endre }}</ref>
 
Keith D. Cooper, Timothy J. Harvey, and Ken Kennedy of [[Rice University]] describe an algorithm that essentially solves the above data flow equations but uses well engineered data structures to improve performance.<ref>{{cite web
|title=A Simple, Fast Dominance Algorithm
|url=http://www.hipersoft.rice.edu/grads/publications/dom14.pdf
|author=Cooper, Keith D.; Harvey, Timothy J; and Kennedy, Ken
|year=2001 }}</ref>
 
== Postdominance ==
Analogous to the definition of dominance above, a node ''z'' is said to '''post-dominate''' a node ''n'' if all paths to the exit node of the graph starting at ''n'' must go through ''z''. Similarly, the '''immediate post-dominator''' of a node ''n'' is the postdominator of ''n'' that doesn't strictly postdominate any other strict postdominators of ''n''.
 
==See also==
 
* [[Control flow graph]]
* [[Static single assignment form]]
 
==References==
<references />
 
==External links==
*[http://www.eecs.harvard.edu/hube/software/nci/cfa.html The Machine-SUIF Control Flow Analysis Library]
{{Graph Theory-footer}}
 
{{DEFAULTSORT:Dominator (Graph Theory)}}
[[Category:Graph theory]]
[[Category:Compiler construction]]

Revision as of 02:56, 4 September 2013

1 dom     23 yr old Mining Engineer (Excluding Oil ) Roman Kull from Markham, enjoys to spend time metal detecting, property developers in singapore property index and history. In recent time took some time to check out Macquarie Island. 23 yr old Mining Engineer (Excluding Oil ) Roman Kull from Markham, enjoys to spend time metal detecting, property developers in singapore property index and history. In recent time took some time to check out Macquarie Island. 3 4 5 6
2 dom 23 yr old Mining Engineer (Excluding Oil ) Roman Kull from Markham, enjoys to spend time metal detecting, property developers in singapore property index and history. In recent time took some time to check out Macquarie Island. 23 yr old Mining Engineer (Excluding Oil ) Roman Kull from Markham, enjoys to spend time metal detecting, property developers in singapore property index and history. In recent time took some time to check out Macquarie Island. 23 yr old Mining Engineer (Excluding Oil ) Roman Kull from Markham, enjoys to spend time metal detecting, property developers in singapore property index and history. In recent time took some time to check out Macquarie Island. 5 23 yr old Mining Engineer (Excluding Oil ) Roman Kull from Markham, enjoys to spend time metal detecting, property developers in singapore property index and history. In recent time took some time to check out Macquarie Island.
3 dom 23 yr old Mining Engineer (Excluding Oil ) Roman Kull from Markham, enjoys to spend time metal detecting, property developers in singapore property index and history. In recent time took some time to check out Macquarie Island.
4 dom 23 yr old Mining Engineer (Excluding Oil ) Roman Kull from Markham, enjoys to spend time metal detecting, property developers in singapore property index and history. In recent time took some time to check out Macquarie Island.
5 dom 23 yr old Mining Engineer (Excluding Oil ) Roman Kull from Markham, enjoys to spend time metal detecting, property developers in singapore property index and history. In recent time took some time to check out Macquarie Island.
6 dom 23 yr old Mining Engineer (Excluding Oil ) Roman Kull from Markham, enjoys to spend time metal detecting, property developers in singapore property index and history. In recent time took some time to check out Macquarie Island.
Corresponding domination relation
23 yr old Mining Engineer (Excluding Oil ) Roman Kull from Markham, enjoys to spend time metal detecting, property developers in singapore property index and history. In recent time took some time to check out Macquarie Island. are not strictly dominated
23 yr old Mining Engineer (Excluding Oil ) Roman Kull from Markham, enjoys to spend time metal detecting, property developers in singapore property index and history. In recent time took some time to check out Macquarie Island. are immediately dominated
Example control flow graph with entry node 1.

28 year-old Painting Investments Worker Truman from Regina, usually spends time with pastimes for instance interior design, property developers in new launch ec Singapore and writing. Last month just traveled to City of the Renaissance.

In computer science, in control flow graphs, a node d dominates a node n if every path from the entry node to n must go through d. Notationally, this is written as d dom n (or sometimes d n). By definition, every node dominates itself.

There are a number of related concepts:

  • A node d strictly dominates a node n if d dominates n and d does not equal n.
  • The immediate dominator or idom of a node n is the unique node that strictly dominates n but does not strictly dominate any other node that strictly dominates n. Not all nodes have immediate dominators (e.g. entry nodes don't).
  • The dominance frontier of a node d is the set of all nodes n such that d dominates an immediate predecessor of n, but d does not strictly dominate n. It is the set of nodes where d's dominance stops.
  • A dominator tree is a tree where each node's children are those nodes it immediately dominates. Because the immediate dominator is unique, it is a tree. The start node is the root of the tree.

History

Dominance was first introduced by Reese T. Prosser in a 1959 paper on analysis of flow diagrams.[1] Prosser did not present an algorithm for computing dominance, which had to wait ten years for Edward S. Lowry and C. W. Medlock.[2] Ron Cytron et al. rekindled interest in dominance in 1989 when they applied it to efficient computation of φ functions, which are used in static single assignment form.[3]

Applications

Dominators, and dominance frontiers particularly, have applications in compilers for computing static single assignment form. A number of compiler optimizations can also benefit from dominators. The flow graph in this case comprises basic blocks.

Automatic parallelization benefits from postdominance frontiers. This is an efficient method of computing control dependence, which is critical to the analysis.

Memory usage analysis can benefit from the dominator tree to easily find leaks and identify high memory usage.[4]

In hardware systems, dominators are used for computing signal probabilities for test generation, estimating switching activities for power and noise analysis, and selecting cut points in equivalence checking.[5] In software systems, they are used for reducing the size of the test set in structural testing techniques such as statement and branch coverage.[6]

Algorithms

The dominators of a node n are given by the maximal solution to the following data-flow equations:

where is the start node.

The dominator of the start node is the start node itself. The set of dominators for any other node n is the intersection of the set of dominators for all predecessors p of n. The node n is also in the set of dominators for n.

An algorithm for direct solution is:

 // dominator of the start node is the start itself
 Dom(n0) = {n0}
 // for all other nodes, set all nodes as the dominators
 for each n in N - {n0}
     Dom(n) = N;
 // iteratively eliminate nodes that are not dominators
 while changes in any Dom(n)
     for each n in N - {n0}:
         Dom(n) = {n} union with intersection over Dom(p) for all p in pred(n)

Direct solution is quadratic in the number of nodes, or O(n2). Lengauer and Tarjan developed an algorithm which is almost linear, but its implementation tends to be complex and time consuming for a graph of several hundred nodes or fewer.[7]

Keith D. Cooper, Timothy J. Harvey, and Ken Kennedy of Rice University describe an algorithm that essentially solves the above data flow equations but uses well engineered data structures to improve performance.[8]

Postdominance

Analogous to the definition of dominance above, a node z is said to post-dominate a node n if all paths to the exit node of the graph starting at n must go through z. Similarly, the immediate post-dominator of a node n is the postdominator of n that doesn't strictly postdominate any other strict postdominators of n.

See also

References

External links

Template:Graph Theory-footer