Files
ortools-clone/docs/cpp_graph/classoperations__research_1_1ForwardEbertGraph.html
2019-06-29 18:18:08 +02:00

2035 lines
121 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_1ForwardEbertGraph.html">ForwardEbertGraph</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classoperations__research_1_1ForwardEbertGraph-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">operations_research::ForwardEbertGraph&lt; NodeIndexType, ArcIndexType &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A forward-star-only graph representation for greater efficiency in those algorithms that don't need reverse arcs.
<a href="classoperations__research_1_1ForwardEbertGraph.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::ForwardEbertGraph&lt; NodeIndexType, ArcIndexType &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1ForwardEbertGraph__inherit__graph.png" border="0" usemap="#operations__research_1_1ForwardEbertGraph_3_01NodeIndexType_00_01ArcIndexType_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="operations__research_1_1ForwardEbertGraph_3_01NodeIndexType_00_01ArcIndexType_01_4_inherit__map" id="operations__research_1_1ForwardEbertGraph_3_01NodeIndexType_00_01ArcIndexType_01_4_inherit__map">
<area shape="rect" title="A forward&#45;star&#45;only graph representation for greater efficiency in those algorithms that don&#39;t need r..." alt="" coords="650,12,876,64"/>
<area shape="rect" href="classoperations__research_1_1EbertGraphBase.html" title=" " alt="" coords="328,5,602,71"/>
<area shape="rect" href="classoperations__research_1_1StarGraphBase.html" title=" " alt="" coords="5,5,280,71"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for operations_research::ForwardEbertGraph&lt; NodeIndexType, ArcIndexType &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classoperations__research_1_1ForwardEbertGraph__coll__graph.png" border="0" usemap="#operations__research_1_1ForwardEbertGraph_3_01NodeIndexType_00_01ArcIndexType_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="operations__research_1_1ForwardEbertGraph_3_01NodeIndexType_00_01ArcIndexType_01_4_coll__map" id="operations__research_1_1ForwardEbertGraph_3_01NodeIndexType_00_01ArcIndexType_01_4_coll__map">
<area shape="rect" title="A forward&#45;star&#45;only graph representation for greater efficiency in those algorithms that don&#39;t need r..." alt="" coords="925,83,1151,135"/>
<area shape="rect" href="classoperations__research_1_1EbertGraphBase.html" title=" " alt="" coords="602,77,876,142"/>
<area shape="rect" href="classoperations__research_1_1StarGraphBase.html" title=" " alt="" coords="278,77,552,142"/>
<area shape="rect" title=" " alt="" coords="5,47,120,73"/>
<area shape="rect" title=" " alt="" coords="11,145,114,170"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:abe6bf9da3d9867dfb88d65d99ce657ad"><td class="memItemLeft" align="right" valign="top">typedef NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#abe6bf9da3d9867dfb88d65d99ce657ad">NodeIndex</a></td></tr>
<tr class="separator:abe6bf9da3d9867dfb88d65d99ce657ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd24e74c9c077d01704ea898863e35e6"><td class="memItemLeft" align="right" valign="top">typedef ArcIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#abd24e74c9c077d01704ea898863e35e6">ArcIndex</a></td></tr>
<tr class="separator:abd24e74c9c077d01704ea898863e35e6"><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:acd1b48d245b0892f4427a90011976e6c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#acd1b48d245b0892f4427a90011976e6c">ForwardEbertGraph</a> ()</td></tr>
<tr class="separator:acd1b48d245b0892f4427a90011976e6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40c24da8c720bc8b18274f53c62b24b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#a40c24da8c720bc8b18274f53c62b24b9">ForwardEbertGraph</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:a40c24da8c720bc8b18274f53c62b24b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c8c4982af7ce7f58794956f3267d488"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#a6c8c4982af7ce7f58794956f3267d488">~ForwardEbertGraph</a> ()</td></tr>
<tr class="separator:a6c8c4982af7ce7f58794956f3267d488"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab457a2818b4a5163977eb7547ff718ae"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#ab457a2818b4a5163977eb7547ff718ae">CheckArcBounds</a> (const ArcIndexType arc) const</td></tr>
<tr class="memdesc:ab457a2818b4a5163977eb7547ff718ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility function to check that an arc index is within the bounds. <a href="#ab457a2818b4a5163977eb7547ff718ae">More...</a><br /></td></tr>
<tr class="separator:ab457a2818b4a5163977eb7547ff718ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bf3cfd1f85aa0ff86d1094b34a1301e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#a2bf3cfd1f85aa0ff86d1094b34a1301e">CheckArcValidity</a> (const ArcIndexType arc) const</td></tr>
<tr class="memdesc:a2bf3cfd1f85aa0ff86d1094b34a1301e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility function to check that an arc index is within the bounds AND different from kNilArc. <a href="#a2bf3cfd1f85aa0ff86d1094b34a1301e">More...</a><br /></td></tr>
<tr class="separator:a2bf3cfd1f85aa0ff86d1094b34a1301e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a519e28b63106845b55ceb18c5011c4d7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#a519e28b63106845b55ceb18c5011c4d7">CheckTailIndexValidity</a> (const ArcIndexType arc) const</td></tr>
<tr class="memdesc:a519e28b63106845b55ceb18c5011c4d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if arc is a valid index into the (*tail_) array. <a href="#a519e28b63106845b55ceb18c5011c4d7">More...</a><br /></td></tr>
<tr class="separator:a519e28b63106845b55ceb18c5011c4d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d193a58da3c21d1cb21bc6c46d53dfc"><td class="memItemLeft" align="right" valign="top">NodeIndexType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#a4d193a58da3c21d1cb21bc6c46d53dfc">Tail</a> (const ArcIndexType arc) const</td></tr>
<tr class="memdesc:a4d193a58da3c21d1cb21bc6c46d53dfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the tail or start-node of arc. <a href="#a4d193a58da3c21d1cb21bc6c46d53dfc">More...</a><br /></td></tr>
<tr class="separator:a4d193a58da3c21d1cb21bc6c46d53dfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285687129f5108116d7cc1da74e8b83b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#a285687129f5108116d7cc1da74e8b83b">IsIncoming</a> (ArcIndexType arc, NodeIndexType node) const</td></tr>
<tr class="memdesc:a285687129f5108116d7cc1da74e8b83b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if arc is incoming to node. <a href="#a285687129f5108116d7cc1da74e8b83b">More...</a><br /></td></tr>
<tr class="separator:a285687129f5108116d7cc1da74e8b83b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d533b7e0f3527495348492c87f7b16a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#a1d533b7e0f3527495348492c87f7b16a">BuildRepresentation</a> ()</td></tr>
<tr class="memdesc:a1d533b7e0f3527495348492c87f7b16a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recreates the next_adjacent_arc_ and first_incident_arc_ variables from the arrays head_ and tail_ in O(n + m) time. <a href="#a1d533b7e0f3527495348492c87f7b16a">More...</a><br /></td></tr>
<tr class="separator:a1d533b7e0f3527495348492c87f7b16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c2f42b8fc8a879755cb5c0f9a2bbfb8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#a9c2f42b8fc8a879755cb5c0f9a2bbfb8">BuildTailArray</a> ()</td></tr>
<tr class="separator:a9c2f42b8fc8a879755cb5c0f9a2bbfb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe6ad10691df5e73fce5c0cae0570c96"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#abe6ad10691df5e73fce5c0cae0570c96">ReleaseTailArray</a> ()</td></tr>
<tr class="separator:abe6ad10691df5e73fce5c0cae0570c96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3d8b56d047ccfa87eb083046fac40c6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#aa3d8b56d047ccfa87eb083046fac40c6">TailArrayComplete</a> () const</td></tr>
<tr class="memdesc:aa3d8b56d047ccfa87eb083046fac40c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">To be used in a DCHECK(). <a href="#aa3d8b56d047ccfa87eb083046fac40c6">More...</a><br /></td></tr>
<tr class="separator:aa3d8b56d047ccfa87eb083046fac40c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10201023ae78b259beadb129e3aa85f0"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#a10201023ae78b259beadb129e3aa85f0">DebugString</a> () const</td></tr>
<tr class="memdesc:a10201023ae78b259beadb129e3aa85f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a debug std::string containing all the information contained in the data structure in raw form. <a href="#a10201023ae78b259beadb129e3aa85f0">More...</a><br /></td></tr>
<tr class="separator:a10201023ae78b259beadb129e3aa85f0"><td class="memSeparator" colspan="2">&#160;</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="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" 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: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: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: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: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: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: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: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:a8fdd2d0396c7ec0609a4351f716aef5f"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#a8fdd2d0396c7ec0609a4351f716aef5f">EbertGraphBase&lt; NodeIndexType, ArcIndexType, ForwardEbertGraph&lt; NodeIndexType, ArcIndexType &gt; &gt;</a></td></tr>
<tr class="separator:a8fdd2d0396c7ec0609a4351f716aef5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a693f3f74a8aa4a10dbc5a040fd6c31eb"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#a693f3f74a8aa4a10dbc5a040fd6c31eb">StarGraphBase&lt; NodeIndexType, ArcIndexType, ForwardEbertGraph&lt; NodeIndexType, ArcIndexType &gt; &gt;</a></td></tr>
<tr class="separator:a693f3f74a8aa4a10dbc5a040fd6c31eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename NodeIndexType, typename ArcIndexType&gt;<br />
class operations_research::ForwardEbertGraph&lt; NodeIndexType, ArcIndexType &gt;</h3>
<p>A forward-star-only graph representation for greater efficiency in those algorithms that don't need reverse arcs. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00190">190</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="abd24e74c9c077d01704ea898863e35e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd24e74c9c077d01704ea898863e35e6">&#9670;&nbsp;</a></span>ArcIndex</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef ArcIndexType <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::<a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#abd24e74c9c077d01704ea898863e35e6">ArcIndex</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01599">1599</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="abe6bf9da3d9867dfb88d65d99ce657ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe6bf9da3d9867dfb88d65d99ce657ad">&#9670;&nbsp;</a></span>NodeIndex</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef NodeIndexType <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::<a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#abe6bf9da3d9867dfb88d65d99ce657ad">NodeIndex</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01598">1598</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="acd1b48d245b0892f4427a90011976e6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd1b48d245b0892f4427a90011976e6c">&#9670;&nbsp;</a></span>ForwardEbertGraph() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::<a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</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> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01601">1601</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a40c24da8c720bc8b18274f53c62b24b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40c24da8c720bc8b18274f53c62b24b9">&#9670;&nbsp;</a></span>ForwardEbertGraph() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::<a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a> </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> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01603">1603</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a6c8c4982af7ce7f58794956f3267d488"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c8c4982af7ce7f58794956f3267d488">&#9670;&nbsp;</a></span>~ForwardEbertGraph()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::~<a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</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> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01607">1607</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">
<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, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &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 class="mlabel">inherited</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">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::ArcDebugString </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00310">310</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a1d533b7e0f3527495348492c87f7b16a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d533b7e0f3527495348492c87f7b16a">&#9670;&nbsp;</a></span>BuildRepresentation()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::BuildRepresentation </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Recreates the next_adjacent_arc_ and first_incident_arc_ variables from the arrays head_ and tail_ in O(n + m) time. </p>
<p>This is useful if the head_ and tail_ arrays have been sorted according to a given criterion, for example. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01646">1646</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a9c2f42b8fc8a879755cb5c0f9a2bbfb8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c2f42b8fc8a879755cb5c0f9a2bbfb8">&#9670;&nbsp;</a></span>BuildTailArray()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::BuildTailArray </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>If (*tail_) is already allocated, we have the invariant that its contents are canonical, so we do not need to do anything here in that case except return true.</p>
<p>We have been asked to build the (*tail_) array, but we have no valid information from which to build it. The graph is in an unrecoverable, inconsistent state.</p>
<p>Reallocate (*tail_) and rebuild its contents from the adjacency lists. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01656">1656</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="ab457a2818b4a5163977eb7547ff718ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab457a2818b4a5163977eb7547ff718ae">&#9670;&nbsp;</a></span>CheckArcBounds()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::CheckArcBounds </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Utility function to check that an arc index is within the bounds. </p>
<p>It is exported so that users of the <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html" title="A forward-star-only graph representation for greater efficiency in those algorithms that don&#39;t need r...">ForwardEbertGraph</a> class can use it. To be used in a DCHECK. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01612">1612</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a2bf3cfd1f85aa0ff86d1094b34a1301e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2bf3cfd1f85aa0ff86d1094b34a1301e">&#9670;&nbsp;</a></span>CheckArcValidity()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::CheckArcValidity </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Utility function to check that an arc index is within the bounds AND different from kNilArc. </p>
<p>It is exported so that users of the <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html" title="A forward-star-only graph representation for greater efficiency in those algorithms that don&#39;t need r...">ForwardEbertGraph</a> class can use it. To be used in a DCHECK. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01620">1620</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a519e28b63106845b55ceb18c5011c4d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a519e28b63106845b55ceb18c5011c4d7">&#9670;&nbsp;</a></span>CheckTailIndexValidity()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::CheckTailIndexValidity </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if arc is a valid index into the (*tail_) array. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01625">1625</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a10201023ae78b259beadb129e3aa85f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10201023ae78b259beadb129e3aa85f0">&#9670;&nbsp;</a></span>DebugString()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::DebugString </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a debug std::string containing all the information contained in the data structure in raw form. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01698">1698</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">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::end_arc_index </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns one more than the largest index of an extant direct arc. </p>
<p>To be used as a helper when clients need to dimension or iterate over arrays of arc annotation information. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00252">252</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="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">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::end_arc_index</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns one more than the largest index of an extant direct arc. </p>
<p>To be used as a helper when clients need to dimension or iterate over arrays of arc annotation information. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00252">252</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a03cebcf1fdf356a8217ae2879100d324"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a03cebcf1fdf356a8217ae2879100d324">&#9670;&nbsp;</a></span>end_node_index()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::end_node_index </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns one more than the largest index of an extant node, meaning a node that is mentioned as the head or tail of some arc in the graph. </p>
<p>To be used as a helper when clients need to dimension or iterate over arrays of node annotation information. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00247">247</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="ae83c0a0706d7c6bf85e08719e818c813"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae83c0a0706d7c6bf85e08719e818c813">&#9670;&nbsp;</a></span>FirstOutgoingArc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::FirstOutgoingArc </td>
<td>(</td>
<td class="paramtype">const NodeIndexType&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the first outgoing arc for node. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00479">479</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a68f767cda734319cc4f28e6a4d56b6d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68f767cda734319cc4f28e6a4d56b6d4">&#9670;&nbsp;</a></span>FirstOutgoingOrOppositeIncomingArc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &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 class="mlabel">inherited</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">
<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, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &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 class="mlabel">inherited</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 CycleHandlerForAnnotatedArcs 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">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::Head </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the head or end-node of arc. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00297">297</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="aeda4906d548f46b28df2c0577e42b2c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeda4906d548f46b28df2c0577e42b2c8">&#9670;&nbsp;</a></span>Initialize()</h2>
<div class="memitem">
<div class="memproto">
<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, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &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 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#l01112">1112</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a285687129f5108116d7cc1da74e8b83b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a285687129f5108116d7cc1da74e8b83b">&#9670;&nbsp;</a></span>IsIncoming()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::IsIncoming </td>
<td>(</td>
<td class="paramtype">ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">NodeIndexType&#160;</td>
<td class="paramname"><em>node</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if arc is incoming to node. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01638">1638</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">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::IsNodeValid </td>
<td>(</td>
<td class="paramtype">NodeIndexType&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Utility function to check that a node index is within the bounds AND different from kNilNode. </p>
<p>Returns true if node is in the range [kFirstNode .. max_num_nodes_). It is exported so that users of the DerivedGraph class can use it. To be used in a DCHECK; also used internally to validate arguments passed to our methods from clients (e.g., <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">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::IsNodeValid</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="ad24fe35c2e3798137b42e1bc1c35e587"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad24fe35c2e3798137b42e1bc1c35e587">&#9670;&nbsp;</a></span>LookUpArc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::LookUpArc </td>
<td>(</td>
<td class="paramtype">const NodeIndexType&#160;</td>
<td class="paramname"><em>tail</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const NodeIndexType&#160;</td>
<td class="paramname"><em>head</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the first arc going from tail to head, if it exists, or kNilArc if such an arc does not exist. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00285">285</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a7e2435063a7df2859f5b589852a8d4d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e2435063a7df2859f5b589852a8d4d3">&#9670;&nbsp;</a></span>max_end_arc_index()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::max_end_arc_index </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns one more than the largest valid index of a direct arc. </p>
<p>To be used as a helper when clients need to dimension or iterate over arrays of arc annotation information. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00271">271</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a6aecaff5cd6eea0a7c93de644b8defc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6aecaff5cd6eea0a7c93de644b8defc6">&#9670;&nbsp;</a></span>max_end_node_index()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::max_end_node_index </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns one more than the largest valid index of a node. </p>
<p>To be used as a helper when clients need to dimension or iterate over arrays of node annotation information. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00264">264</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a8aad937029f57b70efe059b908241685"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8aad937029f57b70efe059b908241685">&#9670;&nbsp;</a></span>max_num_arcs()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::max_num_arcs </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the maximum possible number of original arcs in the graph. </p>
<p>(The ones with positive indices.) </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00259">259</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a51a5033049b63ee5ce35b531b8474f0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51a5033049b63ee5ce35b531b8474f0a">&#9670;&nbsp;</a></span>max_num_nodes()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::max_num_nodes </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the maximum possible number of nodes in the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00255">255</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a8ba11aca6997abd6ed8327ea9ea0e7b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ba11aca6997abd6ed8327ea9ea0e7b7">&#9670;&nbsp;</a></span>NextAdjacentArc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &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 class="mlabel">inherited</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">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::NextArc </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the arc following the argument in the graph. </p>
<p>Returns kNilArc (= end) if the range of arcs has been exhausted. It is called by ArcIterator::Next() and as such does not expect to be passed an argument equal to kNilArc. This is why the return line is simplified from return ( arc == kNilArc || next_arc &gt;= num_arcs_) ? kNilArc : next_arc; to return next_arc &lt; num_arcs_ ? next_arc : kNilArc; </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00472">472</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a8038f289c7e5558d1b4d264677c0f4be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8038f289c7e5558d1b4d264677c0f4be">&#9670;&nbsp;</a></span>NextNode()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::NextNode </td>
<td>(</td>
<td class="paramtype">const NodeIndexType&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the node following the argument in the graph. </p>
<p>Returns kNilNode (= end) if the range of nodes has been exhausted. It is called by NodeIterator::Next() and as such does not expect to be passed an argument equal to kNilNode. This is why the return line is simplified from return (node == kNilNode || next_node &gt;= num_nodes_) ? kNilNode : next_node; to return next_node &lt; num_nodes_ ? next_node : kNilNode; </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00458">458</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a40da052b528623a6e0f5404547693edf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40da052b528623a6e0f5404547693edf">&#9670;&nbsp;</a></span>NextOutgoingArc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1EbertGraphBase.html">operations_research::EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &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 class="mlabel">inherited</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">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::NodeDebugString </td>
<td>(</td>
<td class="paramtype">const NodeIndexType&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00302">302</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="ac0ae30f08a54ea67bf295b446157aed3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0ae30f08a54ea67bf295b446157aed3">&#9670;&nbsp;</a></span>num_arcs()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::num_arcs </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of original arcs in the graph (The ones with positive indices.) </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00241">241</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="aa8a10d242f7088bfdee282e1246e00b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8a10d242f7088bfdee282e1246e00b8">&#9670;&nbsp;</a></span>num_nodes()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::num_nodes </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of nodes in the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00237">237</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="abe6ad10691df5e73fce5c0cae0570c96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe6ad10691df5e73fce5c0cae0570c96">&#9670;&nbsp;</a></span>ReleaseTailArray()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::ReleaseTailArray </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01684">1684</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">
<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, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &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 class="mlabel">inherited</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">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::StartArc </td>
<td>(</td>
<td class="paramtype">ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns kNilArc if the graph has no arcs arc if it has at least one arc. </p>
<p>Useful for initializing iterators correctly in the case of empty graphs. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00445">445</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a7cf8fa1e0a3abc8179da6309a86097f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7cf8fa1e0a3abc8179da6309a86097f5">&#9670;&nbsp;</a></span>StartNode()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::StartNode </td>
<td>(</td>
<td class="paramtype">NodeIndexType&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns kNilNode if the graph has no nodes or node if it has at least one node. </p>
<p>Useful for initializing iterators correctly in the case of empty graphs. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00439">439</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a4d193a58da3c21d1cb21bc6c46d53dfc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d193a58da3c21d1cb21bc6c46d53dfc">&#9670;&nbsp;</a></span>Tail()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::Tail </td>
<td>(</td>
<td class="paramtype">const ArcIndexType&#160;</td>
<td class="paramname"><em>arc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the tail or start-node of arc. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01631">1631</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="aa3d8b56d047ccfa87eb083046fac40c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa3d8b56d047ccfa87eb083046fac40c6">&#9670;&nbsp;</a></span>TailArrayComplete()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">operations_research::ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt;::TailArrayComplete </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>To be used in a DCHECK(). </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01687">1687</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="a8fdd2d0396c7ec0609a4351f716aef5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8fdd2d0396c7ec0609a4351f716aef5f">&#9670;&nbsp;</a></span>EbertGraphBase&lt; NodeIndexType, ArcIndexType, ForwardEbertGraph&lt; NodeIndexType, ArcIndexType &gt; &gt;</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">friend class <a class="el" href="classoperations__research_1_1EbertGraphBase.html">EbertGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01569">1569</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a693f3f74a8aa4a10dbc5a040fd6c31eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a693f3f74a8aa4a10dbc5a040fd6c31eb">&#9670;&nbsp;</a></span>StarGraphBase&lt; NodeIndexType, ArcIndexType, ForwardEbertGraph&lt; NodeIndexType, ArcIndexType &gt; &gt;</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NodeIndexType , typename ArcIndexType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">friend class <a class="el" href="classoperations__research_1_1StarGraphBase.html">StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l01571">1571</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="af1a0166faa8ccde14511e9fc547febac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1a0166faa8ccde14511e9fc547febac">&#9670;&nbsp;</a></span>first_incident_arc_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ZVector&lt;ArcIndexType&gt; <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::first_incident_arc_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Array of arc indices. </p>
<p>first_incident_arc_[i] contains the first arc incident to node i. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00502">502</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a1d032dcb17aa589d9a386fe04499654b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d032dcb17aa589d9a386fe04499654b">&#9670;&nbsp;</a></span>head_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ZVector&lt;NodeIndexType&gt; <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::head_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Array of node indices. head_[i] contains the head node of arc i. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00498">498</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a3693e89df768c2f25a31d4b4ee64ee3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3693e89df768c2f25a31d4b4ee64ee3a">&#9670;&nbsp;</a></span>kFirstArc</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::kFirstArc</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The index of the first arc in the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00225">225</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a2c2ac42ee1d86e253e0a85f3f1321824"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c2ac42ee1d86e253e0a85f3f1321824">&#9670;&nbsp;</a></span>kFirstNode</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::kFirstNode</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The index of the first node in the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00222">222</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a043c924d609639e1cc5bea7d4a5a7fd3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a043c924d609639e1cc5bea7d4a5a7fd3">&#9670;&nbsp;</a></span>kMaxNumArcs</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::kMaxNumArcs</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum possible number of arcs in the graph. </p>
<p>(The maximum index is kMaxNumArcs-1, since indices start at 0. Unfortunately we waste a value representing this and the max_num_arcs_ member.)</p>
<p>(The maximum index is kMaxNumArcs-1, since indices start at 0.) </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00235">235</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="aebc1c53cc0d7242f47f0cf971a105e20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebc1c53cc0d7242f47f0cf971a105e20">&#9670;&nbsp;</a></span>kMaxNumNodes</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::kMaxNumNodes</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum possible number of nodes in the graph. </p>
<p>The maximum possible node index in the graph.</p>
<p>(The maximum index is kMaxNumNodes-1, since indices start at 0. Unfortunately we waste a value representing this and the max_num_nodes_ member.) </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00230">230</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a7174acc6507b365096d7122ef430b1dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7174acc6507b365096d7122ef430b1dc">&#9670;&nbsp;</a></span>kNilArc</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::kNilArc</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The index of the 'nil' arc in the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00219">219</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a2c3f7aa31326efb573187d321679cba6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c3f7aa31326efb573187d321679cba6">&#9670;&nbsp;</a></span>kNilNode</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::kNilNode</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The index of the 'nil' node in the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00216">216</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="aa219b1703090300ed69dc9f5f6f54ded"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa219b1703090300ed69dc9f5f6f54ded">&#9670;&nbsp;</a></span>max_num_arcs_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::max_num_arcs_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum number of arcs that the graph can hold. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00489">489</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="a539adfb6a1003d4270e0f2c8fe6705b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a539adfb6a1003d4270e0f2c8fe6705b9">&#9670;&nbsp;</a></span>max_num_nodes_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::max_num_nodes_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum number of nodes that the graph can hold. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00486">486</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="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">
<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, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::next_adjacent_arc_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Array of 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">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ArcIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::num_arcs_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The current number of arcs held by the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00495">495</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<a id="ad9877f4f6b0822e2cb6aa9c4fe60ceb9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9877f4f6b0822e2cb6aa9c4fe60ceb9">&#9670;&nbsp;</a></span>num_nodes_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">NodeIndexType <a class="el" href="classoperations__research_1_1StarGraphBase.html">operations_research::StarGraphBase</a>&lt; NodeIndexType, ArcIndexType, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::num_nodes_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum index of the node currently held by the graph. </p>
<p class="definition">Definition at line <a class="el" href="ebert__graph_8h_source.html#l00492">492</a> of file <a class="el" href="ebert__graph_8h_source.html">ebert_graph.h</a>.</p>
</div>
</div>
<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">
<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, <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html">ForwardEbertGraph</a>&lt; NodeIndexType, ArcIndexType &gt; &gt;::representation_clean_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">inherited</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Flag to indicate that <a class="el" href="classoperations__research_1_1ForwardEbertGraph.html#a1d533b7e0f3527495348492c87f7b16a" title="Recreates the next_adjacent_arc_ and first_incident_arc_ variables from the arrays head_ and tail_ in...">BuildRepresentation()</a> 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>