Files
ortools-clone/docs/cpp_graph/classoperations__research_1_1ForwardStaticGraph.html
2019-06-20 23:08:48 +02:00

1589 lines
95 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>OR-Tools</title>
<meta http-equiv="Content-Type" content="text/html;"/>
<meta charset="utf-8"/>
<!--<link rel='stylesheet' type='text/css' href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>-->
<link rel="stylesheet" type="text/css" href="ortools.css" title="default" media="screen,print" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
</head>
<body>
<div id="banner-container">
<div id="banner">
<span id="sfml">OR-Tools 7.1@</span>
</div>
</div>
<div id="content">
<!-- Generated by Doxygen 1.8.15 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceoperations__research.html">operations_research</a></li><li class="navelem"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classoperations__research_1_1ForwardStaticGraph-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::ForwardStaticGraph&lt; NodeIndexType, ArcIndexType &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for operations_research::ForwardStaticGraph&lt; NodeIndexType, ArcIndexType &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1ForwardStaticGraph__inherit__graph.png" border="0" usemap="#operations__research_1_1ForwardStaticGraph_3_01NodeIndexType_00_01ArcIndexType_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="operations__research_1_1ForwardStaticGraph_3_01NodeIndexType_00_01ArcIndexType_01_4_inherit__map" id="operations__research_1_1ForwardStaticGraph_3_01NodeIndexType_00_01ArcIndexType_01_4_inherit__map">
<area shape="rect" title=" " alt="" coords="328,12,554,64"/>
<area shape="rect" href="classoperations__research_1_1StarGraphBase.html" title=" " alt="" coords="5,5,280,71"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for operations_research::ForwardStaticGraph&lt; NodeIndexType, ArcIndexType &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1ForwardStaticGraph__coll__graph.png" border="0" usemap="#operations__research_1_1ForwardStaticGraph_3_01NodeIndexType_00_01ArcIndexType_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="operations__research_1_1ForwardStaticGraph_3_01NodeIndexType_00_01ArcIndexType_01_4_coll__map" id="operations__research_1_1ForwardStaticGraph_3_01NodeIndexType_00_01ArcIndexType_01_4_coll__map">
<area shape="rect" title=" " alt="" coords="602,83,828,135"/>
<area shape="rect" href="classoperations__research_1_1StarGraphBase.html" title=" " alt="" coords="278,77,552,142"/>
<area shape="rect" title=" " alt="" coords="5,47,120,73"/>
<area shape="rect" title=" " alt="" coords="11,145,114,170"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph_1_1CycleHandlerForAnnotatedArcs.html">CycleHandlerForAnnotatedArcs</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:add943be8b26c7537cf53b9dbfc32fd99"><td class="memItemLeft" align="right" valign="top">typedef NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#add943be8b26c7537cf53b9dbfc32fd99">NodeIndex</a></td></tr>
<tr class="separator:add943be8b26c7537cf53b9dbfc32fd99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb472ecf630f43f292ce28d0de542ac5"><td class="memItemLeft" align="right" valign="top">typedef ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#adb472ecf630f43f292ce28d0de542ac5">ArcIndex</a></td></tr>
<tr class="separator:adb472ecf630f43f292ce28d0de542ac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a299d30373ebbfcb70fc84ecc66d95b92"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#a299d30373ebbfcb70fc84ecc66d95b92">ForwardStaticGraph</a> (const NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html#aa8a10d242f7088bfdee282e1246e00b8">num_nodes</a>, const ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html#ac0ae30f08a54ea67bf295b446157aed3">num_arcs</a>, const bool sort_arcs_by_head, std::vector&lt; std::pair&lt; NodeIndexType, NodeIndexType &gt; &gt; *client_input_arcs, operations_research::PermutationCycleHandler&lt; ArcIndexType &gt; *const client_cycle_handler)</td></tr>
<tr class="memdesc:a299d30373ebbfcb70fc84ecc66d95b92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for use by GraphBuilderFromArcs instances and direct clients that want to materialize a graph in one step. <a href="#a299d30373ebbfcb70fc84ecc66d95b92">More...</a><br /></td></tr>
<tr class="separator:a299d30373ebbfcb70fc84ecc66d95b92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2d2363b40be6da86e1dffe794ab9eba"><td class="memItemLeft" align="right" valign="top">NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#ac2d2363b40be6da86e1dffe794ab9eba">Tail</a> (const ArcIndexType arc) const</td></tr>
<tr class="memdesc:ac2d2363b40be6da86e1dffe794ab9eba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the tail or start-node of arc. <a href="#ac2d2363b40be6da86e1dffe794ab9eba">More...</a><br /></td></tr>
<tr class="separator:ac2d2363b40be6da86e1dffe794ab9eba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb00f0b91f228903023d4417a98caf54"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#acb00f0b91f228903023d4417a98caf54">IsIncoming</a> (ArcIndexType arc, NodeIndexType node) const</td></tr>
<tr class="memdesc:acb00f0b91f228903023d4417a98caf54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if arc is incoming to node. <a href="#acb00f0b91f228903023d4417a98caf54">More...</a><br /></td></tr>
<tr class="separator:acb00f0b91f228903023d4417a98caf54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a325685db5b8c282db5b30a78206edd30"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#a325685db5b8c282db5b30a78206edd30">CheckArcBounds</a> (const ArcIndexType arc) const</td></tr>
<tr class="memdesc:a325685db5b8c282db5b30a78206edd30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility function to check that an arc index is within the bounds. <a href="#a325685db5b8c282db5b30a78206edd30">More...</a><br /></td></tr>
<tr class="separator:a325685db5b8c282db5b30a78206edd30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27d6c9477d9c5474c08286c890aad441"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#a27d6c9477d9c5474c08286c890aad441">CheckArcValidity</a> (const ArcIndexType arc) const</td></tr>
<tr class="memdesc:a27d6c9477d9c5474c08286c890aad441"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility function to check that an arc index is within the bounds AND different from kNilArc. <a href="#a27d6c9477d9c5474c08286c890aad441">More...</a><br /></td></tr>
<tr class="separator:a27d6c9477d9c5474c08286c890aad441"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b7af21d9283d9ef77c21646e0c999b9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#a4b7af21d9283d9ef77c21646e0c999b9">CheckTailIndexValidity</a> (const ArcIndexType arc) const</td></tr>
<tr class="memdesc:a4b7af21d9283d9ef77c21646e0c999b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if arc is a valid index into the (*tail_) array. <a href="#a4b7af21d9283d9ef77c21646e0c999b9">More...</a><br /></td></tr>
<tr class="separator:a4b7af21d9283d9ef77c21646e0c999b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3af0a7025ae41572475ca9942d1db45"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#ab3af0a7025ae41572475ca9942d1db45">NextOutgoingArc</a> (const NodeIndexType node, ArcIndexType arc) const</td></tr>
<tr class="separator:ab3af0a7025ae41572475ca9942d1db45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70997849a276cf0a75513d916753161f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#a70997849a276cf0a75513d916753161f">DebugString</a> () const</td></tr>
<tr class="memdesc:a70997849a276cf0a75513d916753161f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a debug std::string containing all the information contained in the data structure in raw form. <a href="#a70997849a276cf0a75513d916753161f">More...</a><br /></td></tr>
<tr class="separator:a70997849a276cf0a75513d916753161f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afff790414356268c9a40c7fa5316eebf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#afff790414356268c9a40c7fa5316eebf">BuildTailArray</a> ()</td></tr>
<tr class="separator:afff790414356268c9a40c7fa5316eebf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a541264ae2a3f5c83efae38bc9335372d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#a541264ae2a3f5c83efae38bc9335372d">ReleaseTailArray</a> ()</td></tr>
<tr class="separator:a541264ae2a3f5c83efae38bc9335372d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f09eb68a93e2cb8fd50c90e48868b3c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#a6f09eb68a93e2cb8fd50c90e48868b3c">TailArrayComplete</a> () const</td></tr>
<tr class="memdesc:a6f09eb68a93e2cb8fd50c90e48868b3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">To be used in a DCHECK(). <a href="#a6f09eb68a93e2cb8fd50c90e48868b3c">More...</a><br /></td></tr>
<tr class="separator:a6f09eb68a93e2cb8fd50c90e48868b3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8a10d242f7088bfdee282e1246e00b8"><td class="memItemLeft" align="right" valign="top">NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#aa8a10d242f7088bfdee282e1246e00b8">num_nodes</a> () const</td></tr>
<tr class="memdesc:aa8a10d242f7088bfdee282e1246e00b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of nodes in the graph. <a href="#aa8a10d242f7088bfdee282e1246e00b8">More...</a><br /></td></tr>
<tr class="separator:aa8a10d242f7088bfdee282e1246e00b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0ae30f08a54ea67bf295b446157aed3"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#ac0ae30f08a54ea67bf295b446157aed3">num_arcs</a> () const</td></tr>
<tr class="memdesc:ac0ae30f08a54ea67bf295b446157aed3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of original arcs in the graph (The ones with positive indices.) <a href="#ac0ae30f08a54ea67bf295b446157aed3">More...</a><br /></td></tr>
<tr class="separator:ac0ae30f08a54ea67bf295b446157aed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03cebcf1fdf356a8217ae2879100d324"><td class="memItemLeft" align="right" valign="top">NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a03cebcf1fdf356a8217ae2879100d324">end_node_index</a> () const</td></tr>
<tr class="memdesc:a03cebcf1fdf356a8217ae2879100d324"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns one more than the largest index of an extant node, meaning a node that is mentioned as the head or tail of some arc in the graph. <a href="#a03cebcf1fdf356a8217ae2879100d324">More...</a><br /></td></tr>
<tr class="separator:a03cebcf1fdf356a8217ae2879100d324"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68a1d993a6371e6fbf6a8ffe5c944a45"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a68a1d993a6371e6fbf6a8ffe5c944a45">end_arc_index</a> () const</td></tr>
<tr class="memdesc:a68a1d993a6371e6fbf6a8ffe5c944a45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns one more than the largest index of an extant direct arc. <a href="#a68a1d993a6371e6fbf6a8ffe5c944a45">More...</a><br /></td></tr>
<tr class="separator:a68a1d993a6371e6fbf6a8ffe5c944a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51a5033049b63ee5ce35b531b8474f0a"><td class="memItemLeft" align="right" valign="top">NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a51a5033049b63ee5ce35b531b8474f0a">max_num_nodes</a> () const</td></tr>
<tr class="memdesc:a51a5033049b63ee5ce35b531b8474f0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the maximum possible number of nodes in the graph. <a href="#a51a5033049b63ee5ce35b531b8474f0a">More...</a><br /></td></tr>
<tr class="separator:a51a5033049b63ee5ce35b531b8474f0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8aad937029f57b70efe059b908241685"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a8aad937029f57b70efe059b908241685">max_num_arcs</a> () const</td></tr>
<tr class="memdesc:a8aad937029f57b70efe059b908241685"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the maximum possible number of original arcs in the graph. <a href="#a8aad937029f57b70efe059b908241685">More...</a><br /></td></tr>
<tr class="separator:a8aad937029f57b70efe059b908241685"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6aecaff5cd6eea0a7c93de644b8defc6"><td class="memItemLeft" align="right" valign="top">NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a6aecaff5cd6eea0a7c93de644b8defc6">max_end_node_index</a> () const</td></tr>
<tr class="memdesc:a6aecaff5cd6eea0a7c93de644b8defc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns one more than the largest valid index of a node. <a href="#a6aecaff5cd6eea0a7c93de644b8defc6">More...</a><br /></td></tr>
<tr class="separator:a6aecaff5cd6eea0a7c93de644b8defc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e2435063a7df2859f5b589852a8d4d3"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a7e2435063a7df2859f5b589852a8d4d3">max_end_arc_index</a> () const</td></tr>
<tr class="memdesc:a7e2435063a7df2859f5b589852a8d4d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns one more than the largest valid index of a direct arc. <a href="#a7e2435063a7df2859f5b589852a8d4d3">More...</a><br /></td></tr>
<tr class="separator:a7e2435063a7df2859f5b589852a8d4d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad69ccdbdbceba88bf784e2add4964b5b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#ad69ccdbdbceba88bf784e2add4964b5b">IsNodeValid</a> (NodeIndexType node) const</td></tr>
<tr class="memdesc:ad69ccdbdbceba88bf784e2add4964b5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility function to check that a node index is within the bounds AND different from kNilNode. <a href="#ad69ccdbdbceba88bf784e2add4964b5b">More...</a><br /></td></tr>
<tr class="separator:ad69ccdbdbceba88bf784e2add4964b5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad24fe35c2e3798137b42e1bc1c35e587"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#ad24fe35c2e3798137b42e1bc1c35e587">LookUpArc</a> (const NodeIndexType tail, const NodeIndexType head) const</td></tr>
<tr class="memdesc:ad24fe35c2e3798137b42e1bc1c35e587"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the first arc going from tail to head, if it exists, or kNilArc if such an arc does not exist. <a href="#ad24fe35c2e3798137b42e1bc1c35e587">More...</a><br /></td></tr>
<tr class="separator:ad24fe35c2e3798137b42e1bc1c35e587"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac64d5e43f89177ab46f7ef763bb3c64"><td class="memItemLeft" align="right" valign="top">NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#aac64d5e43f89177ab46f7ef763bb3c64">Head</a> (const ArcIndexType arc) const</td></tr>
<tr class="memdesc:aac64d5e43f89177ab46f7ef763bb3c64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the head or end-node of arc. <a href="#aac64d5e43f89177ab46f7ef763bb3c64">More...</a><br /></td></tr>
<tr class="separator:aac64d5e43f89177ab46f7ef763bb3c64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d2e4d934a8eb290a6298480d48faa52"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a5d2e4d934a8eb290a6298480d48faa52">NodeDebugString</a> (const NodeIndexType node) const</td></tr>
<tr class="separator:a5d2e4d934a8eb290a6298480d48faa52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30a3055f6669fd7739fd7acea16c4571"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a30a3055f6669fd7739fd7acea16c4571">ArcDebugString</a> (const ArcIndexType arc) const</td></tr>
<tr class="separator:a30a3055f6669fd7739fd7acea16c4571"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a2c3f7aa31326efb573187d321679cba6"><td class="memItemLeft" align="right" valign="top">static const NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a2c3f7aa31326efb573187d321679cba6">kNilNode</a></td></tr>
<tr class="memdesc:a2c3f7aa31326efb573187d321679cba6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of the 'nil' node in the graph. <a href="#a2c3f7aa31326efb573187d321679cba6">More...</a><br /></td></tr>
<tr class="separator:a2c3f7aa31326efb573187d321679cba6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7174acc6507b365096d7122ef430b1dc"><td class="memItemLeft" align="right" valign="top">static const ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a7174acc6507b365096d7122ef430b1dc">kNilArc</a></td></tr>
<tr class="memdesc:a7174acc6507b365096d7122ef430b1dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of the 'nil' arc in the graph. <a href="#a7174acc6507b365096d7122ef430b1dc">More...</a><br /></td></tr>
<tr class="separator:a7174acc6507b365096d7122ef430b1dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c2ac42ee1d86e253e0a85f3f1321824"><td class="memItemLeft" align="right" valign="top">static const NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a2c2ac42ee1d86e253e0a85f3f1321824">kFirstNode</a></td></tr>
<tr class="memdesc:a2c2ac42ee1d86e253e0a85f3f1321824"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of the first node in the graph. <a href="#a2c2ac42ee1d86e253e0a85f3f1321824">More...</a><br /></td></tr>
<tr class="separator:a2c2ac42ee1d86e253e0a85f3f1321824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3693e89df768c2f25a31d4b4ee64ee3a"><td class="memItemLeft" align="right" valign="top">static const ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a3693e89df768c2f25a31d4b4ee64ee3a">kFirstArc</a></td></tr>
<tr class="memdesc:a3693e89df768c2f25a31d4b4ee64ee3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of the first arc in the graph. <a href="#a3693e89df768c2f25a31d4b4ee64ee3a">More...</a><br /></td></tr>
<tr class="separator:a3693e89df768c2f25a31d4b4ee64ee3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebc1c53cc0d7242f47f0cf971a105e20"><td class="memItemLeft" align="right" valign="top">static const NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#aebc1c53cc0d7242f47f0cf971a105e20">kMaxNumNodes</a></td></tr>
<tr class="memdesc:aebc1c53cc0d7242f47f0cf971a105e20"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum possible number of nodes in the graph. <a href="#aebc1c53cc0d7242f47f0cf971a105e20">More...</a><br /></td></tr>
<tr class="separator:aebc1c53cc0d7242f47f0cf971a105e20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a043c924d609639e1cc5bea7d4a5a7fd3"><td class="memItemLeft" align="right" valign="top">static const ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a043c924d609639e1cc5bea7d4a5a7fd3">kMaxNumArcs</a></td></tr>
<tr class="memdesc:a043c924d609639e1cc5bea7d4a5a7fd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum possible number of arcs in the graph. <a href="#a043c924d609639e1cc5bea7d4a5a7fd3">More...</a><br /></td></tr>
<tr class="separator:a043c924d609639e1cc5bea7d4a5a7fd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a7cf8fa1e0a3abc8179da6309a86097f5"><td class="memItemLeft" align="right" valign="top">NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a7cf8fa1e0a3abc8179da6309a86097f5">StartNode</a> (NodeIndexType node) const</td></tr>
<tr class="memdesc:a7cf8fa1e0a3abc8179da6309a86097f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns kNilNode if the graph has no nodes or node if it has at least one node. <a href="#a7cf8fa1e0a3abc8179da6309a86097f5">More...</a><br /></td></tr>
<tr class="separator:a7cf8fa1e0a3abc8179da6309a86097f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa58e05a2a30eb0b2b38cc366bba1d1ae"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#aa58e05a2a30eb0b2b38cc366bba1d1ae">StartArc</a> (ArcIndexType arc) const</td></tr>
<tr class="memdesc:aa58e05a2a30eb0b2b38cc366bba1d1ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns kNilArc if the graph has no arcs arc if it has at least one arc. <a href="#aa58e05a2a30eb0b2b38cc366bba1d1ae">More...</a><br /></td></tr>
<tr class="separator:aa58e05a2a30eb0b2b38cc366bba1d1ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8038f289c7e5558d1b4d264677c0f4be"><td class="memItemLeft" align="right" valign="top">NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a8038f289c7e5558d1b4d264677c0f4be">NextNode</a> (const NodeIndexType node) const</td></tr>
<tr class="memdesc:a8038f289c7e5558d1b4d264677c0f4be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the node following the argument in the graph. <a href="#a8038f289c7e5558d1b4d264677c0f4be">More...</a><br /></td></tr>
<tr class="separator:a8038f289c7e5558d1b4d264677c0f4be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30864ddfe33af3fe52a64d35bf298503"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a30864ddfe33af3fe52a64d35bf298503">NextArc</a> (const ArcIndexType arc) const</td></tr>
<tr class="memdesc:a30864ddfe33af3fe52a64d35bf298503"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the arc following the argument in the graph. <a href="#a30864ddfe33af3fe52a64d35bf298503">More...</a><br /></td></tr>
<tr class="separator:a30864ddfe33af3fe52a64d35bf298503"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae83c0a0706d7c6bf85e08719e818c813"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#ae83c0a0706d7c6bf85e08719e818c813">FirstOutgoingArc</a> (const NodeIndexType node) const</td></tr>
<tr class="memdesc:ae83c0a0706d7c6bf85e08719e818c813"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the first outgoing arc for node. <a href="#ae83c0a0706d7c6bf85e08719e818c813">More...</a><br /></td></tr>
<tr class="separator:ae83c0a0706d7c6bf85e08719e818c813"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a539adfb6a1003d4270e0f2c8fe6705b9"><td class="memItemLeft" align="right" valign="top">NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a539adfb6a1003d4270e0f2c8fe6705b9">max_num_nodes_</a></td></tr>
<tr class="memdesc:a539adfb6a1003d4270e0f2c8fe6705b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of nodes that the graph can hold. <a href="#a539adfb6a1003d4270e0f2c8fe6705b9">More...</a><br /></td></tr>
<tr class="separator:a539adfb6a1003d4270e0f2c8fe6705b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa219b1703090300ed69dc9f5f6f54ded"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#aa219b1703090300ed69dc9f5f6f54ded">max_num_arcs_</a></td></tr>
<tr class="memdesc:aa219b1703090300ed69dc9f5f6f54ded"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of arcs that the graph can hold. <a href="#aa219b1703090300ed69dc9f5f6f54ded">More...</a><br /></td></tr>
<tr class="separator:aa219b1703090300ed69dc9f5f6f54ded"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9877f4f6b0822e2cb6aa9c4fe60ceb9"><td class="memItemLeft" align="right" valign="top">NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#ad9877f4f6b0822e2cb6aa9c4fe60ceb9">num_nodes_</a></td></tr>
<tr class="memdesc:ad9877f4f6b0822e2cb6aa9c4fe60ceb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum index of the node currently held by the graph. <a href="#ad9877f4f6b0822e2cb6aa9c4fe60ceb9">More...</a><br /></td></tr>
<tr class="separator:ad9877f4f6b0822e2cb6aa9c4fe60ceb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76da9f41f6215acb4ec4dd8da00c0e28"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a76da9f41f6215acb4ec4dd8da00c0e28">num_arcs_</a></td></tr>
<tr class="memdesc:a76da9f41f6215acb4ec4dd8da00c0e28"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current number of arcs held by the graph. <a href="#a76da9f41f6215acb4ec4dd8da00c0e28">More...</a><br /></td></tr>
<tr class="separator:a76da9f41f6215acb4ec4dd8da00c0e28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d032dcb17aa589d9a386fe04499654b"><td class="memItemLeft" align="right" valign="top">ZVector&lt; NodeIndexType &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#a1d032dcb17aa589d9a386fe04499654b">head_</a></td></tr>
<tr class="memdesc:a1d032dcb17aa589d9a386fe04499654b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of node indices. head_[i] contains the head node of arc i. <a href="#a1d032dcb17aa589d9a386fe04499654b">More...</a><br /></td></tr>
<tr class="separator:a1d032dcb17aa589d9a386fe04499654b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1a0166faa8ccde14511e9fc547febac"><td class="memItemLeft" align="right" valign="top">ZVector&lt; ArcIndexType &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1StarGraphBase.html#af1a0166faa8ccde14511e9fc547febac">first_incident_arc_</a></td></tr>
<tr class="memdesc:af1a0166faa8ccde14511e9fc547febac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of arc indices. <a href="#af1a0166faa8ccde14511e9fc547febac">More...</a><br /></td></tr>
<tr class="separator:af1a0166faa8ccde14511e9fc547febac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:ad350bf8d35134f9fe0208292360cf2a5"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#ad350bf8d35134f9fe0208292360cf2a5">StarGraphBase&lt; NodeIndexType, ArcIndexType, ForwardStaticGraph&lt; NodeIndexType, ArcIndexType &gt; &gt;</a></td></tr>
<tr class="separator:ad350bf8d35134f9fe0208292360cf2a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename NodeIndexType, typename ArcIndexType&gt;<br />
class operations_research::ForwardStaticGraph&lt; NodeIndexType, ArcIndexType &gt;</h3>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00192">192</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="adb472ecf630f43f292ce28d0de542ac5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb472ecf630f43f292ce28d0de542ac5">&#9670;&nbsp;</a></span>ArcIndex</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef ArcIndexType <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">operations_research::ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::<a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#adb472ecf630f43f292ce28d0de542ac5">ArcIndex</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00565">565</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="add943be8b26c7537cf53b9dbfc32fd99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add943be8b26c7537cf53b9dbfc32fd99">&#9670;&nbsp;</a></span>NodeIndex</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef NodeIndexType <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">operations_research::ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::<a class="el" href="classoperations__research_1_1ForwardStaticGraph.html#add943be8b26c7537cf53b9dbfc32fd99">NodeIndex</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00564">564</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a299d30373ebbfcb70fc84ecc66d95b92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a299d30373ebbfcb70fc84ecc66d95b92">&#9670;&nbsp;</a></span>ForwardStaticGraph()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">operations_research::ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::<a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a> </td>
<td>(</td>
<td class="paramtype">const NodeIndexType&#160;</td>
<td class="paramname"><em>num_nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>num_arcs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const bool&#160;</td>
<td class="paramname"><em>sort_arcs_by_head</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; std::pair&lt; NodeIndexType, NodeIndexType &gt; &gt; *&#160;</td>
<td class="paramname"><em>client_input_arcs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">operations_research::PermutationCycleHandler&lt; ArcIndexType &gt; *const&#160;</td>
<td class="paramname"><em>client_cycle_handler</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor for use by GraphBuilderFromArcs instances and direct clients that want to materialize a graph in one step. </p>
<p>Materializing all at once is the only choice available with a static graph.</p>
<p>Args: sort_arcs_by_head: determines whether arcs incident to each tail node are sorted by head node. client_cycle_handler: if non-NULL, mediates the permutation of arbitrary annotation data belonging to the client according to the permutation applied to the arcs in forming the graph. Two permutations may be composed to form the final one that affects the arcs. First, the arcs are always permuted to group them by tail node because <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a> requires this. Second, if each node's outgoing arcs are sorted by head node (according to sort_arcs_by_head), that sorting implies an additional permutation on the arcs. </p>
<p>A more convenient name for a parameter required by style to be a pointer, because we modify its referent.</p>
<p>We coopt the first_incident_arc_ array as a node-indexed vector used for two purposes related to degree before setting up its final values. First, it counts the out-degree of each node. Second, it is reused to count the number of arcs outgoing from each node that have already been put in place from the given input_arcs. We reserve an extra entry as a sentinel at the end.</p>
<p>Take this opportunity to see how many nodes are really mentioned in the arc list.</p>
<p>The head_ entry will get permuted into the right place later.</p>
<p>We reuse the input_arcs[].first entries to hold our mapping to the head_ array. This allows us to spread out cache badness.</p>
<p>We cannot reuse the input_arcs[].first entries so we map to the head_ array in a single loop.</p>
<p>Shift the entries in first_incident_arc_ to compensate for the counting each one has done through its incident arcs. Note that there is a special sentry element at the end of first_incident_arc_.</p>
<p>The second argument in the following has a strange index expression because ZVector claims that no index is valid unless it refers to an element in the vector. In particular an index one past the end is invalid.</p>
<p>Apply the computed permutation if we haven't already.</p>
<p>We use a permutation cycle handler to place the head array indices and permute the client's arc annotation data along with them. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">client_cycle_handler</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000008">Todo:</a></b></dt><dd>(user): For some reason, SWIG breaks if the <a class="el" href="namespaceoperations__research.html" title="Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in c...">operations_research</a> namespace is not explicit in the following argument declaration. </dd></dl>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00621">621</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a30a3055f6669fd7739fd7acea16c4571"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30a3055f6669fd7739fd7acea16c4571">&#9670;&nbsp;</a></span>ArcDebugString()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::ArcDebugString </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00310">310</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="afff790414356268c9a40c7fa5316eebf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afff790414356268c9a40c7fa5316eebf">&#9670;&nbsp;</a></span>BuildTailArray()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">operations_research::ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::BuildTailArray </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>If (*tail_) is already allocated, we have the invariant that its contents are canonical, so we do not need to do anything here in that case except return true.</p>
<p>We have been asked to build the (*tail_) array, but we have no valid information from which to build it. The graph is in an unrecoverable, inconsistent state.</p>
<p>Reallocate (*tail_) and rebuild its contents from the adjacency lists. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00816">816</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a325685db5b8c282db5b30a78206edd30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a325685db5b8c282db5b30a78206edd30">&#9670;&nbsp;</a></span>CheckArcBounds()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">operations_research::ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::CheckArcBounds </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Utility function to check that an arc index is within the bounds. </p>
<p>It is exported so that users of the <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a> class can use it. To be used in a DCHECK. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00770">770</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a27d6c9477d9c5474c08286c890aad441"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a27d6c9477d9c5474c08286c890aad441">&#9670;&nbsp;</a></span>CheckArcValidity()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">operations_research::ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::CheckArcValidity </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Utility function to check that an arc index is within the bounds AND different from kNilArc. </p>
<p>It is exported so that users of the <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a> class can use it. To be used in a DCHECK. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00778">778</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a4b7af21d9283d9ef77c21646e0c999b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b7af21d9283d9ef77c21646e0c999b9">&#9670;&nbsp;</a></span>CheckTailIndexValidity()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">operations_research::ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::CheckTailIndexValidity </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if arc is a valid index into the (*tail_) array. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00783">783</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a70997849a276cf0a75513d916753161f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a70997849a276cf0a75513d916753161f">&#9670;&nbsp;</a></span>DebugString()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">operations_research::ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::DebugString </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a debug std::string containing all the information contained in the data structure in raw form. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00802">802</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a68a1d993a6371e6fbf6a8ffe5c944a45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68a1d993a6371e6fbf6a8ffe5c944a45">&#9670;&nbsp;</a></span>end_arc_index()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::end_arc_index </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns one more than the largest index of an extant direct arc. </p>
<p>To be used as a helper when clients need to dimension or iterate over arrays of arc annotation information. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00252">252</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a03cebcf1fdf356a8217ae2879100d324"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a03cebcf1fdf356a8217ae2879100d324">&#9670;&nbsp;</a></span>end_node_index()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::end_node_index </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns one more than the largest index of an extant node, meaning a node that is mentioned as the head or tail of some arc in the graph. </p>
<p>To be used as a helper when clients need to dimension or iterate over arrays of node annotation information. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00247">247</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="ae83c0a0706d7c6bf85e08719e818c813"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae83c0a0706d7c6bf85e08719e818c813">&#9670;&nbsp;</a></span>FirstOutgoingArc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::FirstOutgoingArc </td>
<td>(</td>
<td class="paramtype">const NodeIndexType&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the first outgoing arc for node. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00479">479</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="aac64d5e43f89177ab46f7ef763bb3c64"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac64d5e43f89177ab46f7ef763bb3c64">&#9670;&nbsp;</a></span>Head()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::Head </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the head or end-node of arc. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00297">297</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="acb00f0b91f228903023d4417a98caf54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb00f0b91f228903023d4417a98caf54">&#9670;&nbsp;</a></span>IsIncoming()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">operations_research::ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::IsIncoming </td>
<td>(</td>
<td class="paramtype">ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NodeIndexType&#160;</td>
<td class="paramname"><em>node</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if arc is incoming to node. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00763">763</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="ad69ccdbdbceba88bf784e2add4964b5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad69ccdbdbceba88bf784e2add4964b5b">&#9670;&nbsp;</a></span>IsNodeValid()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::IsNodeValid </td>
<td>(</td>
<td class="paramtype">NodeIndexType&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Utility function to check that a node index is within the bounds AND different from kNilNode. </p>
<p>Returns true if node is in the range [kFirstNode .. max_num_nodes_). It is exported so that users of the DerivedGraph class can use it. To be used in a DCHECK; also used internally to validate arguments passed to our methods from clients (e.g., AddArc()). </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00279">279</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="ad24fe35c2e3798137b42e1bc1c35e587"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad24fe35c2e3798137b42e1bc1c35e587">&#9670;&nbsp;</a></span>LookUpArc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::LookUpArc </td>
<td>(</td>
<td class="paramtype">const NodeIndexType&#160;</td>
<td class="paramname"><em>tail</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NodeIndexType&#160;</td>
<td class="paramname"><em>head</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the first arc going from tail to head, if it exists, or kNilArc if such an arc does not exist. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00285">285</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a7e2435063a7df2859f5b589852a8d4d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e2435063a7df2859f5b589852a8d4d3">&#9670;&nbsp;</a></span>max_end_arc_index()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::max_end_arc_index </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns one more than the largest valid index of a direct arc. </p>
<p>To be used as a helper when clients need to dimension or iterate over arrays of arc annotation information. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00271">271</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a6aecaff5cd6eea0a7c93de644b8defc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6aecaff5cd6eea0a7c93de644b8defc6">&#9670;&nbsp;</a></span>max_end_node_index()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::max_end_node_index </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns one more than the largest valid index of a node. </p>
<p>To be used as a helper when clients need to dimension or iterate over arrays of node annotation information. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00264">264</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a8aad937029f57b70efe059b908241685"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8aad937029f57b70efe059b908241685">&#9670;&nbsp;</a></span>max_num_arcs()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::max_num_arcs </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the maximum possible number of original arcs in the graph. </p>
<p>(The ones with positive indices.) </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00259">259</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a51a5033049b63ee5ce35b531b8474f0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51a5033049b63ee5ce35b531b8474f0a">&#9670;&nbsp;</a></span>max_num_nodes()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::max_num_nodes </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the maximum possible number of nodes in the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00255">255</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a30864ddfe33af3fe52a64d35bf298503"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30864ddfe33af3fe52a64d35bf298503">&#9670;&nbsp;</a></span>NextArc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::NextArc </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the arc following the argument in the graph. </p>
<p>Returns kNilArc (= end) if the range of arcs has been exhausted. It is called by ArcIterator::Next() and as such does not expect to be passed an argument equal to kNilArc. This is why the return line is simplified from return ( arc == kNilArc || next_arc &gt;= num_arcs_) ? kNilArc : next_arc; to return next_arc &lt; num_arcs_ ? next_arc : kNilArc; </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00472">472</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a8038f289c7e5558d1b4d264677c0f4be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8038f289c7e5558d1b4d264677c0f4be">&#9670;&nbsp;</a></span>NextNode()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::NextNode </td>
<td>(</td>
<td class="paramtype">const NodeIndexType&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the node following the argument in the graph. </p>
<p>Returns kNilNode (= end) if the range of nodes has been exhausted. It is called by NodeIterator::Next() and as such does not expect to be passed an argument equal to kNilNode. This is why the return line is simplified from return (node == kNilNode || next_node &gt;= num_nodes_) ? kNilNode : next_node; to return next_node &lt; num_nodes_ ? next_node : kNilNode; </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00458">458</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="ab3af0a7025ae41572475ca9942d1db45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3af0a7025ae41572475ca9942d1db45">&#9670;&nbsp;</a></span>NextOutgoingArc()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">operations_research::ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::NextOutgoingArc </td>
<td>(</td>
<td class="paramtype">const NodeIndexType&#160;</td>
<td class="paramname"><em>node</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00788">788</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a5d2e4d934a8eb290a6298480d48faa52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d2e4d934a8eb290a6298480d48faa52">&#9670;&nbsp;</a></span>NodeDebugString()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::NodeDebugString </td>
<td>(</td>
<td class="paramtype">const NodeIndexType&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00302">302</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="ac0ae30f08a54ea67bf295b446157aed3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0ae30f08a54ea67bf295b446157aed3">&#9670;&nbsp;</a></span>num_arcs()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::num_arcs </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of original arcs in the graph (The ones with positive indices.) </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00241">241</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="aa8a10d242f7088bfdee282e1246e00b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8a10d242f7088bfdee282e1246e00b8">&#9670;&nbsp;</a></span>num_nodes()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::num_nodes </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of nodes in the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00237">237</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a541264ae2a3f5c83efae38bc9335372d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a541264ae2a3f5c83efae38bc9335372d">&#9670;&nbsp;</a></span>ReleaseTailArray()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">operations_research::ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::ReleaseTailArray </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00844">844</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="aa58e05a2a30eb0b2b38cc366bba1d1ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa58e05a2a30eb0b2b38cc366bba1d1ae">&#9670;&nbsp;</a></span>StartArc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::StartArc </td>
<td>(</td>
<td class="paramtype">ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns kNilArc if the graph has no arcs arc if it has at least one arc. </p>
<p>Useful for initializing iterators correctly in the case of empty graphs. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00445">445</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a7cf8fa1e0a3abc8179da6309a86097f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7cf8fa1e0a3abc8179da6309a86097f5">&#9670;&nbsp;</a></span>StartNode()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::StartNode </td>
<td>(</td>
<td class="paramtype">NodeIndexType&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns kNilNode if the graph has no nodes or node if it has at least one node. </p>
<p>Useful for initializing iterators correctly in the case of empty graphs. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00439">439</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="ac2d2363b40be6da86e1dffe794ab9eba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2d2363b40be6da86e1dffe794ab9eba">&#9670;&nbsp;</a></span>Tail()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">operations_research::ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::Tail </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the tail or start-node of arc. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00756">756</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a6f09eb68a93e2cb8fd50c90e48868b3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f09eb68a93e2cb8fd50c90e48868b3c">&#9670;&nbsp;</a></span>TailArrayComplete()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">operations_research::ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::TailArrayComplete </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>To be used in a DCHECK(). </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00847">847</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="ad350bf8d35134f9fe0208292360cf2a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad350bf8d35134f9fe0208292360cf2a5">&#9670;&nbsp;</a></span>StarGraphBase&lt; NodeIndexType, ArcIndexType, ForwardStaticGraph&lt; NodeIndexType, ArcIndexType &gt; &gt;</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">friend class <a class="el" href="classoperations__research_1_1StarGraphBase.html">StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00541">541</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="af1a0166faa8ccde14511e9fc547febac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1a0166faa8ccde14511e9fc547febac">&#9670;&nbsp;</a></span>first_incident_arc_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ZVector&lt;ArcIndexType&gt; <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::first_incident_arc_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Array of arc indices. </p>
<p>first_incident_arc_[i] contains the first arc incident to node i. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00502">502</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a1d032dcb17aa589d9a386fe04499654b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d032dcb17aa589d9a386fe04499654b">&#9670;&nbsp;</a></span>head_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ZVector&lt;NodeIndexType&gt; <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::head_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Array of node indices. head_[i] contains the head node of arc i. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00498">498</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a3693e89df768c2f25a31d4b4ee64ee3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3693e89df768c2f25a31d4b4ee64ee3a">&#9670;&nbsp;</a></span>kFirstArc</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::kFirstArc</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The index of the first arc in the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00225">225</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a2c2ac42ee1d86e253e0a85f3f1321824"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c2ac42ee1d86e253e0a85f3f1321824">&#9670;&nbsp;</a></span>kFirstNode</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::kFirstNode</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The index of the first node in the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00222">222</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a043c924d609639e1cc5bea7d4a5a7fd3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a043c924d609639e1cc5bea7d4a5a7fd3">&#9670;&nbsp;</a></span>kMaxNumArcs</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::kMaxNumArcs</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum possible number of arcs in the graph. </p>
<p>(The maximum index is kMaxNumArcs-1, since indices start at 0. Unfortunately we waste a value representing this and the max_num_arcs_ member.)</p>
<p>(The maximum index is kMaxNumArcs-1, since indices start at 0.) </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00235">235</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="aebc1c53cc0d7242f47f0cf971a105e20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebc1c53cc0d7242f47f0cf971a105e20">&#9670;&nbsp;</a></span>kMaxNumNodes</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::kMaxNumNodes</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum possible number of nodes in the graph. </p>
<p>The maximum possible node index in the graph.</p>
<p>(The maximum index is kMaxNumNodes-1, since indices start at 0. Unfortunately we waste a value representing this and the max_num_nodes_ member.) </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00230">230</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a7174acc6507b365096d7122ef430b1dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7174acc6507b365096d7122ef430b1dc">&#9670;&nbsp;</a></span>kNilArc</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::kNilArc</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The index of the 'nil' arc in the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00219">219</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a2c3f7aa31326efb573187d321679cba6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c3f7aa31326efb573187d321679cba6">&#9670;&nbsp;</a></span>kNilNode</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::kNilNode</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The index of the 'nil' node in the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00216">216</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="aa219b1703090300ed69dc9f5f6f54ded"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa219b1703090300ed69dc9f5f6f54ded">&#9670;&nbsp;</a></span>max_num_arcs_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::max_num_arcs_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum number of arcs that the graph can hold. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00489">489</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a539adfb6a1003d4270e0f2c8fe6705b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a539adfb6a1003d4270e0f2c8fe6705b9">&#9670;&nbsp;</a></span>max_num_nodes_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::max_num_nodes_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum number of nodes that the graph can hold. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00486">486</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a76da9f41f6215acb4ec4dd8da00c0e28"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76da9f41f6215acb4ec4dd8da00c0e28">&#9670;&nbsp;</a></span>num_arcs_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::num_arcs_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The current number of arcs held by the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00495">495</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="ad9877f4f6b0822e2cb6aa9c4fe60ceb9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9877f4f6b0822e2cb6aa9c4fe60ceb9">&#9670;&nbsp;</a></span>num_nodes_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardStaticGraph.html">ForwardStaticGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::num_nodes_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum index of the node currently held by the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00492">492</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a></li>
</ul>
</div><!-- contents -->
</div>
<div id="footer-container">
<div id="footer">
</div>
</div>
</body>
</html>