Files
ortools-clone/docs/cpp_graph/classoperations__research_1_1EbertGraphBase.html
Laurent Perron 4536755f35 polish cpp doc
2019-07-12 13:13:30 -07:00

1660 lines
96 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.2</span>
</div>
</div>
<link rel="icon" href="https://developers.google.com/optimization/images/orLogo.png">
<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_1EbertGraphBase.html">EbertGraphBase</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</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_1EbertGraphBase-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::EbertGraphBase&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A template for the base class that holds the functionality that exists in common between the EbertGraph&lt;&gt; template and the ForwardEbertGraph&lt;&gt; template.
<a href="classoperations__research_1_1EbertGraphBase.html#details">More...</a></p>
<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::EbertGraphBase&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1EbertGraphBase__inherit__graph.png" border="0" usemap="#operations__research_1_1EbertGraphBase_3_01NodeIndexType_00_01ArcIndexType_00_01DerivedGraph_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="operations__research_1_1EbertGraphBase_3_01NodeIndexType_00_01ArcIndexType_00_01DerivedGraph_01_4_inherit__map" id="operations__research_1_1EbertGraphBase_3_01NodeIndexType_00_01ArcIndexType_00_01DerivedGraph_01_4_inherit__map">
<area shape="rect" title="A template for the base class that holds the functionality that exists in common between the EbertGra..." alt="" coords="293,13,533,69"/>
<area shape="rect" href="classoperations__research_1_1EbertGraph.html" title="Forward declarations." alt="" coords="581,5,820,76"/>
<area shape="rect" href="classoperations__research_1_1StarGraphBase.html" title=" " alt="" coords="5,13,245,69"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for operations_research::EbertGraphBase&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1EbertGraphBase__coll__graph.png" border="0" usemap="#operations__research_1_1EbertGraphBase_3_01NodeIndexType_00_01ArcIndexType_00_01DerivedGraph_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="operations__research_1_1EbertGraphBase_3_01NodeIndexType_00_01ArcIndexType_00_01DerivedGraph_01_4_coll__map" id="operations__research_1_1EbertGraphBase_3_01NodeIndexType_00_01ArcIndexType_00_01DerivedGraph_01_4_coll__map">
<area shape="rect" title="A template for the base class that holds the functionality that exists in common between the EbertGra..." alt="" coords="11,259,251,315"/>
<area shape="rect" href="classoperations__research_1_1StarGraphBase.html" title=" " alt="" coords="11,153,251,209"/>
<area shape="rect" title=" " alt="" coords="5,5,120,32"/>
<area shape="rect" title=" " alt="" coords="149,5,251,32"/>
</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_1EbertGraphBase_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-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a2b9709a996fb28b5572783b40e1067c5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.html#a2b9709a996fb28b5572783b40e1067c5">Reserve</a> (NodeIndexType new_max_num_nodes, ArcIndexType new_max_num_arcs)</td></tr>
<tr class="memdesc:a2b9709a996fb28b5572783b40e1067c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserves memory needed for max_num_nodes nodes and max_num_arcs arcs. <a href="#a2b9709a996fb28b5572783b40e1067c5">More...</a><br /></td></tr>
<tr class="separator:a2b9709a996fb28b5572783b40e1067c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96bf1fdcbfa88edabb7843b6142cb3bd"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.html#a96bf1fdcbfa88edabb7843b6142cb3bd">AddArc</a> (NodeIndexType tail, NodeIndexType head)</td></tr>
<tr class="memdesc:a96bf1fdcbfa88edabb7843b6142cb3bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an arc to the graph and returns its index. <a href="#a96bf1fdcbfa88edabb7843b6142cb3bd">More...</a><br /></td></tr>
<tr class="separator:a96bf1fdcbfa88edabb7843b6142cb3bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7adcbbf1af098a96abf7a3397246304d"><td class="memTemplParams" colspan="2">template&lt;typename ArcIndexTypeStrictWeakOrderingFunctor &gt; </td></tr>
<tr class="memitem:a7adcbbf1af098a96abf7a3397246304d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.html#a7adcbbf1af098a96abf7a3397246304d">GroupForwardArcsByFunctor</a> (const ArcIndexTypeStrictWeakOrderingFunctor &amp;compare, PermutationCycleHandler&lt; ArcIndexType &gt; *annotation_handler)</td></tr>
<tr class="separator:a7adcbbf1af098a96abf7a3397246304d"><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_1EbertGraphBase.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:ad69ccdbdbceba88bf784e2add4964b5b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.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: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: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_1EbertGraphBase.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: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_1EbertGraphBase.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: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_1EbertGraphBase.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>
<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_1EbertGraphBase.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: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_1EbertGraphBase.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: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_1EbertGraphBase.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>
</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:aef662883e2f42f46cf31255c12169c3e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.html#aef662883e2f42f46cf31255c12169c3e">EbertGraphBase</a> ()</td></tr>
<tr class="separator:aef662883e2f42f46cf31255c12169c3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb189f1f683a66f4fa283204a5db05e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.html#adb189f1f683a66f4fa283204a5db05e3">~EbertGraphBase</a> ()</td></tr>
<tr class="separator:adb189f1f683a66f4fa283204a5db05e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeda4906d548f46b28df2c0577e42b2c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.html#aeda4906d548f46b28df2c0577e42b2c8">Initialize</a> (NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html#a51a5033049b63ee5ce35b531b8474f0a">max_num_nodes</a>, ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html#a8aad937029f57b70efe059b908241685">max_num_arcs</a>)</td></tr>
<tr class="separator:aeda4906d548f46b28df2c0577e42b2c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68f767cda734319cc4f28e6a4d56b6d4"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.html#a68f767cda734319cc4f28e6a4d56b6d4">FirstOutgoingOrOppositeIncomingArc</a> (const NodeIndexType node) const</td></tr>
<tr class="memdesc:a68f767cda734319cc4f28e6a4d56b6d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the first arc in node's incidence list. <a href="#a68f767cda734319cc4f28e6a4d56b6d4">More...</a><br /></td></tr>
<tr class="separator:a68f767cda734319cc4f28e6a4d56b6d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ba11aca6997abd6ed8327ea9ea0e7b7"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.html#a8ba11aca6997abd6ed8327ea9ea0e7b7">NextAdjacentArc</a> (const ArcIndexType arc) const</td></tr>
<tr class="memdesc:a8ba11aca6997abd6ed8327ea9ea0e7b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the next arc following the passed argument in its adjacency list. <a href="#a8ba11aca6997abd6ed8327ea9ea0e7b7">More...</a><br /></td></tr>
<tr class="separator:a8ba11aca6997abd6ed8327ea9ea0e7b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40da052b528623a6e0f5404547693edf"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.html#a40da052b528623a6e0f5404547693edf">NextOutgoingArc</a> (const NodeIndexType unused_node, const ArcIndexType arc) const</td></tr>
<tr class="memdesc:a40da052b528623a6e0f5404547693edf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the outgoing arc following the argument in the adjacency list. <a href="#a40da052b528623a6e0f5404547693edf">More...</a><br /></td></tr>
<tr class="separator:a40da052b528623a6e0f5404547693edf"><td class="memSeparator" colspan="2">&#160;</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:a26e62c6c3621ffd6cf953bb8e585a064"><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_1EbertGraphBase.html#a26e62c6c3621ffd6cf953bb8e585a064">next_adjacent_arc_</a></td></tr>
<tr class="memdesc:a26e62c6c3621ffd6cf953bb8e585a064"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of next indices. <a href="#a26e62c6c3621ffd6cf953bb8e585a064">More...</a><br /></td></tr>
<tr class="separator:a26e62c6c3621ffd6cf953bb8e585a064"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82e436348dd462d71b362963129d4f7f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.html#a82e436348dd462d71b362963129d4f7f">representation_clean_</a></td></tr>
<tr class="memdesc:a82e436348dd462d71b362963129d4f7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag to indicate that BuildRepresentation() needs to be called before the adjacency lists are examined. <a href="#a82e436348dd462d71b362963129d4f7f">More...</a><br /></td></tr>
<tr class="separator:a82e436348dd462d71b362963129d4f7f"><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_1EbertGraphBase.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>
<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_1EbertGraphBase.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:aa219b1703090300ed69dc9f5f6f54ded"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.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:a539adfb6a1003d4270e0f2c8fe6705b9"><td class="memItemLeft" align="right" valign="top">NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.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:a76da9f41f6215acb4ec4dd8da00c0e28"><td class="memItemLeft" align="right" valign="top">ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.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:ad9877f4f6b0822e2cb6aa9c4fe60ceb9"><td class="memItemLeft" align="right" valign="top">NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.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>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a89aa87fdbc5337e9edcd79499d24fc1d"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1EbertGraphBase.html#a89aa87fdbc5337e9edcd79499d24fc1d">StarGraphBase&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;</a></td></tr>
<tr class="separator:a89aa87fdbc5337e9edcd79499d24fc1d"><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, typename DerivedGraph&gt;<br />
class operations_research::EbertGraphBase&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;</h3>
<p>A template for the base class that holds the functionality that exists in common between the EbertGraph&lt;&gt; template and the ForwardEbertGraph&lt;&gt; template. </p>
<p>This template is for internal use only, and this is enforced by making all constructors for this class template protected. Clients should use one of the two derived-class templates. Most clients will not even use those directly, but will use the StarGraph and ForwardStarGraph typenames declared above.</p>
<p>The DerivedGraph template argument must be the type of the class (typically itself built from a template) that:</p><ol type="1">
<li>implements the full interface expected for either <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html" title="A forward-star-only graph representation for greater efficiency in those algorithms that don&#39;t need r...">ForwardEbertGraph</a> or <a class="el" href="classoperations__research_1_1EbertGraph.html" title="Forward declarations.">EbertGraph</a>, and</li>
<li>inherits from an instance of this template. The base class needs access to some members of the derived class such as, for example, <a class="el" href="classoperations__research_1_1EbertGraphBase.html#a40da052b528623a6e0f5404547693edf" title="Returns the outgoing arc following the argument in the adjacency list.">NextOutgoingArc()</a>, and it gets this access via the DerivedGraph template argument. </li>
</ol>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00948">948</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aef662883e2f42f46cf31255c12169c3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef662883e2f42f46cf31255c12169c3e">&#9670;&nbsp;</a></span>EbertGraphBase()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::<a class="el" href="classoperations__research_1_1EbertGraphBase.html">EbertGraphBase</a> </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 class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01108">1108</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="adb189f1f683a66f4fa283204a5db05e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb189f1f683a66f4fa283204a5db05e3">&#9670;&nbsp;</a></span>~EbertGraphBase()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::~<a class="el" href="classoperations__research_1_1EbertGraphBase.html">EbertGraphBase</a> </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 class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01110">1110</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="a96bf1fdcbfa88edabb7843b6142cb3bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96bf1fdcbfa88edabb7843b6142cb3bd">&#9670;&nbsp;</a></span>AddArc()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::AddArc </td>
<td>(</td>
<td class="paramtype">NodeIndexType&#160;</td>
<td class="paramname"><em>tail</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NodeIndexType&#160;</td>
<td class="paramname"><em>head</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>Adds an arc to the graph and returns its index. </p>
<p>Returns kNilArc if the arc could not be added. </p><dl class="section note"><dt>Note</dt><dd>for a given pair (tail, head) AddArc does not overwrite an already-existing arc between tail and head: Another arc is created instead. This makes it possible to handle multi-graphs. </dd></dl>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01001">1001</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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="a68a1d993a6371e6fbf6a8ffe5c944a45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68a1d993a6371e6fbf6a8ffe5c944a45">&#9670;&nbsp;</a></span>end_arc_index() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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="a68a1d993a6371e6fbf6a8ffe5c944a45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68a1d993a6371e6fbf6a8ffe5c944a45">&#9670;&nbsp;</a></span>end_arc_index() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::end_arc_index</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 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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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="a68f767cda734319cc4f28e6a4d56b6d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68f767cda734319cc4f28e6a4d56b6d4">&#9670;&nbsp;</a></span>FirstOutgoingOrOppositeIncomingArc()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::FirstOutgoingOrOppositeIncomingArc </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the first arc in node's incidence list. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01123">1123</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a7adcbbf1af098a96abf7a3397246304d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7adcbbf1af098a96abf7a3397246304d">&#9670;&nbsp;</a></span>GroupForwardArcsByFunctor()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&gt; </div>
<div class="memtemplate">
template&lt;typename ArcIndexTypeStrictWeakOrderingFunctor &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_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::GroupForwardArcsByFunctor </td>
<td>(</td>
<td class="paramtype">const ArcIndexTypeStrictWeakOrderingFunctor &amp;&#160;</td>
<td class="paramname"><em>compare</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">PermutationCycleHandler&lt; ArcIndexType &gt; *&#160;</td>
<td class="paramname"><em>annotation_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">
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000009">Todo:</a></b></dt><dd>(user): Configure SWIG to handle the GroupForwardArcsByFunctor member template and the <a class="el" href="classoperations__research_1_1EbertGraphBase_1_1CycleHandlerForAnnotatedArcs.html">CycleHandlerForAnnotatedArcs</a> class.</dd></dl>
<p>Determine the permutation that groups arcs by their tail nodes.</p>
<p>Start with the identity permutation.</p>
<p>Now we actually permute the head_ array and the scaled_arc_cost_ array according to the sorting permutation.</p>
<p>Finally, rebuild the graph from its permuted head_ array. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01022">1022</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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="aeda4906d548f46b28df2c0577e42b2c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeda4906d548f46b28df2c0577e42b2c8">&#9670;&nbsp;</a></span>Initialize()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::Initialize </td>
<td>(</td>
<td class="paramtype">NodeIndexType&#160;</td>
<td class="paramname"><em>max_num_nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ArcIndexType&#160;</td>
<td class="paramname"><em>max_num_arcs</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 class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01112">1112</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() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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., <a class="el" href="classoperations__research_1_1EbertGraphBase.html#a96bf1fdcbfa88edabb7843b6142cb3bd" title="Adds an arc to the graph and returns its index.">AddArc()</a>). </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="ad69ccdbdbceba88bf784e2add4964b5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad69ccdbdbceba88bf784e2add4964b5b">&#9670;&nbsp;</a></span>IsNodeValid() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::IsNodeValid</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 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., <a class="el" href="classoperations__research_1_1EbertGraphBase.html#a96bf1fdcbfa88edabb7843b6142cb3bd" title="Adds an arc to the graph and returns its index.">AddArc()</a>). </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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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="a8ba11aca6997abd6ed8327ea9ea0e7b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ba11aca6997abd6ed8327ea9ea0e7b7">&#9670;&nbsp;</a></span>NextAdjacentArc()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::NextAdjacentArc </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the next arc following the passed argument in its adjacency list. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01131">1131</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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 <a class="el" href="classoperations__research_1_1StarGraphBase_1_1ArcIterator.html#a261b6e58a0dfd38d8d0c0d882c2ccf8d" title="Advances the current arc index.">ArcIterator::Next()</a> 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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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 <a class="el" href="classoperations__research_1_1StarGraphBase_1_1NodeIterator.html#aa5e4893b57578a159709ea47eaddcad6" title="Advances the current node index.">NodeIterator::Next()</a> 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="a40da052b528623a6e0f5404547693edf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40da052b528623a6e0f5404547693edf">&#9670;&nbsp;</a></span>NextOutgoingArc()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::NextOutgoingArc </td>
<td>(</td>
<td class="paramtype">const NodeIndexType&#160;</td>
<td class="paramname"><em>unused_node</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const 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 class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the outgoing arc following the argument in the adjacency list. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01138">1138</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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="a2b9709a996fb28b5572783b40e1067c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b9709a996fb28b5572783b40e1067c5">&#9670;&nbsp;</a></span>Reserve()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::Reserve </td>
<td>(</td>
<td class="paramtype">NodeIndexType&#160;</td>
<td class="paramname"><em>new_max_num_nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ArcIndexType&#160;</td>
<td class="paramname"><em>new_max_num_arcs</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>Reserves memory needed for max_num_nodes nodes and max_num_arcs arcs. </p>
<p>Returns false if the parameters passed are not OK. It can be used to enlarge the graph, but does not shrink memory if called with smaller values. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00978">978</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &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>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="a89aa87fdbc5337e9edcd79499d24fc1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89aa87fdbc5337e9edcd79499d24fc1d">&#9670;&nbsp;</a></span>StarGraphBase&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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, DerivedGraph &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#l00951">951</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&gt; </div>
<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, DerivedGraph &gt;::first_incident_arc_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&gt; </div>
<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, DerivedGraph &gt;::head_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&gt; </div>
<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, DerivedGraph &gt;::kFirstArc</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&gt; </div>
<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, DerivedGraph &gt;::kFirstNode</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&gt; </div>
<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, DerivedGraph &gt;::kMaxNumArcs</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&gt; </div>
<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, DerivedGraph &gt;::kMaxNumNodes</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&gt; </div>
<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, DerivedGraph &gt;::kNilArc</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&gt; </div>
<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, DerivedGraph &gt;::kNilNode</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::max_num_arcs_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::max_num_nodes_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</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="a26e62c6c3621ffd6cf953bb8e585a064"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26e62c6c3621ffd6cf953bb8e585a064">&#9670;&nbsp;</a></span>next_adjacent_arc_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&gt; </div>
<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_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::next_adjacent_arc_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Array of next indices. </p>
<p>next_adjacent_arc_[i] contains the next arc in the adjacency list of arc i. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01147">1147</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::num_arcs_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</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">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::num_nodes_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</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>
<a id="a82e436348dd462d71b362963129d4f7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82e436348dd462d71b362963129d4f7f">&#9670;&nbsp;</a></span>representation_clean_</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType, typename ArcIndexType, typename DerivedGraph&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_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, DerivedGraph &gt;::representation_clean_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Flag to indicate that BuildRepresentation() needs to be called before the adjacency lists are examined. </p>
<p>Only for DCHECK in debug builds. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01152">1152</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>