Files
ortools-clone/docs/cpp/namespaceutil.html
2021-12-14 13:41:01 +01:00

1960 lines
106 KiB
HTML

<!-- HTML header for doxygen 1.8.18-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OR-Tools: util Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="styleSheet.tmp.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="orLogo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">OR-Tools
&#160;<span id="projectnumber">9.2</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('namespaceutil.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">util Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceutil_1_1graph"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil_1_1graph.html">graph</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceutil_1_1internal"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil_1_1internal.html">internal</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_base_graph.html">BaseGraph</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_begin_end_reverse_iterator_wrapper.html">BeginEndReverseIteratorWrapper</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_begin_end_wrapper.html">BeginEndWrapper</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_complete_bipartite_graph.html">CompleteBipartiteGraph</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_complete_graph.html">CompleteGraph</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_integer_range.html">IntegerRange</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_integer_range_iterator.html">IntegerRangeIterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_list_graph.html">ListGraph</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structutil_1_1_mutable_vector_iteration.html">MutableVectorIteration</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_list_graph.html">ReverseArcListGraph</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_mixed_graph.html">ReverseArcMixedGraph</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_reverse_arc_static_graph.html">ReverseArcStaticGraph</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_static_graph.html">StaticGraph</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_status_builder.html">StatusBuilder</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_s_vector.html">SVector</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_topological_sorter.html">TopologicalSorter</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classutil_1_1_undirected_adjacency_lists_of_directed_graph.html">UndirectedAdjacencyListsOfDirectedGraph</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a2f76166dbe0c4055a1f256235ad00478"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classutil_1_1_list_graph.html">ListGraph</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a></td></tr>
<tr class="separator:a2f76166dbe0c4055a1f256235ad00478"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74fc6e241bfc96048a5612a62fa34d11"><td class="memItemLeft" align="right" valign="top">typedef ::<a class="el" href="classutil_1_1internal_1_1_dense_int_topological_sorter_tpl.html">util::internal::DenseIntTopologicalSorterTpl</a>&lt; true &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a74fc6e241bfc96048a5612a62fa34d11">DenseIntStableTopologicalSorter</a></td></tr>
<tr class="separator:a74fc6e241bfc96048a5612a62fa34d11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1e0eacbfb0b5de3f7453de0f9a48201"><td class="memItemLeft" align="right" valign="top">typedef ::<a class="el" href="classutil_1_1internal_1_1_dense_int_topological_sorter_tpl.html">util::internal::DenseIntTopologicalSorterTpl</a>&lt; false &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#af1e0eacbfb0b5de3f7453de0f9a48201">DenseIntTopologicalSorter</a></td></tr>
<tr class="separator:af1e0eacbfb0b5de3f7453de0f9a48201"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a2d1e9c029dfaa2e8dfd58862836440b9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a2d1e9c029dfaa2e8dfd58862836440b9">GraphToStringFormat</a> { <a class="el" href="namespaceutil.html#a2d1e9c029dfaa2e8dfd58862836440b9a59afa9bae775818b44690c5d14cdf8d0">PRINT_GRAPH_ARCS</a>
, <a class="el" href="namespaceutil.html#a2d1e9c029dfaa2e8dfd58862836440b9ac932364714f74e3ca75990c8126019a1">PRINT_GRAPH_ADJACENCY_LISTS</a>
, <a class="el" href="namespaceutil.html#a2d1e9c029dfaa2e8dfd58862836440b9ada36744a3f529ceb03e7c1faa842854d">PRINT_GRAPH_ADJACENCY_LISTS_SORTED</a>
}</td></tr>
<tr class="separator:a2d1e9c029dfaa2e8dfd58862836440b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a366d433bd2afb387ea527c581447dffc"><td class="memTemplParams" colspan="2">template&lt;class UndirectedGraph &gt; </td></tr>
<tr class="memitem:a366d433bd2afb387ea527c581447dffc"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a366d433bd2afb387ea527c581447dffc">GetConnectedComponents</a> (int num_nodes, const UndirectedGraph &amp;graph)</td></tr>
<tr class="separator:a366d433bd2afb387ea527c581447dffc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9470623ca7db3c4a62ce3b326c6b07d8"><td class="memTemplParams" colspan="2">template&lt;class IntVector , class Array , class ElementType &gt; </td></tr>
<tr class="memitem:a9470623ca7db3c4a62ce3b326c6b07d8"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a9470623ca7db3c4a62ce3b326c6b07d8">PermuteWithExplicitElementType</a> (const IntVector &amp;permutation, Array *array_to_permute, ElementType unused)</td></tr>
<tr class="separator:a9470623ca7db3c4a62ce3b326c6b07d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c227a057c1ce9d46b1185abf77ad91e"><td class="memTemplParams" colspan="2">template&lt;class IntVector , class Array &gt; </td></tr>
<tr class="memitem:a8c227a057c1ce9d46b1185abf77ad91e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a8c227a057c1ce9d46b1185abf77ad91e">Permute</a> (const IntVector &amp;permutation, Array *array_to_permute)</td></tr>
<tr class="separator:a8c227a057c1ce9d46b1185abf77ad91e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac497881c4166bc694adc4bee62746118"><td class="memTemplParams" colspan="2">template&lt;class IntVector &gt; </td></tr>
<tr class="memitem:ac497881c4166bc694adc4bee62746118"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#ac497881c4166bc694adc4bee62746118">Permute</a> (const IntVector &amp;permutation, std::vector&lt; bool &gt; *array_to_permute)</td></tr>
<tr class="separator:ac497881c4166bc694adc4bee62746118"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37be0131ae922e30a286797a0bef0c96"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a37be0131ae922e30a286797a0bef0c96">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_list_graph.html">ListGraph</a>, Outgoing, Base::kNilArc)</td></tr>
<tr class="separator:a37be0131ae922e30a286797a0bef0c96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3c40fc068f645d9dcd15c332e44fc25"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#af3c40fc068f645d9dcd15c332e44fc25">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_static_graph.html">StaticGraph</a>, Outgoing, DirectArcLimit(node))</td></tr>
<tr class="separator:af3c40fc068f645d9dcd15c332e44fc25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3098e161a6aceeca482be78d2d221b3b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a3098e161a6aceeca482be78d2d221b3b">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_reverse_arc_list_graph.html">ReverseArcListGraph</a>, Outgoing, Base::kNilArc)</td></tr>
<tr class="separator:a3098e161a6aceeca482be78d2d221b3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d0ae05975a2063f2edbeb749f690fc7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a4d0ae05975a2063f2edbeb749f690fc7">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_reverse_arc_list_graph.html">ReverseArcListGraph</a>, Incoming, Base::kNilArc)</td></tr>
<tr class="separator:a4d0ae05975a2063f2edbeb749f690fc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22b5dcc01043ab8da01ebab71ec3ad31"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a22b5dcc01043ab8da01ebab71ec3ad31">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_reverse_arc_list_graph.html">ReverseArcListGraph</a>, OutgoingOrOppositeIncoming, Base::kNilArc)</td></tr>
<tr class="separator:a22b5dcc01043ab8da01ebab71ec3ad31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a863ccdb51afb5ef92fe6c94188a5f7e0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a863ccdb51afb5ef92fe6c94188a5f7e0">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_reverse_arc_list_graph.html">ReverseArcListGraph</a>, OppositeIncoming, Base::kNilArc)</td></tr>
<tr class="separator:a863ccdb51afb5ef92fe6c94188a5f7e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cc2a1037195d237820edc97d35404be"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a2cc2a1037195d237820edc97d35404be">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_reverse_arc_static_graph.html">ReverseArcStaticGraph</a>, Outgoing, DirectArcLimit(node))</td></tr>
<tr class="separator:a2cc2a1037195d237820edc97d35404be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a51d676cd5d9354bfe1f80d09c44f39"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a2a51d676cd5d9354bfe1f80d09c44f39">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_reverse_arc_static_graph.html">ReverseArcStaticGraph</a>, Incoming, ReverseArcLimit(node))</td></tr>
<tr class="separator:a2a51d676cd5d9354bfe1f80d09c44f39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1db1a919e67261878ff8abda53e664c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a1db1a919e67261878ff8abda53e664c7">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_reverse_arc_static_graph.html">ReverseArcStaticGraph</a>, OutgoingOrOppositeIncoming, DirectArcLimit(node))</td></tr>
<tr class="separator:a1db1a919e67261878ff8abda53e664c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1728675285eb75f9f18d6ed7c134d0b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a1728675285eb75f9f18d6ed7c134d0b6">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_reverse_arc_static_graph.html">ReverseArcStaticGraph</a>, OppositeIncoming, ReverseArcLimit(node))</td></tr>
<tr class="separator:a1728675285eb75f9f18d6ed7c134d0b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3308688d13e59e2351bef038ce1fdb0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#ab3308688d13e59e2351bef038ce1fdb0">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_reverse_arc_mixed_graph.html">ReverseArcMixedGraph</a>, Outgoing, DirectArcLimit(node))</td></tr>
<tr class="separator:ab3308688d13e59e2351bef038ce1fdb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c022b68f68916770fe09996df2f35a3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a3c022b68f68916770fe09996df2f35a3">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_reverse_arc_mixed_graph.html">ReverseArcMixedGraph</a>, Incoming, Base::kNilArc)</td></tr>
<tr class="separator:a3c022b68f68916770fe09996df2f35a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97910ddfce7560b406aa3f4939434eb8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a97910ddfce7560b406aa3f4939434eb8">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_reverse_arc_mixed_graph.html">ReverseArcMixedGraph</a>, OutgoingOrOppositeIncoming, DirectArcLimit(node))</td></tr>
<tr class="separator:a97910ddfce7560b406aa3f4939434eb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ce1a67d16c75b202f56301321a457c6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a6ce1a67d16c75b202f56301321a457c6">DEFINE_RANGE_BASED_ARC_ITERATION</a> (<a class="el" href="classutil_1_1_reverse_arc_mixed_graph.html">ReverseArcMixedGraph</a>, OppositeIncoming, Base::kNilArc)</td></tr>
<tr class="separator:a6ce1a67d16c75b202f56301321a457c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a372b5c94ec5d30f923449516ebc2a963"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:a372b5c94ec5d30f923449516ebc2a963"><td class="memTemplItemLeft" align="right" valign="top">std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a372b5c94ec5d30f923449516ebc2a963">GraphToString</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph, <a class="el" href="namespaceutil.html#a2d1e9c029dfaa2e8dfd58862836440b9">GraphToStringFormat</a> format)</td></tr>
<tr class="separator:a372b5c94ec5d30f923449516ebc2a963"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45fca0c4762006176ad5622ec40dea9c"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:a45fca0c4762006176ad5622ec40dea9c"><td class="memTemplItemLeft" align="right" valign="top">absl::Status&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a45fca0c4762006176ad5622ec40dea9c">WriteGraphToFile</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph, const std::string &amp;filename, bool directed, const std::vector&lt; int &gt; &amp;num_nodes_with_color)</td></tr>
<tr class="separator:a45fca0c4762006176ad5622ec40dea9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30a4999be011343be06bd28753bf8ecc"><td class="memTemplParams" colspan="2">template&lt;typename Iterator &gt; </td></tr>
<tr class="memitem:a30a4999be011343be06bd28753bf8ecc"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classutil_1_1_begin_end_wrapper.html">BeginEndWrapper</a>&lt; Iterator &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a30a4999be011343be06bd28753bf8ecc">BeginEndRange</a> (Iterator begin, Iterator end)</td></tr>
<tr class="separator:a30a4999be011343be06bd28753bf8ecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68be0ef9f4566f20fbf5238b24385216"><td class="memTemplParams" colspan="2">template&lt;typename Iterator &gt; </td></tr>
<tr class="memitem:a68be0ef9f4566f20fbf5238b24385216"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classutil_1_1_begin_end_wrapper.html">BeginEndWrapper</a>&lt; Iterator &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a68be0ef9f4566f20fbf5238b24385216">BeginEndRange</a> (std::pair&lt; Iterator, Iterator &gt; begin_end)</td></tr>
<tr class="separator:a68be0ef9f4566f20fbf5238b24385216"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a628255019800e5a053d08b1f0c5a05f2"><td class="memTemplParams" colspan="2">template&lt;typename MultiMap &gt; </td></tr>
<tr class="memitem:a628255019800e5a053d08b1f0c5a05f2"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classutil_1_1_begin_end_wrapper.html">BeginEndWrapper</a>&lt; typename MultiMap::iterator &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a628255019800e5a053d08b1f0c5a05f2">EqualRange</a> (MultiMap &amp;multi_map, const typename MultiMap::key_type &amp;key)</td></tr>
<tr class="separator:a628255019800e5a053d08b1f0c5a05f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a203f5498a7e1bc70f8ff62c0cfaaf8b1"><td class="memTemplParams" colspan="2">template&lt;typename MultiMap &gt; </td></tr>
<tr class="memitem:a203f5498a7e1bc70f8ff62c0cfaaf8b1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classutil_1_1_begin_end_wrapper.html">BeginEndWrapper</a>&lt; typename MultiMap::const_iterator &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a203f5498a7e1bc70f8ff62c0cfaaf8b1">EqualRange</a> (const MultiMap &amp;multi_map, const typename MultiMap::key_type &amp;key)</td></tr>
<tr class="separator:a203f5498a7e1bc70f8ff62c0cfaaf8b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a208121f27c615b309e2ab37bb85280f1"><td class="memTemplParams" colspan="2">template&lt;typename Container &gt; </td></tr>
<tr class="memitem:a208121f27c615b309e2ab37bb85280f1"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classutil_1_1_begin_end_reverse_iterator_wrapper.html">BeginEndReverseIteratorWrapper</a>&lt; Container &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a208121f27c615b309e2ab37bb85280f1">Reverse</a> (const Container &amp;c)</td></tr>
<tr class="separator:a208121f27c615b309e2ab37bb85280f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79fc51a824ebf81a2c4653f8f53ddd45"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a79fc51a824ebf81a2c4653f8f53ddd45">FindCycleInDenseIntGraph</a> (int num_nodes, const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;arcs)</td></tr>
<tr class="separator:a79fc51a824ebf81a2c4653f8f53ddd45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9089cade9c569feaf5a6a08125fd95"><td class="memItemLeft" align="right" valign="top">ABSL_MUST_USE_RESULT bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a2c9089cade9c569feaf5a6a08125fd95">DenseIntTopologicalSort</a> (int num_nodes, const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;arcs, std::vector&lt; int &gt; *topological_order)</td></tr>
<tr class="separator:a2c9089cade9c569feaf5a6a08125fd95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3584140482c04f67affe2242acf868d"><td class="memItemLeft" align="right" valign="top">ABSL_MUST_USE_RESULT bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#af3584140482c04f67affe2242acf868d">DenseIntStableTopologicalSort</a> (int num_nodes, const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;arcs, std::vector&lt; int &gt; *topological_order)</td></tr>
<tr class="separator:af3584140482c04f67affe2242acf868d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49200d01f1aec6ee7837ad3e09b0d880"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a49200d01f1aec6ee7837ad3e09b0d880"><td class="memTemplItemLeft" align="right" valign="top">ABSL_MUST_USE_RESULT bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a49200d01f1aec6ee7837ad3e09b0d880">TopologicalSort</a> (const std::vector&lt; T &gt; &amp;<a class="el" href="routing__search_8cc.html#a6b7983ccd32c86cbbc3d4d9cda4cac17">nodes</a>, const std::vector&lt; std::pair&lt; T, T &gt; &gt; &amp;arcs, std::vector&lt; T &gt; *topological_order)</td></tr>
<tr class="separator:a49200d01f1aec6ee7837ad3e09b0d880"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f8f58bd1b46837f8305d316bb84d0e1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a9f8f58bd1b46837f8305d316bb84d0e1"><td class="memTemplItemLeft" align="right" valign="top">ABSL_MUST_USE_RESULT bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a9f8f58bd1b46837f8305d316bb84d0e1">StableTopologicalSort</a> (const std::vector&lt; T &gt; &amp;<a class="el" href="routing__search_8cc.html#a6b7983ccd32c86cbbc3d4d9cda4cac17">nodes</a>, const std::vector&lt; std::pair&lt; T, T &gt; &gt; &amp;arcs, std::vector&lt; T &gt; *topological_order)</td></tr>
<tr class="separator:a9f8f58bd1b46837f8305d316bb84d0e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f60f83641a75dbbaaf3855541f2529e"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a9f60f83641a75dbbaaf3855541f2529e">DenseIntTopologicalSortOrDie</a> (int num_nodes, const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;arcs)</td></tr>
<tr class="separator:a9f60f83641a75dbbaaf3855541f2529e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a690ad981593a2fd2d70e93838a9e0caa"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a690ad981593a2fd2d70e93838a9e0caa">DenseIntStableTopologicalSortOrDie</a> (int num_nodes, const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;arcs)</td></tr>
<tr class="separator:a690ad981593a2fd2d70e93838a9e0caa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10ecd35497e41c245dd91b83a6b2c63c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a10ecd35497e41c245dd91b83a6b2c63c"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a10ecd35497e41c245dd91b83a6b2c63c">TopologicalSortOrDie</a> (const std::vector&lt; T &gt; &amp;<a class="el" href="routing__search_8cc.html#a6b7983ccd32c86cbbc3d4d9cda4cac17">nodes</a>, const std::vector&lt; std::pair&lt; T, T &gt; &gt; &amp;arcs)</td></tr>
<tr class="separator:a10ecd35497e41c245dd91b83a6b2c63c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4cd4c6ef5dae86954f253e3911387ad"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ad4cd4c6ef5dae86954f253e3911387ad"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#ad4cd4c6ef5dae86954f253e3911387ad">StableTopologicalSortOrDie</a> (const std::vector&lt; T &gt; &amp;<a class="el" href="routing__search_8cc.html#a6b7983ccd32c86cbbc3d4d9cda4cac17">nodes</a>, const std::vector&lt; std::pair&lt; T, T &gt; &gt; &amp;arcs)</td></tr>
<tr class="separator:ad4cd4c6ef5dae86954f253e3911387ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2ae803e2d0270a720f294269b30fc10"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ad2ae803e2d0270a720f294269b30fc10"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#ad2ae803e2d0270a720f294269b30fc10">TopologicalSort</a> (const std::vector&lt; T &gt; &amp;<a class="el" href="routing__search_8cc.html#a6b7983ccd32c86cbbc3d4d9cda4cac17">nodes</a>, const std::vector&lt; std::pair&lt; T, T &gt; &gt; &amp;arcs, std::vector&lt; T &gt; *topological_order)</td></tr>
<tr class="separator:ad2ae803e2d0270a720f294269b30fc10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ed25a07b58c38bbfba6e2912024e541"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a4ed25a07b58c38bbfba6e2912024e541"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a4ed25a07b58c38bbfba6e2912024e541">StableTopologicalSort</a> (const std::vector&lt; T &gt; &amp;<a class="el" href="routing__search_8cc.html#a6b7983ccd32c86cbbc3d4d9cda4cac17">nodes</a>, const std::vector&lt; std::pair&lt; T, T &gt; &gt; &amp;arcs, std::vector&lt; T &gt; *topological_order)</td></tr>
<tr class="separator:a4ed25a07b58c38bbfba6e2912024e541"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3459b0819c97e869f99ed00ad78b0883"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a3459b0819c97e869f99ed00ad78b0883">IsSubsetOf0N</a> (const std::vector&lt; int &gt; &amp;v, int n)</td></tr>
<tr class="separator:a3459b0819c97e869f99ed00ad78b0883"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9aedc5b3920b0ce89959be43ece7625b"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:a9aedc5b3920b0ce89959be43ece7625b"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a9aedc5b3920b0ce89959be43ece7625b">GraphHasSelfArcs</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph)</td></tr>
<tr class="separator:a9aedc5b3920b0ce89959be43ece7625b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cab01cf2313ef202fdb8d1540430c1c"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:a7cab01cf2313ef202fdb8d1540430c1c"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a7cab01cf2313ef202fdb8d1540430c1c">GraphHasDuplicateArcs</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph)</td></tr>
<tr class="separator:a7cab01cf2313ef202fdb8d1540430c1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa94a02ae5c14feb50676668f2de166dc"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:aa94a02ae5c14feb50676668f2de166dc"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#aa94a02ae5c14feb50676668f2de166dc">GraphIsSymmetric</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph)</td></tr>
<tr class="separator:aa94a02ae5c14feb50676668f2de166dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab66702bf387ec38027c1f94444872510"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:ab66702bf387ec38027c1f94444872510"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#ab66702bf387ec38027c1f94444872510">GraphIsWeaklyConnected</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph)</td></tr>
<tr class="separator:ab66702bf387ec38027c1f94444872510"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5f98804c317dda817bff628d868c4dd"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:ae5f98804c317dda817bff628d868c4dd"><td class="memTemplItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#ae5f98804c317dda817bff628d868c4dd">CopyGraph</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph)</td></tr>
<tr class="separator:ae5f98804c317dda817bff628d868c4dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab5724a929530fa1d28749dc82852388"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:aab5724a929530fa1d28749dc82852388"><td class="memTemplItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#aab5724a929530fa1d28749dc82852388">RemapGraph</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph, const std::vector&lt; int &gt; &amp;new_node_index)</td></tr>
<tr class="separator:aab5724a929530fa1d28749dc82852388"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99094e047812eb44a7c2b3b82091f560"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:a99094e047812eb44a7c2b3b82091f560"><td class="memTemplItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a99094e047812eb44a7c2b3b82091f560">GetSubgraphOfNodes</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph, const std::vector&lt; int &gt; &amp;<a class="el" href="routing__search_8cc.html#a6b7983ccd32c86cbbc3d4d9cda4cac17">nodes</a>)</td></tr>
<tr class="separator:a99094e047812eb44a7c2b3b82091f560"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a31111f9a74492f1de9238e463edd2a"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:a8a31111f9a74492f1de9238e463edd2a"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a8a31111f9a74492f1de9238e463edd2a">GetWeaklyConnectedComponents</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph)</td></tr>
<tr class="separator:a8a31111f9a74492f1de9238e463edd2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7986b01cf61a31c09a27b4a97db6a83"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceutil.html#ad7986b01cf61a31c09a27b4a97db6a83">IsValidPermutation</a> (const std::vector&lt; int &gt; &amp;v)</td></tr>
<tr class="separator:ad7986b01cf61a31c09a27b4a97db6a83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95c44a2c444a459f0866bd5607537314"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:a95c44a2c444a459f0866bd5607537314"><td class="memTemplItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a95c44a2c444a459f0866bd5607537314">RemoveSelfArcsAndDuplicateArcs</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph)</td></tr>
<tr class="separator:a95c44a2c444a459f0866bd5607537314"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77ac83968fcb358183853127d83d595a"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:a77ac83968fcb358183853127d83d595a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a77ac83968fcb358183853127d83d595a">RemoveCyclesFromPath</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph, std::vector&lt; int &gt; *arc_path)</td></tr>
<tr class="separator:a77ac83968fcb358183853127d83d595a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3215b610ebe65cde55008dc1367c434e"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:a3215b610ebe65cde55008dc1367c434e"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a3215b610ebe65cde55008dc1367c434e">PathHasCycle</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph, const std::vector&lt; int &gt; &amp;arc_path)</td></tr>
<tr class="separator:a3215b610ebe65cde55008dc1367c434e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00a901881f9035f66a4204da4c0ea3e5"><td class="memTemplParams" colspan="2">template&lt;class <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; </td></tr>
<tr class="memitem:a00a901881f9035f66a4204da4c0ea3e5"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceutil.html#a00a901881f9035f66a4204da4c0ea3e5">ComputeOnePossibleReverseArcMapping</a> (const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;graph, bool die_if_not_symmetric)</td></tr>
<tr class="separator:a00a901881f9035f66a4204da4c0ea3e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="a74fc6e241bfc96048a5612a62fa34d11" name="a74fc6e241bfc96048a5612a62fa34d11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74fc6e241bfc96048a5612a62fa34d11">&#9670;&nbsp;</a></span>DenseIntStableTopologicalSorter</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef ::<a class="el" href="classutil_1_1internal_1_1_dense_int_topological_sorter_tpl.html">util::internal::DenseIntTopologicalSorterTpl</a>&lt; true&gt; <a class="el" href="namespaceutil.html#a74fc6e241bfc96048a5612a62fa34d11">DenseIntStableTopologicalSorter</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="topologicalsorter_8h_source.html#l00233">233</a> of file <a class="el" href="topologicalsorter_8h_source.html">topologicalsorter.h</a>.</p>
</div>
</div>
<a id="af1e0eacbfb0b5de3f7453de0f9a48201" name="af1e0eacbfb0b5de3f7453de0f9a48201"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1e0eacbfb0b5de3f7453de0f9a48201">&#9670;&nbsp;</a></span>DenseIntTopologicalSorter</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef ::<a class="el" href="classutil_1_1internal_1_1_dense_int_topological_sorter_tpl.html">util::internal::DenseIntTopologicalSorterTpl</a>&lt; false&gt; <a class="el" href="namespaceutil.html#af1e0eacbfb0b5de3f7453de0f9a48201">DenseIntTopologicalSorter</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="topologicalsorter_8h_source.html#l00242">242</a> of file <a class="el" href="topologicalsorter_8h_source.html">topologicalsorter.h</a>.</p>
</div>
</div>
<a id="a2f76166dbe0c4055a1f256235ad00478" name="a2f76166dbe0c4055a1f256235ad00478"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f76166dbe0c4055a1f256235ad00478">&#9670;&nbsp;</a></span>Graph</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="classutil_1_1_list_graph.html">ListGraph</a> <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_8h_source.html#l02362">2362</a> of file <a class="el" href="graph_8h_source.html">graph.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a2d1e9c029dfaa2e8dfd58862836440b9" name="a2d1e9c029dfaa2e8dfd58862836440b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d1e9c029dfaa2e8dfd58862836440b9">&#9670;&nbsp;</a></span>GraphToStringFormat</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="namespaceutil.html#a2d1e9c029dfaa2e8dfd58862836440b9">GraphToStringFormat</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a2d1e9c029dfaa2e8dfd58862836440b9a59afa9bae775818b44690c5d14cdf8d0" name="a2d1e9c029dfaa2e8dfd58862836440b9a59afa9bae775818b44690c5d14cdf8d0"></a>PRINT_GRAPH_ARCS&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a2d1e9c029dfaa2e8dfd58862836440b9ac932364714f74e3ca75990c8126019a1" name="a2d1e9c029dfaa2e8dfd58862836440b9ac932364714f74e3ca75990c8126019a1"></a>PRINT_GRAPH_ADJACENCY_LISTS&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a2d1e9c029dfaa2e8dfd58862836440b9ada36744a3f529ceb03e7c1faa842854d" name="a2d1e9c029dfaa2e8dfd58862836440b9ada36744a3f529ceb03e7c1faa842854d"></a>PRINT_GRAPH_ADJACENCY_LISTS_SORTED&#160;</td><td class="fielddoc"></td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="io_8h_source.html#l00038">38</a> of file <a class="el" href="io_8h_source.html">io.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a30a4999be011343be06bd28753bf8ecc" name="a30a4999be011343be06bd28753bf8ecc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30a4999be011343be06bd28753bf8ecc">&#9670;&nbsp;</a></span>BeginEndRange() <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"><a class="el" href="classutil_1_1_begin_end_wrapper.html">BeginEndWrapper</a>&lt; Iterator &gt; util::BeginEndRange </td>
<td>(</td>
<td class="paramtype">Iterator&#160;</td>
<td class="paramname"><em>begin</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Iterator&#160;</td>
<td class="paramname"><em>end</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="iterators_8h_source.html#l00058">58</a> of file <a class="el" href="iterators_8h_source.html">iterators.h</a>.</p>
</div>
</div>
<a id="a68be0ef9f4566f20fbf5238b24385216" name="a68be0ef9f4566f20fbf5238b24385216"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68be0ef9f4566f20fbf5238b24385216">&#9670;&nbsp;</a></span>BeginEndRange() <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"><a class="el" href="classutil_1_1_begin_end_wrapper.html">BeginEndWrapper</a>&lt; Iterator &gt; util::BeginEndRange </td>
<td>(</td>
<td class="paramtype">std::pair&lt; Iterator, Iterator &gt;&#160;</td>
<td class="paramname"><em>begin_end</em></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="iterators_8h_source.html#l00062">62</a> of file <a class="el" href="iterators_8h_source.html">iterators.h</a>.</p>
</div>
</div>
<a id="a00a901881f9035f66a4204da4c0ea3e5" name="a00a901881f9035f66a4204da4c0ea3e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00a901881f9035f66a4204da4c0ea3e5">&#9670;&nbsp;</a></span>ComputeOnePossibleReverseArcMapping()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; int &gt; ComputeOnePossibleReverseArcMapping </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>die_if_not_symmetric</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_2util_8h_source.html#l00387">387</a> of file <a class="el" href="graph_2util_8h_source.html">graph/util.h</a>.</p>
</div>
</div>
<a id="ae5f98804c317dda817bff628d868c4dd" name="ae5f98804c317dda817bff628d868c4dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5f98804c317dda817bff628d868c4dd">&#9670;&nbsp;</a></span>CopyGraph()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt; <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; CopyGraph </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_2util_8h_source.html#l00263">263</a> of file <a class="el" href="graph_2util_8h_source.html">graph/util.h</a>.</p>
</div>
</div>
<a id="a37be0131ae922e30a286797a0bef0c96" name="a37be0131ae922e30a286797a0bef0c96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37be0131ae922e30a286797a0bef0c96">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[1/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_list_graph.html">ListGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Outgoing&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Base::kNilArc&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a4d0ae05975a2063f2edbeb749f690fc7" name="a4d0ae05975a2063f2edbeb749f690fc7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d0ae05975a2063f2edbeb749f690fc7">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[2/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_reverse_arc_list_graph.html">ReverseArcListGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Incoming&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Base::kNilArc&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a863ccdb51afb5ef92fe6c94188a5f7e0" name="a863ccdb51afb5ef92fe6c94188a5f7e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a863ccdb51afb5ef92fe6c94188a5f7e0">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[3/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_reverse_arc_list_graph.html">ReverseArcListGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OppositeIncoming&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Base::kNilArc&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3098e161a6aceeca482be78d2d221b3b" name="a3098e161a6aceeca482be78d2d221b3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3098e161a6aceeca482be78d2d221b3b">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[4/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_reverse_arc_list_graph.html">ReverseArcListGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Outgoing&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Base::kNilArc&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a22b5dcc01043ab8da01ebab71ec3ad31" name="a22b5dcc01043ab8da01ebab71ec3ad31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22b5dcc01043ab8da01ebab71ec3ad31">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[5/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_reverse_arc_list_graph.html">ReverseArcListGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutgoingOrOppositeIncoming&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Base::kNilArc&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3c022b68f68916770fe09996df2f35a3" name="a3c022b68f68916770fe09996df2f35a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c022b68f68916770fe09996df2f35a3">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[6/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_reverse_arc_mixed_graph.html">ReverseArcMixedGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Incoming&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Base::kNilArc&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a6ce1a67d16c75b202f56301321a457c6" name="a6ce1a67d16c75b202f56301321a457c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ce1a67d16c75b202f56301321a457c6">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[7/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_reverse_arc_mixed_graph.html">ReverseArcMixedGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OppositeIncoming&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Base::kNilArc&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab3308688d13e59e2351bef038ce1fdb0" name="ab3308688d13e59e2351bef038ce1fdb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3308688d13e59e2351bef038ce1fdb0">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[8/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_reverse_arc_mixed_graph.html">ReverseArcMixedGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Outgoing&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DirectArcLimit(node)&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a97910ddfce7560b406aa3f4939434eb8" name="a97910ddfce7560b406aa3f4939434eb8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97910ddfce7560b406aa3f4939434eb8">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[9/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_reverse_arc_mixed_graph.html">ReverseArcMixedGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutgoingOrOppositeIncoming&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DirectArcLimit(node)&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2a51d676cd5d9354bfe1f80d09c44f39" name="a2a51d676cd5d9354bfe1f80d09c44f39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a51d676cd5d9354bfe1f80d09c44f39">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[10/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_reverse_arc_static_graph.html">ReverseArcStaticGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Incoming&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ReverseArcLimit(node)&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a1728675285eb75f9f18d6ed7c134d0b6" name="a1728675285eb75f9f18d6ed7c134d0b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1728675285eb75f9f18d6ed7c134d0b6">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[11/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_reverse_arc_static_graph.html">ReverseArcStaticGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OppositeIncoming&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ReverseArcLimit(node)&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2cc2a1037195d237820edc97d35404be" name="a2cc2a1037195d237820edc97d35404be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2cc2a1037195d237820edc97d35404be">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[12/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_reverse_arc_static_graph.html">ReverseArcStaticGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Outgoing&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DirectArcLimit(node)&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a1db1a919e67261878ff8abda53e664c7" name="a1db1a919e67261878ff8abda53e664c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1db1a919e67261878ff8abda53e664c7">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[13/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_reverse_arc_static_graph.html">ReverseArcStaticGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OutgoingOrOppositeIncoming&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DirectArcLimit(node)&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="af3c40fc068f645d9dcd15c332e44fc25" name="af3c40fc068f645d9dcd15c332e44fc25"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3c40fc068f645d9dcd15c332e44fc25">&#9670;&nbsp;</a></span>DEFINE_RANGE_BASED_ARC_ITERATION() <span class="overload">[14/14]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">util::DEFINE_RANGE_BASED_ARC_ITERATION </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classutil_1_1_static_graph.html">StaticGraph</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Outgoing&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DirectArcLimit(node)&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="af3584140482c04f67affe2242acf868d" name="af3584140482c04f67affe2242acf868d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3584140482c04f67affe2242acf868d">&#9670;&nbsp;</a></span>DenseIntStableTopologicalSort()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool DenseIntStableTopologicalSort </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>arcs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt; *&#160;</td>
<td class="paramname"><em>topological_order</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="topologicalsorter_8h_source.html#l00460">460</a> of file <a class="el" href="topologicalsorter_8h_source.html">topologicalsorter.h</a>.</p>
</div>
</div>
<a id="a690ad981593a2fd2d70e93838a9e0caa" name="a690ad981593a2fd2d70e93838a9e0caa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a690ad981593a2fd2d70e93838a9e0caa">&#9670;&nbsp;</a></span>DenseIntStableTopologicalSortOrDie()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; int &gt; DenseIntStableTopologicalSortOrDie </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>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="topologicalsorter_8h_source.html#l00487">487</a> of file <a class="el" href="topologicalsorter_8h_source.html">topologicalsorter.h</a>.</p>
</div>
</div>
<a id="a2c9089cade9c569feaf5a6a08125fd95" name="a2c9089cade9c569feaf5a6a08125fd95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c9089cade9c569feaf5a6a08125fd95">&#9670;&nbsp;</a></span>DenseIntTopologicalSort()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool DenseIntTopologicalSort </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>arcs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt; *&#160;</td>
<td class="paramname"><em>topological_order</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="topologicalsorter_8h_source.html#l00453">453</a> of file <a class="el" href="topologicalsorter_8h_source.html">topologicalsorter.h</a>.</p>
</div>
</div>
<a id="a9f60f83641a75dbbaaf3855541f2529e" name="a9f60f83641a75dbbaaf3855541f2529e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f60f83641a75dbbaaf3855541f2529e">&#9670;&nbsp;</a></span>DenseIntTopologicalSortOrDie()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; int &gt; DenseIntTopologicalSortOrDie </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>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="topologicalsorter_8h_source.html#l00482">482</a> of file <a class="el" href="topologicalsorter_8h_source.html">topologicalsorter.h</a>.</p>
</div>
</div>
<a id="a203f5498a7e1bc70f8ff62c0cfaaf8b1" name="a203f5498a7e1bc70f8ff62c0cfaaf8b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a203f5498a7e1bc70f8ff62c0cfaaf8b1">&#9670;&nbsp;</a></span>EqualRange() <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"><a class="el" href="classutil_1_1_begin_end_wrapper.html">BeginEndWrapper</a>&lt; typename MultiMap::const_iterator &gt; util::EqualRange </td>
<td>(</td>
<td class="paramtype">const MultiMap &amp;&#160;</td>
<td class="paramname"><em>multi_map</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const typename MultiMap::key_type &amp;&#160;</td>
<td class="paramname"><em>key</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="iterators_8h_source.html#l00076">76</a> of file <a class="el" href="iterators_8h_source.html">iterators.h</a>.</p>
</div>
</div>
<a id="a628255019800e5a053d08b1f0c5a05f2" name="a628255019800e5a053d08b1f0c5a05f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a628255019800e5a053d08b1f0c5a05f2">&#9670;&nbsp;</a></span>EqualRange() <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"><a class="el" href="classutil_1_1_begin_end_wrapper.html">BeginEndWrapper</a>&lt; typename MultiMap::iterator &gt; util::EqualRange </td>
<td>(</td>
<td class="paramtype">MultiMap &amp;&#160;</td>
<td class="paramname"><em>multi_map</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const typename MultiMap::key_type &amp;&#160;</td>
<td class="paramname"><em>key</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="iterators_8h_source.html#l00071">71</a> of file <a class="el" href="iterators_8h_source.html">iterators.h</a>.</p>
</div>
</div>
<a id="a79fc51a824ebf81a2c4653f8f53ddd45" name="a79fc51a824ebf81a2c4653f8f53ddd45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79fc51a824ebf81a2c4653f8f53ddd45">&#9670;&nbsp;</a></span>FindCycleInDenseIntGraph()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ABSL_MUST_USE_RESULT std::vector&lt; int &gt; FindCycleInDenseIntGraph </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::pair&lt; int, int &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>arcs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="topologicalsorter_8cc_source.html#l00291">291</a> of file <a class="el" href="topologicalsorter_8cc_source.html">topologicalsorter.cc</a>.</p>
</div>
</div>
<a id="a366d433bd2afb387ea527c581447dffc" name="a366d433bd2afb387ea527c581447dffc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a366d433bd2afb387ea527c581447dffc">&#9670;&nbsp;</a></span>GetConnectedComponents()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; int &gt; GetConnectedComponents </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>num_nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const UndirectedGraph &amp;&#160;</td>
<td class="paramname"><em>graph</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="connected__components_8h_source.html#l00324">324</a> of file <a class="el" href="connected__components_8h_source.html">connected_components.h</a>.</p>
</div>
</div>
<a id="a99094e047812eb44a7c2b3b82091f560" name="a99094e047812eb44a7c2b3b82091f560"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99094e047812eb44a7c2b3b82091f560">&#9670;&nbsp;</a></span>GetSubgraphOfNodes()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt; <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; GetSubgraphOfNodes </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>nodes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_2util_8h_source.html#l00295">295</a> of file <a class="el" href="graph_2util_8h_source.html">graph/util.h</a>.</p>
</div>
</div>
<a id="a8a31111f9a74492f1de9238e463edd2a" name="a8a31111f9a74492f1de9238e463edd2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a31111f9a74492f1de9238e463edd2a">&#9670;&nbsp;</a></span>GetWeaklyConnectedComponents()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; int &gt; util::GetWeaklyConnectedComponents </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_2util_8h_source.html#l00134">134</a> of file <a class="el" href="graph_2util_8h_source.html">graph/util.h</a>.</p>
</div>
</div>
<a id="a7cab01cf2313ef202fdb8d1540430c1c" name="a7cab01cf2313ef202fdb8d1540430c1c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7cab01cf2313ef202fdb8d1540430c1c">&#9670;&nbsp;</a></span>GraphHasDuplicateArcs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool GraphHasDuplicateArcs </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_2util_8h_source.html#l00200">200</a> of file <a class="el" href="graph_2util_8h_source.html">graph/util.h</a>.</p>
</div>
</div>
<a id="a9aedc5b3920b0ce89959be43ece7625b" name="a9aedc5b3920b0ce89959be43ece7625b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9aedc5b3920b0ce89959be43ece7625b">&#9670;&nbsp;</a></span>GraphHasSelfArcs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool GraphHasSelfArcs </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_2util_8h_source.html#l00192">192</a> of file <a class="el" href="graph_2util_8h_source.html">graph/util.h</a>.</p>
</div>
</div>
<a id="aa94a02ae5c14feb50676668f2de166dc" name="aa94a02ae5c14feb50676668f2de166dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa94a02ae5c14feb50676668f2de166dc">&#9670;&nbsp;</a></span>GraphIsSymmetric()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool GraphIsSymmetric </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_2util_8h_source.html#l00218">218</a> of file <a class="el" href="graph_2util_8h_source.html">graph/util.h</a>.</p>
</div>
</div>
<a id="ab66702bf387ec38027c1f94444872510" name="ab66702bf387ec38027c1f94444872510"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab66702bf387ec38027c1f94444872510">&#9670;&nbsp;</a></span>GraphIsWeaklyConnected()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool GraphIsWeaklyConnected </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_2util_8h_source.html#l00247">247</a> of file <a class="el" href="graph_2util_8h_source.html">graph/util.h</a>.</p>
</div>
</div>
<a id="a372b5c94ec5d30f923449516ebc2a963" name="a372b5c94ec5d30f923449516ebc2a963"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a372b5c94ec5d30f923449516ebc2a963">&#9670;&nbsp;</a></span>GraphToString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string GraphToString </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceutil.html#a2d1e9c029dfaa2e8dfd58862836440b9">GraphToStringFormat</a>&#160;</td>
<td class="paramname"><em>format</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="io_8h_source.html#l00072">72</a> of file <a class="el" href="io_8h_source.html">io.h</a>.</p>
</div>
</div>
<a id="a3459b0819c97e869f99ed00ad78b0883" name="a3459b0819c97e869f99ed00ad78b0883"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3459b0819c97e869f99ed00ad78b0883">&#9670;&nbsp;</a></span>IsSubsetOf0N()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool IsSubsetOf0N </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>n</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_2util_8cc_source.html#l00018">18</a> of file <a class="el" href="graph_2util_8cc_source.html">graph/util.cc</a>.</p>
</div>
</div>
<a id="ad7986b01cf61a31c09a27b4a97db6a83" name="ad7986b01cf61a31c09a27b4a97db6a83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7986b01cf61a31c09a27b4a97db6a83">&#9670;&nbsp;</a></span>IsValidPermutation()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool util::IsValidPermutation </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>v</em></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="graph_2util_8h_source.html#l00145">145</a> of file <a class="el" href="graph_2util_8h_source.html">graph/util.h</a>.</p>
</div>
</div>
<a id="a3215b610ebe65cde55008dc1367c434e" name="a3215b610ebe65cde55008dc1367c434e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3215b610ebe65cde55008dc1367c434e">&#9670;&nbsp;</a></span>PathHasCycle()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool PathHasCycle </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>arc_path</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_2util_8h_source.html#l00376">376</a> of file <a class="el" href="graph_2util_8h_source.html">graph/util.h</a>.</p>
</div>
</div>
<a id="a8c227a057c1ce9d46b1185abf77ad91e" name="a8c227a057c1ce9d46b1185abf77ad91e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c227a057c1ce9d46b1185abf77ad91e">&#9670;&nbsp;</a></span>Permute() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void util::Permute </td>
<td>(</td>
<td class="paramtype">const IntVector &amp;&#160;</td>
<td class="paramname"><em>permutation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Array *&#160;</td>
<td class="paramname"><em>array_to_permute</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_8h_source.html#l00740">740</a> of file <a class="el" href="graph_8h_source.html">graph.h</a>.</p>
</div>
</div>
<a id="ac497881c4166bc694adc4bee62746118" name="ac497881c4166bc694adc4bee62746118"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac497881c4166bc694adc4bee62746118">&#9670;&nbsp;</a></span>Permute() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void util::Permute </td>
<td>(</td>
<td class="paramtype">const IntVector &amp;&#160;</td>
<td class="paramname"><em>permutation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; bool &gt; *&#160;</td>
<td class="paramname"><em>array_to_permute</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_8h_source.html#l00751">751</a> of file <a class="el" href="graph_8h_source.html">graph.h</a>.</p>
</div>
</div>
<a id="a9470623ca7db3c4a62ce3b326c6b07d8" name="a9470623ca7db3c4a62ce3b326c6b07d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9470623ca7db3c4a62ce3b326c6b07d8">&#9670;&nbsp;</a></span>PermuteWithExplicitElementType()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void util::PermuteWithExplicitElementType </td>
<td>(</td>
<td class="paramtype">const IntVector &amp;&#160;</td>
<td class="paramname"><em>permutation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Array *&#160;</td>
<td class="paramname"><em>array_to_permute</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ElementType&#160;</td>
<td class="paramname"><em>unused</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_8h_source.html#l00727">727</a> of file <a class="el" href="graph_8h_source.html">graph.h</a>.</p>
</div>
</div>
<a id="aab5724a929530fa1d28749dc82852388" name="aab5724a929530fa1d28749dc82852388"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab5724a929530fa1d28749dc82852388">&#9670;&nbsp;</a></span>RemapGraph()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt; <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; RemapGraph </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>new_node_index</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_2util_8h_source.html#l00276">276</a> of file <a class="el" href="graph_2util_8h_source.html">graph/util.h</a>.</p>
</div>
</div>
<a id="a77ac83968fcb358183853127d83d595a" name="a77ac83968fcb358183853127d83d595a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77ac83968fcb358183853127d83d595a">&#9670;&nbsp;</a></span>RemoveCyclesFromPath()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void RemoveCyclesFromPath </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; int &gt; *&#160;</td>
<td class="paramname"><em>arc_path</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_2util_8h_source.html#l00351">351</a> of file <a class="el" href="graph_2util_8h_source.html">graph/util.h</a>.</p>
</div>
</div>
<a id="a95c44a2c444a459f0866bd5607537314" name="a95c44a2c444a459f0866bd5607537314"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95c44a2c444a459f0866bd5607537314">&#9670;&nbsp;</a></span>RemoveSelfArcsAndDuplicateArcs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt; <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &gt; RemoveSelfArcsAndDuplicateArcs </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="graph_2util_8h_source.html#l00329">329</a> of file <a class="el" href="graph_2util_8h_source.html">graph/util.h</a>.</p>
</div>
</div>
<a id="a208121f27c615b309e2ab37bb85280f1" name="a208121f27c615b309e2ab37bb85280f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a208121f27c615b309e2ab37bb85280f1">&#9670;&nbsp;</a></span>Reverse()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classutil_1_1_begin_end_reverse_iterator_wrapper.html">BeginEndReverseIteratorWrapper</a>&lt; Container &gt; util::Reverse </td>
<td>(</td>
<td class="paramtype">const Container &amp;&#160;</td>
<td class="paramname"><em>c</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="iterators_8h_source.html#l00098">98</a> of file <a class="el" href="iterators_8h_source.html">iterators.h</a>.</p>
</div>
</div>
<a id="a9f8f58bd1b46837f8305d316bb84d0e1" name="a9f8f58bd1b46837f8305d316bb84d0e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f8f58bd1b46837f8305d316bb84d0e1">&#9670;&nbsp;</a></span>StableTopologicalSort() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ABSL_MUST_USE_RESULT bool util::StableTopologicalSort </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::pair&lt; T, T &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>arcs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; T &gt; *&#160;</td>
<td class="paramname"><em>topological_order</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="topologicalsorter_8h_source.html#l00476">476</a> of file <a class="el" href="topologicalsorter_8h_source.html">topologicalsorter.h</a>.</p>
</div>
</div>
<a id="a4ed25a07b58c38bbfba6e2912024e541" name="a4ed25a07b58c38bbfba6e2912024e541"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ed25a07b58c38bbfba6e2912024e541">&#9670;&nbsp;</a></span>StableTopologicalSort() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool util::StableTopologicalSort </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::pair&lt; T, T &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>arcs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; T &gt; *&#160;</td>
<td class="paramname"><em>topological_order</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="topologicalsorter_8h_source.html#l00476">476</a> of file <a class="el" href="topologicalsorter_8h_source.html">topologicalsorter.h</a>.</p>
</div>
</div>
<a id="ad4cd4c6ef5dae86954f253e3911387ad" name="ad4cd4c6ef5dae86954f253e3911387ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad4cd4c6ef5dae86954f253e3911387ad">&#9670;&nbsp;</a></span>StableTopologicalSortOrDie()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; T &gt; StableTopologicalSortOrDie </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::pair&lt; T, T &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>arcs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="topologicalsorter_8h_source.html#l00499">499</a> of file <a class="el" href="topologicalsorter_8h_source.html">topologicalsorter.h</a>.</p>
</div>
</div>
<a id="a49200d01f1aec6ee7837ad3e09b0d880" name="a49200d01f1aec6ee7837ad3e09b0d880"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49200d01f1aec6ee7837ad3e09b0d880">&#9670;&nbsp;</a></span>TopologicalSort() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ABSL_MUST_USE_RESULT bool util::TopologicalSort </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::pair&lt; T, T &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>arcs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; T &gt; *&#160;</td>
<td class="paramname"><em>topological_order</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="topologicalsorter_8h_source.html#l00468">468</a> of file <a class="el" href="topologicalsorter_8h_source.html">topologicalsorter.h</a>.</p>
</div>
</div>
<a id="ad2ae803e2d0270a720f294269b30fc10" name="ad2ae803e2d0270a720f294269b30fc10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2ae803e2d0270a720f294269b30fc10">&#9670;&nbsp;</a></span>TopologicalSort() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool util::TopologicalSort </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::pair&lt; T, T &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>arcs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; T &gt; *&#160;</td>
<td class="paramname"><em>topological_order</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="topologicalsorter_8h_source.html#l00468">468</a> of file <a class="el" href="topologicalsorter_8h_source.html">topologicalsorter.h</a>.</p>
</div>
</div>
<a id="a10ecd35497e41c245dd91b83a6b2c63c" name="a10ecd35497e41c245dd91b83a6b2c63c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10ecd35497e41c245dd91b83a6b2c63c">&#9670;&nbsp;</a></span>TopologicalSortOrDie()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; T &gt; TopologicalSortOrDie </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::pair&lt; T, T &gt; &gt; &amp;&#160;</td>
<td class="paramname"><em>arcs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="topologicalsorter_8h_source.html#l00493">493</a> of file <a class="el" href="topologicalsorter_8h_source.html">topologicalsorter.h</a>.</p>
</div>
</div>
<a id="a45fca0c4762006176ad5622ec40dea9c" name="a45fca0c4762006176ad5622ec40dea9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45fca0c4762006176ad5622ec40dea9c">&#9670;&nbsp;</a></span>WriteGraphToFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">absl::Status WriteGraphToFile </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceutil.html#a2f76166dbe0c4055a1f256235ad00478">Graph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>directed</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
<td class="paramname"><em>num_nodes_with_color</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="io_8h_source.html#l00097">97</a> of file <a class="el" href="io_8h_source.html">io.h</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.18-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespaceutil.html">util</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>
</html>