<ahref="classutil_1_1CompleteGraph-members.html">List of all members</a></div>
<divclass="headertitle">
<divclass="title">util::CompleteGraph< NodeIndexType, ArcIndexType > Class Template Reference</div></div>
</div><!--header-->
<divclass="contents">
<p><aclass="el"href="classutil_1_1CompleteGraph.html"title="CompleteGraph implementation ---------------------------------------------— Nodes and arcs are implic...">CompleteGraph</a> implementation ---------------------------------------------— Nodes and arcs are implicit and not stored.
<areashape="rect"title="CompleteGraph implementation ---------------------------------------------â Nodes and arcs are implic..."alt=""coords="5,92,231,131"/>
<areashape="rect"title="CompleteGraph implementation ---------------------------------------------â Nodes and arcs are implic..."alt=""coords="16,207,242,245"/>
<trclass="memdesc:adb271cf4bcf2de5b5bbe300d7054af29"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Typedef so you can use Graph::NodeIndex and Graph::ArcIndex to be generic but also to improve the readability of your code. <ahref="#adb271cf4bcf2de5b5bbe300d7054af29">More...</a><br/></td></tr>
<trclass="memdesc:ad3401c3d9df9b08cd9be279464029a32"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Builds a complete graph with num_nodes nodes. <ahref="#ad3401c3d9df9b08cd9be279464029a32">More...</a><br/></td></tr>
<trclass="memdesc:a0f551c921fa0b5aaa334a6e36f61db4a"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Returns the number of valid nodes in the graph. <ahref="#a0f551c921fa0b5aaa334a6e36f61db4a">More...</a><br/></td></tr>
<trclass="memdesc:aefb468e4d4a3128c91b3bad9f5b314c8"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Returns the number of valid arcs in the graph. <ahref="#aefb468e4d4a3128c91b3bad9f5b314c8">More...</a><br/></td></tr>
<trclass="memdesc:abf853acea86e01356f53055f77661770"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Returns true if the given node is a valid node of the graph. <ahref="#abf853acea86e01356f53055f77661770">More...</a><br/></td></tr>
<trclass="memdesc:a2097ccda3b1ad27e2c82166979018bda"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Returns true if the given arc is a valid arc of the graph. <ahref="#a2097ccda3b1ad27e2c82166979018bda">More...</a><br/></td></tr>
<trclass="memdesc:a69a71cbb575b13bde9899f5a6a217139"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Changes the graph capacities. <ahref="#a69a71cbb575b13bde9899f5a6a217139">More...</a><br/></td></tr>
<trclass="memdesc:aa3bd051d1e141b09dda17aa9b5f24f69"><tdclass="mdescLeft"> </td><tdclass="mdescRight"><aclass="el"href="classutil_1_1BaseGraph.html#aa3bd051d1e141b09dda17aa9b5f24f69"title="FreezeCapacities() makes any future attempt to change the graph capacities crash in DEBUG mode.">FreezeCapacities()</a> makes any future attempt to change the graph capacities crash in DEBUG mode. <ahref="#aa3bd051d1e141b09dda17aa9b5f24f69">More...</a><br/></td></tr>
<trclass="memitem:a07214b96597069d781e27b1dd17ef83e"><tdclass="memItemLeft"align="right"valign="top">void </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="classutil_1_1BaseGraph.html#a07214b96597069d781e27b1dd17ef83e">GroupForwardArcsByFunctor</a> (const A &a, B *b)</td></tr>
<trclass="memdesc:ab1292c82a3f43be3bd57b63a05fe0214"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Constants that will never be a valid node or arc. <ahref="#ab1292c82a3f43be3bd57b63a05fe0214">More...</a><br/></td></tr>
<trclass="memdesc:ac47030fcb75a3220f8cf9ed79697056e"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Functions commented when defined because they are implementation details. <ahref="#ac47030fcb75a3220f8cf9ed79697056e">More...</a><br/></td></tr>
<trclass="memdesc:a63fd586eed6c345866317e2f0faf377e"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Given the tail of arc #i in (*head)[i] and the head of arc #i in (*head)[~i]. <ahref="#a63fd586eed6c345866317e2f0faf377e">More...</a><br/></td></tr>
class util::CompleteGraph< NodeIndexType, ArcIndexType ></h3>
<p><aclass="el"href="classutil_1_1CompleteGraph.html"title="CompleteGraph implementation ---------------------------------------------— Nodes and arcs are implic...">CompleteGraph</a> implementation ---------------------------------------------— Nodes and arcs are implicit and not stored. </p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l02174">2174</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00190">190</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<p>Typedef so you can use <aclass="el"href="classutil_1_1BaseGraph.html#adb271cf4bcf2de5b5bbe300d7054af29"title="Typedef so you can use Graph::NodeIndex and Graph::ArcIndex to be generic but also to improve the rea...">Graph::NodeIndex</a> and <aclass="el"href="classutil_1_1BaseGraph.html#a0eba6e5899924388644dfa2258ae8929">Graph::ArcIndex</a> to be generic but also to improve the readability of your code. </p>
<p>We also recommend that you define a typedef ... Graph; for readability. </p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00189">189</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
</div>
</div>
<h2class="groupheader">Constructor & Destructor Documentation</h2>
<p>Builds a complete graph with num_nodes nodes. </p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l02184">2184</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
</div>
</div>
<h2class="groupheader">Member Function Documentation</h2>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00935">935</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<p>Allows nice range-based for loop: for (const NodeIndex node : graph.AllNodes()) { ... </p>
<p><aclass="el"href="classutil_1_1BaseGraph.html"title="Base class of all Graphs implemented here.">BaseGraph</a> implementation -------------------------------------------------—.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00929">929</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<dlclass="todo"><dt><b><aclass="el"href="todo.html#_todo000014">Todo:</a></b></dt><dd>(user): Same questions as the ones in <aclass="el"href="classutil_1_1BaseGraph.html#a463d57480c9563a7a707c5d0928c9946"title="Capacity reserved for future nodes, always >= num_nodes_.">node_capacity()</a>. </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00959">959</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<p>Given the tail of arc #i in (*head)[i] and the head of arc #i in (*head)[~i]. </p>
<ul>
<li>Reorder the arc by increasing tail.</li>
<li>Put the head of the new arc #i in (*head)[i].</li>
<li>Put in start[i] the index of the first arc with tail >= i.</li>
<li>Update "permutation" to reflect the change, unless it is NULL. </li>
</ul>
<p>Computes the outgoing degree of each nodes and check if we need to permute something or not. Note that the tails are currently stored in the positive range of the <aclass="el"href="classutil_1_1SVector.html"title="Forward declaration.">SVector</a> head.</p>
<p>Abort early if we do not need the permutation: we only need to put the heads in the positive range.</p>
<p>Computes the forward arc permutation. </p><dlclass="section note"><dt>Note</dt><dd>this temporarily alters the start vector.</dd></dl>
<p>Restore in (*start)[i] the index of the first arc with tail >= i.</p>
<p>Permutes the head into their final position in head. We do not need the tails anymore at this point. </p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00995">995</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<p>Functions commented when defined because they are implementation details. </p>
<p>Computes the cummulative sum of the entry in v.</p>
<p>We only use it with in/out degree distribution, hence the Check() at the end. </p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00978">978</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<p><aclass="el"href="classutil_1_1BaseGraph.html#aa3bd051d1e141b09dda17aa9b5f24f69"title="FreezeCapacities() makes any future attempt to change the graph capacities crash in DEBUG mode.">FreezeCapacities()</a> makes any future attempt to change the graph capacities crash in DEBUG mode. </p>
<dlclass="todo"><dt><b><aclass="el"href="todo.html#_todo000015">Todo:</a></b></dt><dd>(user): Only define this in debug mode at the cost of having a lot of ifndef NDEBUG all over the place? remove the function completely ? </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00966">966</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<p>They are just here during the transition from the old ebert_graph api to this new graph api. </p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00264">264</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l02201">2201</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<p>Returns true if the given arc is a valid arc of the graph. </p>
<dlclass="section note"><dt>Note</dt><dd>the arc validity range changes for graph with reverse arcs. </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00219">219</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<p>Returns true if the given node is a valid node of the graph. </p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00213">213</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00267">267</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<dlclass="todo"><dt><b><aclass="el"href="todo.html#_todo000013">Todo:</a></b></dt><dd>(user): Is it needed? remove completely? return the real capacities at the cost of having a different implementation for each graphs? </dd></dl>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00951">951</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<p>Returns the number of valid arcs in the graph. </p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00204">204</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<p>Returns the number of valid nodes in the graph. </p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00201">201</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l02241">2241</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l02215">2215</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l02222">2222</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l02232">2232</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00247">247</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<p>Reimplemented in <aclass="el"href="classutil_1_1StaticGraph.html#a98f11aaa1013df49976fcb5433538ff5">util::StaticGraph< NodeIndexType, ArcIndexType ></a>, and <aclass="el"href="classutil_1_1ListGraph.html#af637e16c3c7604f0354a6fa317358a15">util::ListGraph< NodeIndexType, ArcIndexType ></a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00241">241</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<p>The functions will fail in debug mode if:</p><ul>
<li>const_capacities_ is true.</li>
<li>A valid node does not fall into the new node range.</li>
<li>A valid arc does not fall into the new arc range. In non-debug mode, const_capacities_ is ignored and nothing will happen if the new capacity value for the arcs or the nodes is too small. </li>
</ul>
<p>Reimplemented in <aclass="el"href="classutil_1_1StaticGraph.html#a9b1c856f35140cb8902b94374a43d368">util::StaticGraph< NodeIndexType, ArcIndexType ></a>, and <aclass="el"href="classutil_1_1ListGraph.html#aefd885a0eba3ec33568137533190ba5b">util::ListGraph< NodeIndexType, ArcIndexType ></a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00235">235</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l02208">2208</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
</div>
</div>
<h2class="groupheader">Member Data Documentation</h2>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00279">279</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00280">280</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00259">259</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<p>Constants that will never be a valid node or arc. </p>
<p>They are the maximum possible node and arc capacity. </p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00258">258</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00277">277</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00278">278</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
<pclass="definition">Definition at line <aclass="el"href="graph_8h_source.html#l00276">276</a> of file <aclass="el"href="graph_8h_source.html">graph.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>