-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnamespacelal.html
227 lines (218 loc) · 17.6 KB
/
namespacelal.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.11.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>LAL: Linear Arrangement Library: lal Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">LAL: Linear Arrangement Library<span id="projectnumber"> 21.07.01</span>
</div>
<div id="projectbrief">A library focused on algorithms on linear arrangements of graphs.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.11.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> |
<a href="#typedef-members">Typedefs</a> |
<a href="#var-members">Variables</a> </div>
<div class="headertitle"><div class="title">lal Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Main namespace of the library.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelal_1_1generate.html">generate</a></td></tr>
<tr class="memdesc:namespacelal_1_1generate"><td class="mdescLeft"> </td><td class="mdescRight">Generation of different classes of objects. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelal_1_1graphs.html">graphs</a></td></tr>
<tr class="memdesc:namespacelal_1_1graphs"><td class="mdescLeft"> </td><td class="mdescRight">Namespace for the graphs data structures. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelal_1_1io.html">io</a></td></tr>
<tr class="memdesc:namespacelal_1_1io"><td class="mdescLeft"> </td><td class="mdescRight">Input/Output functions and processing of treebanks. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelal_1_1iterators.html">iterators</a></td></tr>
<tr class="memdesc:namespacelal_1_1iterators"><td class="mdescLeft"> </td><td class="mdescRight">Iterators namespace. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelal_1_1linarr.html">linarr</a></td></tr>
<tr class="memdesc:namespacelal_1_1linarr"><td class="mdescLeft"> </td><td class="mdescRight">Namespace for all linear-arrangement-dependent algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelal_1_1numeric.html">numeric</a></td></tr>
<tr class="memdesc:namespacelal_1_1numeric"><td class="mdescLeft"> </td><td class="mdescRight">Numeric namespace. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelal_1_1properties.html">properties</a></td></tr>
<tr class="memdesc:namespacelal_1_1properties"><td class="mdescLeft"> </td><td class="mdescRight">Namespace for all linear-arrangement-independent algorithms. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacelal_1_1utilities.html">utilities</a></td></tr>
<tr class="memdesc:namespacelal_1_1utilities"><td class="mdescLeft"> </td><td class="mdescRight">Set of utilities. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:abd94045faecfc68a03268dde9c9a13eb" id="r_abd94045faecfc68a03268dde9c9a13eb"><td class="memItemLeft" align="right" valign="top"><a id="abd94045faecfc68a03268dde9c9a13eb" name="abd94045faecfc68a03268dde9c9a13eb"></a>
typedef uint32_t </td><td class="memItemRight" valign="bottom"><b>node</b></td></tr>
<tr class="memdesc:abd94045faecfc68a03268dde9c9a13eb"><td class="mdescLeft"> </td><td class="mdescRight">Node type. <br /></td></tr>
<tr class="separator:abd94045faecfc68a03268dde9c9a13eb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a577653b7b03239e784ac573c56e19d73" id="r_a577653b7b03239e784ac573c56e19d73"><td class="memItemLeft" align="right" valign="top"><a id="a577653b7b03239e784ac573c56e19d73" name="a577653b7b03239e784ac573c56e19d73"></a>
typedef uint32_t </td><td class="memItemRight" valign="bottom"><b>position</b></td></tr>
<tr class="memdesc:a577653b7b03239e784ac573c56e19d73"><td class="mdescLeft"> </td><td class="mdescRight">Node's position type. <br /></td></tr>
<tr class="separator:a577653b7b03239e784ac573c56e19d73"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:afa9a90a785b8b5461c516b8a3971c558" id="r_afa9a90a785b8b5461c516b8a3971c558"><td class="memItemLeft" align="right" valign="top">typedef std::vector< <a class="el" href="#a577653b7b03239e784ac573c56e19d73">position</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="#afa9a90a785b8b5461c516b8a3971c558">linear_arrangement</a></td></tr>
<tr class="memdesc:afa9a90a785b8b5461c516b8a3971c558"><td class="mdescLeft"> </td><td class="mdescRight">A linear arrangement of the nodes of a graph. <br /></td></tr>
<tr class="separator:afa9a90a785b8b5461c516b8a3971c558"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a5969ec7ecc85697ebb9ec0ace78fbcab" id="r_a5969ec7ecc85697ebb9ec0ace78fbcab"><td class="memItemLeft" align="right" valign="top"><a id="a5969ec7ecc85697ebb9ec0ace78fbcab" name="a5969ec7ecc85697ebb9ec0ace78fbcab"></a>
typedef std::pair< <a class="el" href="#abd94045faecfc68a03268dde9c9a13eb">node</a>, <a class="el" href="#abd94045faecfc68a03268dde9c9a13eb">node</a> > </td><td class="memItemRight" valign="bottom"><b>edge</b></td></tr>
<tr class="memdesc:a5969ec7ecc85697ebb9ec0ace78fbcab"><td class="mdescLeft"> </td><td class="mdescRight">Edge type. <br /></td></tr>
<tr class="separator:a5969ec7ecc85697ebb9ec0ace78fbcab"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a235d5351556fbc73aa51767ab7765f5c" id="r_a235d5351556fbc73aa51767ab7765f5c"><td class="memItemLeft" align="right" valign="top"><a id="a235d5351556fbc73aa51767ab7765f5c" name="a235d5351556fbc73aa51767ab7765f5c"></a>
typedef std::pair< <a class="el" href="#a5969ec7ecc85697ebb9ec0ace78fbcab">edge</a>, <a class="el" href="#a5969ec7ecc85697ebb9ec0ace78fbcab">edge</a> > </td><td class="memItemRight" valign="bottom"><b>edge_pair</b></td></tr>
<tr class="memdesc:a235d5351556fbc73aa51767ab7765f5c"><td class="mdescLeft"> </td><td class="mdescRight">Edge pair type. <br /></td></tr>
<tr class="separator:a235d5351556fbc73aa51767ab7765f5c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aef91d923414879a998619e9c65181d1f" id="r_aef91d923414879a998619e9c65181d1f"><td class="memItemLeft" align="right" valign="top"><a id="aef91d923414879a998619e9c65181d1f" name="aef91d923414879a998619e9c65181d1f"></a>
typedef std::vector< <a class="el" href="#abd94045faecfc68a03268dde9c9a13eb">node</a> > </td><td class="memItemRight" valign="bottom"><b>neighbourhood</b></td></tr>
<tr class="memdesc:aef91d923414879a998619e9c65181d1f"><td class="mdescLeft"> </td><td class="mdescRight">List of nodes. <br /></td></tr>
<tr class="separator:aef91d923414879a998619e9c65181d1f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac185793c961485ef0f9e4dbdd571d595" id="r_ac185793c961485ef0f9e4dbdd571d595"><td class="memItemLeft" align="right" valign="top">typedef std::vector< uint32_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="#ac185793c961485ef0f9e4dbdd571d595">head_vector</a></td></tr>
<tr class="memdesc:ac185793c961485ef0f9e4dbdd571d595"><td class="mdescLeft"> </td><td class="mdescRight">A head vector representation of a (usually) rooted tree. <br /></td></tr>
<tr class="separator:ac185793c961485ef0f9e4dbdd571d595"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a5c46b3ddab1474af5ad0b1480cd56bf7" id="r_a5c46b3ddab1474af5ad0b1480cd56bf7"><td class="memItemLeft" align="right" valign="top"><a id="a5c46b3ddab1474af5ad0b1480cd56bf7" name="a5c46b3ddab1474af5ad0b1480cd56bf7"></a>
constexpr std::string_view </td><td class="memItemRight" valign="bottom"><b>__lal_major_verno</b> = "21.07"</td></tr>
<tr class="memdesc:a5c46b3ddab1474af5ad0b1480cd56bf7"><td class="mdescLeft"> </td><td class="mdescRight">Major version number of the library's current state. The year and month in which it was released. <br /></td></tr>
<tr class="separator:a5c46b3ddab1474af5ad0b1480cd56bf7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aafd92ec89c0eafc7de71033b275b1b36" id="r_aafd92ec89c0eafc7de71033b275b1b36"><td class="memItemLeft" align="right" valign="top"><a id="aafd92ec89c0eafc7de71033b275b1b36" name="aafd92ec89c0eafc7de71033b275b1b36"></a>
constexpr std::string_view </td><td class="memItemRight" valign="bottom"><b>__lal_patch_verno</b> = "01"</td></tr>
<tr class="memdesc:aafd92ec89c0eafc7de71033b275b1b36"><td class="mdescLeft"> </td><td class="mdescRight">Patch version number of the library's current state. <br /></td></tr>
<tr class="separator:aafd92ec89c0eafc7de71033b275b1b36"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Main namespace of the library. </p>
<p>This namespace groups all namespaces of the library. Each namespace classifies the classes and functions in categories. </p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="ac185793c961485ef0f9e4dbdd571d595" name="ac185793c961485ef0f9e4dbdd571d595"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac185793c961485ef0f9e4dbdd571d595">◆ </a></span>head_vector</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef std::vector<uint32_t> <a class="el" href="#ac185793c961485ef0f9e4dbdd571d595">lal::head_vector</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A head vector representation of a (usually) rooted tree. </p>
<p>A head vector of an <em>n-vertex</em> tree is a list of non-negative integer numbers. The number at position <em>i</em> denotes the parent node of the vertex at said position. Value '0' denotes the root. In this case, the vertex corresponding to the value '0' is not labelled as a root.</p>
<p>Each tree is formatted as a list of whole, positive numbers (including zero), each representing a node of the tree. The number 0 denotes the root of the tree, and a number at a certain position indicates its parent node. For example, when number 4 is at position 9 it means that node 9 has parent node 4. Therefore, if number 0 is at position 1 it means that node 1 is the root of the tree. A complete example of such a tree's representation is the following </p><pre class="fragment"> 0 3 4 1 6 3
</pre><p>which should be interpreted as </p><pre class="fragment">(a) predecessor: 0 3 4 1 6 3
(b) node of the tree: 1 2 3 4 5 6
</pre><p>Note that lines like these are not valid: </p><pre class="fragment">(1) 0 2 2 2 2 2
(2) 2 0 0
</pre><p>Line (1) is not valid due to a self-reference in the second position, and (2) is not valid since it contains two '0' (i.e., two roots). </p>
</div>
</div>
<a id="afa9a90a785b8b5461c516b8a3971c558" name="afa9a90a785b8b5461c516b8a3971c558"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa9a90a785b8b5461c516b8a3971c558">◆ </a></span>linear_arrangement</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef std::vector<<a class="el" href="#a577653b7b03239e784ac573c56e19d73">position</a>> <a class="el" href="#afa9a90a785b8b5461c516b8a3971c558">lal::linear_arrangement</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A linear arrangement of the nodes of a graph. </p>
<p>If <em>pi</em> is a linear arrangement of <em>n</em> nodes: </p><div class="fragment"><div class="line">lal::linearrgmnt pi(n);</div>
</div><!-- fragment --><p> then the <em>u-th</em> position gives the position of node <em>u</em> in the arrangement: </p><div class="fragment"><div class="line"><a class="code hl_typedef" href="#a577653b7b03239e784ac573c56e19d73">position</a> pu = pi[u];</div>
<div class="ttc" id="anamespacelal_html_a577653b7b03239e784ac573c56e19d73"><div class="ttname"><a href="#a577653b7b03239e784ac573c56e19d73">lal::position</a></div><div class="ttdeci">uint32_t position</div><div class="ttdoc">Node's position type.</div><div class="ttdef"><b>Definition</b> definitions.hpp:53</div></div>
</div><!-- fragment --><p>For the sake of simplicity, we refer to the arrangement \( \pi[i]=i \), where \(i\) denotes both the nodes of the graph and a position in the linear arrangement, as the identity arrangement and is denoted by \(\pi_I\). </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.11.0
</small></address>
</div><!-- doc-content -->
</body>
</html>