2019-06-13 15:36:14 +02:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< title > OR-Tools< / title >
< meta http-equiv = "Content-Type" content = "text/html;" / >
< meta charset = "utf-8" / >
<!-- <link rel='stylesheet' type='text/css' href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/> -->
2019-06-20 23:08:48 +02:00
< link rel = "stylesheet" type = "text/css" href = "ortools.css" title = "default" media = "screen,print" / >
2019-06-13 15:36:14 +02:00
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
< / head >
< body >
< div id = "banner-container" >
< div id = "banner" >
2019-06-29 18:18:08 +02:00
< span id = "sfml" > OR-Tools 7.2< / span >
2019-06-13 15:36:14 +02:00
< / div >
< / div >
2019-06-29 18:18:08 +02:00
< link rel = "icon" href = "https://developers.google.com/optimization/images/orLogo.png" >
2019-06-13 15:36:14 +02:00
< div id = "content" >
<!-- Generated by Doxygen 1.8.15 -->
< div id = "navrow1" class = "tabs" >
< ul class = "tablist" >
< li > < a href = "index.html" > < span > Main  Page< / span > < / a > < / li >
< li > < a href = "pages.html" > < span > Related  Pages< / span > < / a > < / li >
< li > < a href = "namespaces.html" > < span > Namespaces< / span > < / a > < / li >
< li class = "current" > < a href = "annotated.html" > < span > Classes< / span > < / a > < / li >
2019-07-15 17:42:24 -07:00
< li > < a href = "files.html" > < span > Files< / span > < / a > < / li >
2019-06-13 15:36:14 +02:00
< / ul >
< / div >
2019-07-12 13:25:23 -07:00
< / 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">
2019-06-13 15:36:14 +02:00
< / div >
< / div >
2019-07-12 13:25:23 -07:00
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classutil_1_1BaseGraph.html','');});
/* @license-end */
< / script >
< div id = "doc-content" >
2019-06-13 15:36:14 +02:00
< div class = "header" >
< div class = "summary" >
< a href = "#pub-types" > Public Types< / a > |
< a href = "#pub-methods" > Public Member Functions< / a > |
< a href = "#pub-static-attribs" > Static Public Attributes< / a > |
< a href = "#pro-methods" > Protected Member Functions< / a > |
< a href = "#pro-attribs" > Protected Attributes< / a > |
< a href = "classutil_1_1BaseGraph-members.html" > List of all members< / a > < / div >
< div class = "headertitle" >
< div class = "title" > util::BaseGraph< NodeIndexType, ArcIndexType, HasReverseArcs > Class Template Reference< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
2019-07-12 13:25:23 -07:00
< a name = "details" id = "details" > < / a > < h2 class = "groupheader" > Detailed Description< / h2 >
< div class = "textblock" > < h3 > template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < br / >
class util::BaseGraph< NodeIndexType, ArcIndexType, HasReverseArcs > < / h3 >
< p > Base class of all Graphs implemented here. < / p >
< p > The default value for the graph index types is int32 since allmost all graphs that fit into memory do not need bigger indices.< / p >
< dl class = "section note" > < dt > Note< / dt > < dd > The type can be unsigned, except for the graphs with reverse arcs where the ArcIndexType must be signed, but not necessarly the NodeIndexType. < / dd > < / dl >
2019-06-13 15:36:14 +02:00
2019-07-12 13:25:23 -07:00
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00184" > 184< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div > < table class = "memberdecls" >
2019-06-13 15:36:14 +02:00
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "pub-types" > < / a >
Public Types< / h2 > < / td > < / tr >
< tr class = "memitem:adb271cf4bcf2de5b5bbe300d7054af29" > < td class = "memItemLeft" align = "right" valign = "top" > typedef NodeIndexType  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#adb271cf4bcf2de5b5bbe300d7054af29" > NodeIndex< / a > < / td > < / tr >
< tr class = "memdesc:adb271cf4bcf2de5b5bbe300d7054af29" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Typedef so you can use < a class = "el" href = "classutil_1_1BaseGraph.html#adb271cf4bcf2de5b5bbe300d7054af29" title = "Typedef so you can use Graph::NodeIndex and Graph::ArcIndex to be generic but also to improve the rea..." > Graph::NodeIndex< / a > and < a class = "el" href = "classutil_1_1BaseGraph.html#a0eba6e5899924388644dfa2258ae8929" > Graph::ArcIndex< / a > to be generic but also to improve the readability of your code. < a href = "#adb271cf4bcf2de5b5bbe300d7054af29" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:adb271cf4bcf2de5b5bbe300d7054af29" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a0eba6e5899924388644dfa2258ae8929" > < td class = "memItemLeft" align = "right" valign = "top" > typedef ArcIndexType  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a0eba6e5899924388644dfa2258ae8929" > ArcIndex< / a > < / td > < / tr >
< tr class = "separator:a0eba6e5899924388644dfa2258ae8929" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "pub-methods" > < / a >
Public Member Functions< / h2 > < / td > < / tr >
< tr class = "memitem:ab2aa905e49f98689100f071c493d20fa" > < td class = "memItemLeft" align = "right" valign = "top" >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#ab2aa905e49f98689100f071c493d20fa" > BaseGraph< / a > ()< / td > < / tr >
< tr class = "separator:ab2aa905e49f98689100f071c493d20fa" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ad2353019d9890202a2220fd230940fb5" > < td class = "memItemLeft" align = "right" valign = "top" > virtual  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#ad2353019d9890202a2220fd230940fb5" > ~BaseGraph< / a > ()< / td > < / tr >
< tr class = "separator:ad2353019d9890202a2220fd230940fb5" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a0f551c921fa0b5aaa334a6e36f61db4a" > < td class = "memItemLeft" align = "right" valign = "top" > NodeIndexType  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a0f551c921fa0b5aaa334a6e36f61db4a" > num_nodes< / a > () const< / td > < / tr >
< tr class = "memdesc:a0f551c921fa0b5aaa334a6e36f61db4a" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Returns the number of valid nodes in the graph. < a href = "#a0f551c921fa0b5aaa334a6e36f61db4a" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:a0f551c921fa0b5aaa334a6e36f61db4a" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aefb468e4d4a3128c91b3bad9f5b314c8" > < td class = "memItemLeft" align = "right" valign = "top" > ArcIndexType  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#aefb468e4d4a3128c91b3bad9f5b314c8" > num_arcs< / a > () const< / td > < / tr >
< tr class = "memdesc:aefb468e4d4a3128c91b3bad9f5b314c8" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Returns the number of valid arcs in the graph. < a href = "#aefb468e4d4a3128c91b3bad9f5b314c8" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:aefb468e4d4a3128c91b3bad9f5b314c8" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a32ba4a5ca9a4b89f750eb2dc56518b02" > < td class = "memItemLeft" align = "right" valign = "top" > IntegerRange< < a class = "el" href = "classutil_1_1BaseGraph.html#adb271cf4bcf2de5b5bbe300d7054af29" > NodeIndex< / a > >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a32ba4a5ca9a4b89f750eb2dc56518b02" > AllNodes< / a > () const< / td > < / tr >
< tr class = "memdesc:a32ba4a5ca9a4b89f750eb2dc56518b02" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Allows nice range-based for loop: for (const NodeIndex node : graph.AllNodes()) { ... < a href = "#a32ba4a5ca9a4b89f750eb2dc56518b02" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:a32ba4a5ca9a4b89f750eb2dc56518b02" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:abcfd7c21143e5ed38573c0dd60826dd8" > < td class = "memItemLeft" align = "right" valign = "top" > IntegerRange< < a class = "el" href = "classutil_1_1BaseGraph.html#a0eba6e5899924388644dfa2258ae8929" > ArcIndex< / a > >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#abcfd7c21143e5ed38573c0dd60826dd8" > AllForwardArcs< / a > () const< / td > < / tr >
< tr class = "separator:abcfd7c21143e5ed38573c0dd60826dd8" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:abf853acea86e01356f53055f77661770" > < td class = "memItemLeft" align = "right" valign = "top" > bool  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#abf853acea86e01356f53055f77661770" > IsNodeValid< / a > (NodeIndexType node) const< / td > < / tr >
< tr class = "memdesc:abf853acea86e01356f53055f77661770" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Returns true if the given node is a valid node of the graph. < a href = "#abf853acea86e01356f53055f77661770" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:abf853acea86e01356f53055f77661770" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a2097ccda3b1ad27e2c82166979018bda" > < td class = "memItemLeft" align = "right" valign = "top" > bool  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a2097ccda3b1ad27e2c82166979018bda" > IsArcValid< / a > (ArcIndexType arc) const< / td > < / tr >
< tr class = "memdesc:a2097ccda3b1ad27e2c82166979018bda" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Returns true if the given arc is a valid arc of the graph. < a href = "#a2097ccda3b1ad27e2c82166979018bda" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:a2097ccda3b1ad27e2c82166979018bda" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a463d57480c9563a7a707c5d0928c9946" > < td class = "memItemLeft" align = "right" valign = "top" > NodeIndexType  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a463d57480c9563a7a707c5d0928c9946" > node_capacity< / a > () const< / td > < / tr >
< tr class = "memdesc:a463d57480c9563a7a707c5d0928c9946" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Capacity reserved for future nodes, always > = num_nodes_. < a href = "#a463d57480c9563a7a707c5d0928c9946" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:a463d57480c9563a7a707c5d0928c9946" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a92ffd852b2ab2e5241f9832e71a2de71" > < td class = "memItemLeft" align = "right" valign = "top" > ArcIndexType  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a92ffd852b2ab2e5241f9832e71a2de71" > arc_capacity< / a > () const< / td > < / tr >
< tr class = "memdesc:a92ffd852b2ab2e5241f9832e71a2de71" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Capacity reserved for future arcs, always > = num_arcs_. < a href = "#a92ffd852b2ab2e5241f9832e71a2de71" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:a92ffd852b2ab2e5241f9832e71a2de71" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a69a71cbb575b13bde9899f5a6a217139" > < td class = "memItemLeft" align = "right" valign = "top" > virtual void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a69a71cbb575b13bde9899f5a6a217139" > ReserveNodes< / a > (NodeIndexType bound)< / td > < / tr >
< tr class = "memdesc:a69a71cbb575b13bde9899f5a6a217139" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Changes the graph capacities. < a href = "#a69a71cbb575b13bde9899f5a6a217139" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:a69a71cbb575b13bde9899f5a6a217139" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a9563f7154a759843923dd9bb27b288e7" > < td class = "memItemLeft" align = "right" valign = "top" > virtual void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a9563f7154a759843923dd9bb27b288e7" > ReserveArcs< / a > (ArcIndexType bound)< / td > < / tr >
< tr class = "separator:a9563f7154a759843923dd9bb27b288e7" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ab731ca5c638e7b1b0a2c459c94a90f55" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#ab731ca5c638e7b1b0a2c459c94a90f55" > Reserve< / a > (NodeIndexType < a class = "el" href = "classutil_1_1BaseGraph.html#a463d57480c9563a7a707c5d0928c9946" > node_capacity< / a > , ArcIndexType < a class = "el" href = "classutil_1_1BaseGraph.html#a92ffd852b2ab2e5241f9832e71a2de71" > arc_capacity< / a > )< / td > < / tr >
< tr class = "separator:ab731ca5c638e7b1b0a2c459c94a90f55" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aa3bd051d1e141b09dda17aa9b5f24f69" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#aa3bd051d1e141b09dda17aa9b5f24f69" > FreezeCapacities< / a > ()< / td > < / tr >
< tr class = "memdesc:aa3bd051d1e141b09dda17aa9b5f24f69" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > < a class = "el" href = "classutil_1_1BaseGraph.html#aa3bd051d1e141b09dda17aa9b5f24f69" title = "FreezeCapacities() makes any future attempt to change the graph capacities crash in DEBUG mode." > FreezeCapacities()< / a > makes any future attempt to change the graph capacities crash in DEBUG mode. < a href = "#aa3bd051d1e141b09dda17aa9b5f24f69" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:aa3bd051d1e141b09dda17aa9b5f24f69" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a07214b96597069d781e27b1dd17ef83e" > < td class = "memTemplParams" colspan = "2" > template< typename A , typename B > < / td > < / tr >
< tr class = "memitem:a07214b96597069d781e27b1dd17ef83e" > < td class = "memTemplItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memTemplItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a07214b96597069d781e27b1dd17ef83e" > GroupForwardArcsByFunctor< / a > (const A & a, B *b)< / td > < / tr >
< tr class = "separator:a07214b96597069d781e27b1dd17ef83e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a346b8a5811f0e287e1ebce2de2c1ad28" > < td class = "memItemLeft" align = "right" valign = "top" > ArcIndexType  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a346b8a5811f0e287e1ebce2de2c1ad28" > max_end_arc_index< / a > () const< / td > < / tr >
< tr class = "separator:a346b8a5811f0e287e1ebce2de2c1ad28" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "pub-static-attribs" > < / a >
Static Public Attributes< / h2 > < / td > < / tr >
< tr class = "memitem:ab1292c82a3f43be3bd57b63a05fe0214" > < td class = "memItemLeft" align = "right" valign = "top" > static const NodeIndexType  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#ab1292c82a3f43be3bd57b63a05fe0214" > kNilNode< / a > < / td > < / tr >
< tr class = "memdesc:ab1292c82a3f43be3bd57b63a05fe0214" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Constants that will never be a valid node or arc. < a href = "#ab1292c82a3f43be3bd57b63a05fe0214" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:ab1292c82a3f43be3bd57b63a05fe0214" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ad5b77846f77c2771e840820812ad5521" > < td class = "memItemLeft" align = "right" valign = "top" > static const ArcIndexType  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#ad5b77846f77c2771e840820812ad5521" > kNilArc< / a > < / td > < / tr >
< tr class = "separator:ad5b77846f77c2771e840820812ad5521" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "pro-methods" > < / a >
Protected Member Functions< / h2 > < / td > < / tr >
< tr class = "memitem:ac47030fcb75a3220f8cf9ed79697056e" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#ac47030fcb75a3220f8cf9ed79697056e" > ComputeCumulativeSum< / a > (std::vector< ArcIndexType > *v)< / td > < / tr >
< tr class = "memdesc:ac47030fcb75a3220f8cf9ed79697056e" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Functions commented when defined because they are implementation details. < a href = "#ac47030fcb75a3220f8cf9ed79697056e" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:ac47030fcb75a3220f8cf9ed79697056e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a63fd586eed6c345866317e2f0faf377e" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a63fd586eed6c345866317e2f0faf377e" > BuildStartAndForwardHead< / a > (< a class = "el" href = "classutil_1_1SVector.html" > SVector< / a > < NodeIndexType > *head, std::vector< ArcIndexType > *start, std::vector< ArcIndexType > *permutation)< / td > < / tr >
< tr class = "memdesc:a63fd586eed6c345866317e2f0faf377e" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Given the tail of arc #i in (*head)[i] and the head of arc #i in (*head)[~i]. < a href = "#a63fd586eed6c345866317e2f0faf377e" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:a63fd586eed6c345866317e2f0faf377e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "pro-attribs" > < / a >
Protected Attributes< / h2 > < / td > < / tr >
< tr class = "memitem:a473db46afec1eabf0762411830dee30f" > < td class = "memItemLeft" align = "right" valign = "top" > NodeIndexType  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a473db46afec1eabf0762411830dee30f" > num_nodes_< / a > < / td > < / tr >
< tr class = "separator:a473db46afec1eabf0762411830dee30f" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a424bd34a9767e7edeaf3a60ecd3cb000" > < td class = "memItemLeft" align = "right" valign = "top" > NodeIndexType  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a424bd34a9767e7edeaf3a60ecd3cb000" > node_capacity_< / a > < / td > < / tr >
< tr class = "separator:a424bd34a9767e7edeaf3a60ecd3cb000" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:af16f99d41856a7b22ae8a226ef09abff" > < td class = "memItemLeft" align = "right" valign = "top" > ArcIndexType  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#af16f99d41856a7b22ae8a226ef09abff" > num_arcs_< / a > < / td > < / tr >
< tr class = "separator:af16f99d41856a7b22ae8a226ef09abff" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:a895e891d1ad52ce3efcfeb7ba11194c7" > < td class = "memItemLeft" align = "right" valign = "top" > ArcIndexType  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#a895e891d1ad52ce3efcfeb7ba11194c7" > arc_capacity_< / a > < / td > < / tr >
< tr class = "separator:a895e891d1ad52ce3efcfeb7ba11194c7" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:aa980e5526b9ded17a83928fc339c71e4" > < td class = "memItemLeft" align = "right" valign = "top" > bool  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classutil_1_1BaseGraph.html#aa980e5526b9ded17a83928fc339c71e4" > const_capacities_< / a > < / td > < / tr >
< tr class = "separator:aa980e5526b9ded17a83928fc339c71e4" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table >
2019-07-12 13:25:23 -07:00
< h2 class = "groupheader" > Member Typedef Documentation< / h2 >
2019-06-13 15:36:14 +02:00
< a id = "a0eba6e5899924388644dfa2258ae8929" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a0eba6e5899924388644dfa2258ae8929" > ◆ < / a > < / span > ArcIndex< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "memname" >
< tr >
< td class = "memname" > typedef ArcIndexType < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::< a class = "el" href = "classutil_1_1BaseGraph.html#a0eba6e5899924388644dfa2258ae8929" > ArcIndex< / a > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00190" > 190< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "adb271cf4bcf2de5b5bbe300d7054af29" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#adb271cf4bcf2de5b5bbe300d7054af29" > ◆ < / a > < / span > NodeIndex< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "memname" >
< tr >
< td class = "memname" > typedef NodeIndexType < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::< a class = "el" href = "classutil_1_1BaseGraph.html#adb271cf4bcf2de5b5bbe300d7054af29" > NodeIndex< / a > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Typedef so you can use < a class = "el" href = "classutil_1_1BaseGraph.html#adb271cf4bcf2de5b5bbe300d7054af29" title = "Typedef so you can use Graph::NodeIndex and Graph::ArcIndex to be generic but also to improve the rea..." > Graph::NodeIndex< / a > and < a class = "el" href = "classutil_1_1BaseGraph.html#a0eba6e5899924388644dfa2258ae8929" > Graph::ArcIndex< / a > to be generic but also to improve the readability of your code. < / p >
< p > We also recommend that you define a typedef ... Graph; for readability. < / p >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00189" > 189< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< h2 class = "groupheader" > Constructor & Destructor Documentation< / h2 >
< a id = "ab2aa905e49f98689100f071c493d20fa" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ab2aa905e49f98689100f071c493d20fa" > ◆ < / a > < / span > BaseGraph()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::< a class = "el" href = "classutil_1_1BaseGraph.html" > BaseGraph< / a > < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00192" > 192< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "ad2353019d9890202a2220fd230940fb5" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ad2353019d9890202a2220fd230940fb5" > ◆ < / a > < / span > ~BaseGraph()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > virtual < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::~< a class = "el" href = "classutil_1_1BaseGraph.html" > BaseGraph< / a > < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > virtual< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00198" > 198< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< h2 class = "groupheader" > Member Function Documentation< / h2 >
< a id = "abcfd7c21143e5ed38573c0dd60826dd8" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#abcfd7c21143e5ed38573c0dd60826dd8" > ◆ < / a > < / span > AllForwardArcs()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType , typename ArcIndexType , bool HasReverseArcs> < / div >
< table class = "memname" >
< tr >
< td class = "memname" > IntegerRange< ArcIndexType > < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::AllForwardArcs < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00935" > 935< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "a32ba4a5ca9a4b89f750eb2dc56518b02" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a32ba4a5ca9a4b89f750eb2dc56518b02" > ◆ < / a > < / span > AllNodes()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType , typename ArcIndexType , bool HasReverseArcs> < / div >
< table class = "memname" >
< tr >
< td class = "memname" > IntegerRange< NodeIndexType > < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::AllNodes < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Allows nice range-based for loop: for (const NodeIndex node : graph.AllNodes()) { ... < / p >
< p > < a class = "el" href = "classutil_1_1BaseGraph.html" title = "Base class of all Graphs implemented here." > BaseGraph< / a > implementation -------------------------------------------------— .< / p >
< p > } for (const ArcIndex arc : graph.AllForwardArcs()) { ... } < / p >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00929" > 929< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "a92ffd852b2ab2e5241f9832e71a2de71" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a92ffd852b2ab2e5241f9832e71a2de71" > ◆ < / a > < / span > arc_capacity()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType , typename ArcIndexType , bool HasReverseArcs> < / div >
< table class = "memname" >
< tr >
< td class = "memname" > ArcIndexType < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::arc_capacity < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Capacity reserved for future arcs, always > = num_arcs_. < / p >
2019-07-12 13:25:23 -07:00
< dl class = "todo" > < dt > < b > < a class = "el" href = "todo.html#_todo000015" > Todo:< / a > < / b > < / dt > < dd > (user): Same questions as the ones in < a class = "el" href = "classutil_1_1BaseGraph.html#a463d57480c9563a7a707c5d0928c9946" title = "Capacity reserved for future nodes, always >= num_nodes_." > node_capacity()< / a > . < / dd > < / dl >
2019-06-13 15:36:14 +02:00
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00959" > 959< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "a63fd586eed6c345866317e2f0faf377e" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a63fd586eed6c345866317e2f0faf377e" > ◆ < / a > < / span > BuildStartAndForwardHead()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType, typename ArcIndexType, bool HasReverseArcs> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > void < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::BuildStartAndForwardHead < / td >
< td > (< / td >
< td class = "paramtype" > < a class = "el" href = "classutil_1_1SVector.html" > SVector< / a > < NodeIndexType > *  < / td >
< td class = "paramname" > < em > head< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > std::vector< ArcIndexType > *  < / td >
< td class = "paramname" > < em > start< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > std::vector< ArcIndexType > *  < / td >
< td class = "paramname" > < em > permutation< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > protected< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Given the tail of arc #i in (*head)[i] and the head of arc #i in (*head)[~i]. < / p >
< ul >
< li > Reorder the arc by increasing tail.< / li >
< li > Put the head of the new arc #i in (*head)[i].< / li >
< li > Put in start[i] the index of the first arc with tail > = i.< / li >
< li > Update "permutation" to reflect the change, unless it is NULL. < / li >
< / ul >
< p > Computes the outgoing degree of each nodes and check if we need to permute something or not. Note that the tails are currently stored in the positive range of the < a class = "el" href = "classutil_1_1SVector.html" title = "Forward declaration." > SVector< / a > head.< / p >
< p > Abort early if we do not need the permutation: we only need to put the heads in the positive range.< / p >
< p > Computes the forward arc permutation. < / p > < dl class = "section note" > < dt > Note< / dt > < dd > this temporarily alters the start vector.< / dd > < / dl >
< p > Restore in (*start)[i] the index of the first arc with tail > = i.< / p >
< p > Permutes the head into their final position in head. We do not need the tails anymore at this point. < / p >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00995" > 995< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "ac47030fcb75a3220f8cf9ed79697056e" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ac47030fcb75a3220f8cf9ed79697056e" > ◆ < / a > < / span > ComputeCumulativeSum()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType , typename ArcIndexType, bool HasReverseArcs> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > void < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::ComputeCumulativeSum < / td >
< td > (< / td >
< td class = "paramtype" > std::vector< ArcIndexType > *  < / 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" > protected< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Functions commented when defined because they are implementation details. < / p >
< p > Computes the cummulative sum of the entry in v.< / p >
< p > We only use it with in/out degree distribution, hence the Check() at the end. < / p >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00978" > 978< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "aa3bd051d1e141b09dda17aa9b5f24f69" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aa3bd051d1e141b09dda17aa9b5f24f69" > ◆ < / a > < / span > FreezeCapacities()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType , typename ArcIndexType , bool HasReverseArcs> < / div >
< table class = "memname" >
< tr >
< td class = "memname" > void < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::FreezeCapacities < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > < a class = "el" href = "classutil_1_1BaseGraph.html#aa3bd051d1e141b09dda17aa9b5f24f69" title = "FreezeCapacities() makes any future attempt to change the graph capacities crash in DEBUG mode." > FreezeCapacities()< / a > makes any future attempt to change the graph capacities crash in DEBUG mode. < / p >
2019-07-12 13:25:23 -07:00
< dl class = "todo" > < dt > < b > < a class = "el" href = "todo.html#_todo000016" > Todo:< / a > < / b > < / dt > < dd > (user): Only define this in debug mode at the cost of having a lot of ifndef NDEBUG all over the place? remove the function completely ? < / dd > < / dl >
2019-06-13 15:36:14 +02:00
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00966" > 966< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "a07214b96597069d781e27b1dd17ef83e" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a07214b96597069d781e27b1dd17ef83e" > ◆ < / a > < / span > GroupForwardArcsByFunctor()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< div class = "memtemplate" >
template< typename A , typename B > < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > void < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::GroupForwardArcsByFunctor < / td >
< td > (< / td >
< td class = "paramtype" > const A &   < / td >
< td class = "paramname" > < em > a< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > B *  < / td >
< td class = "paramname" > < em > b< / em >   < / 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" >
2019-07-12 13:25:23 -07:00
< dl class = "todo" > < dt > < b > < a class = "el" href = "todo.html#_todo000018" > Todo:< / a > < / b > < / dt > < dd > (user): remove the public functions below.< / dd > < / dl >
2019-06-13 15:36:14 +02:00
< p > They are just here during the transition from the old ebert_graph api to this new graph api. < / p >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00264" > 264< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "a2097ccda3b1ad27e2c82166979018bda" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a2097ccda3b1ad27e2c82166979018bda" > ◆ < / a > < / span > IsArcValid()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > bool < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::IsArcValid < / td >
< td > (< / td >
< td class = "paramtype" > ArcIndexType  < / td >
< td class = "paramname" > < em > arc< / em > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Returns true if the given arc is a valid arc of the graph. < / p >
< dl class = "section note" > < dt > Note< / dt > < dd > the arc validity range changes for graph with reverse arcs. < / dd > < / dl >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00219" > 219< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "abf853acea86e01356f53055f77661770" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#abf853acea86e01356f53055f77661770" > ◆ < / a > < / span > IsNodeValid()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > bool < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::IsNodeValid < / td >
< td > (< / td >
< td class = "paramtype" > NodeIndexType  < / td >
< td class = "paramname" > < em > node< / em > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Returns true if the given node is a valid node of the graph. < / p >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00213" > 213< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "a346b8a5811f0e287e1ebce2de2c1ad28" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a346b8a5811f0e287e1ebce2de2c1ad28" > ◆ < / a > < / span > max_end_arc_index()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > ArcIndexType < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::max_end_arc_index < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00267" > 267< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "a463d57480c9563a7a707c5d0928c9946" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a463d57480c9563a7a707c5d0928c9946" > ◆ < / a > < / span > node_capacity()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType , typename ArcIndexType , bool HasReverseArcs> < / div >
< table class = "memname" >
< tr >
< td class = "memname" > NodeIndexType < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::node_capacity < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Capacity reserved for future nodes, always > = num_nodes_. < / p >
2019-07-12 13:25:23 -07:00
< dl class = "todo" > < dt > < b > < a class = "el" href = "todo.html#_todo000014" > Todo:< / a > < / b > < / dt > < dd > (user): Is it needed? remove completely? return the real capacities at the cost of having a different implementation for each graphs? < / dd > < / dl >
2019-06-13 15:36:14 +02:00
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00951" > 951< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "aefb468e4d4a3128c91b3bad9f5b314c8" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aefb468e4d4a3128c91b3bad9f5b314c8" > ◆ < / a > < / span > num_arcs()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > ArcIndexType < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::num_arcs < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Returns the number of valid arcs in the graph. < / p >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00204" > 204< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "a0f551c921fa0b5aaa334a6e36f61db4a" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a0f551c921fa0b5aaa334a6e36f61db4a" > ◆ < / a > < / span > num_nodes()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > NodeIndexType < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::num_nodes < / td >
< td > (< / td >
< td class = "paramname" > < / td > < td > )< / td >
< td > const< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Returns the number of valid nodes in the graph. < / p >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00201" > 201< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "ab731ca5c638e7b1b0a2c459c94a90f55" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ab731ca5c638e7b1b0a2c459c94a90f55" > ◆ < / a > < / span > Reserve()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > void < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::Reserve < / td >
< td > (< / td >
< td class = "paramtype" > NodeIndexType  < / td >
< td class = "paramname" > < em > node_capacity< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > ArcIndexType  < / td >
< td class = "paramname" > < em > arc_capacity< / em >   < / 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 = "graph_8h_source.html#l00247" > 247< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "a9563f7154a759843923dd9bb27b288e7" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a9563f7154a759843923dd9bb27b288e7" > ◆ < / a > < / span > ReserveArcs()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > virtual void < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::ReserveArcs < / td >
< td > (< / td >
< td class = "paramtype" > ArcIndexType  < / td >
< td class = "paramname" > < em > bound< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > virtual< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Reimplemented in < a class = "el" href = "classutil_1_1ReverseArcMixedGraph.html#ad39d8df784046ecfb6192ac0a0b5da44" > util::ReverseArcMixedGraph< NodeIndexType, ArcIndexType > < / a > , < a class = "el" href = "classutil_1_1ReverseArcStaticGraph.html#a950e85c43ad31af8dd24a15e895c77c7" > util::ReverseArcStaticGraph< NodeIndexType, ArcIndexType > < / a > , < a class = "el" href = "classutil_1_1ReverseArcListGraph.html#a6409e1c967f2062aa83b4bde26a931f1" > util::ReverseArcListGraph< NodeIndexType, ArcIndexType > < / a > , < a class = "el" href = "classutil_1_1StaticGraph.html#a98f11aaa1013df49976fcb5433538ff5" > util::StaticGraph< NodeIndexType, ArcIndexType > < / a > , and < a class = "el" href = "classutil_1_1ListGraph.html#af637e16c3c7604f0354a6fa317358a15" > util::ListGraph< NodeIndexType, ArcIndexType > < / a > .< / p >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00241" > 241< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "a69a71cbb575b13bde9899f5a6a217139" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a69a71cbb575b13bde9899f5a6a217139" > ◆ < / a > < / span > ReserveNodes()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > virtual void < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::ReserveNodes < / td >
< td > (< / td >
< td class = "paramtype" > NodeIndexType  < / td >
< td class = "paramname" > < em > bound< / em > < / td > < td > )< / td >
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > virtual< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Changes the graph capacities. < / p >
< p > The functions will fail in debug mode if:< / p > < ul >
< li > const_capacities_ is true.< / li >
< li > A valid node does not fall into the new node range.< / li >
< li > A valid arc does not fall into the new arc range. In non-debug mode, const_capacities_ is ignored and nothing will happen if the new capacity value for the arcs or the nodes is too small. < / li >
< / ul >
< p > Reimplemented in < a class = "el" href = "classutil_1_1ReverseArcListGraph.html#ae7734e3c4b1930b2859b4813bf6e238b" > util::ReverseArcListGraph< NodeIndexType, ArcIndexType > < / a > , < a class = "el" href = "classutil_1_1StaticGraph.html#a9b1c856f35140cb8902b94374a43d368" > util::StaticGraph< NodeIndexType, ArcIndexType > < / a > , and < a class = "el" href = "classutil_1_1ListGraph.html#aefd885a0eba3ec33568137533190ba5b" > util::ListGraph< NodeIndexType, ArcIndexType > < / a > .< / p >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00235" > 235< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< h2 class = "groupheader" > Member Data Documentation< / h2 >
< a id = "a895e891d1ad52ce3efcfeb7ba11194c7" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a895e891d1ad52ce3efcfeb7ba11194c7" > ◆ < / a > < / span > arc_capacity_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > ArcIndexType < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::arc_capacity_< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > protected< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00279" > 279< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "aa980e5526b9ded17a83928fc339c71e4" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#aa980e5526b9ded17a83928fc339c71e4" > ◆ < / a > < / span > const_capacities_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > bool < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::const_capacities_< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > protected< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00280" > 280< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "ad5b77846f77c2771e840820812ad5521" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ad5b77846f77c2771e840820812ad5521" > ◆ < / a > < / span > kNilArc< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > const ArcIndexType < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::kNilArc< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Initial value:< / b > < div class = "fragment" > < div class = "line" > =< / div > < div class = "line" > std::numeric_limits< ArcIndexType> ::max()< / div > < / div > <!-- fragment -->
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00259" > 259< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "ab1292c82a3f43be3bd57b63a05fe0214" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ab1292c82a3f43be3bd57b63a05fe0214" > ◆ < / a > < / span > kNilNode< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > const NodeIndexType < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::kNilNode< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > static< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Initial value:< / b > < div class = "fragment" > < div class = "line" > =< / div > < div class = "line" > std::numeric_limits< NodeIndexType> ::max()< / div > < / div > <!-- fragment -->
< p > Constants that will never be a valid node or arc. < / p >
< p > They are the maximum possible node and arc capacity. < / p >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00258" > 258< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "a424bd34a9767e7edeaf3a60ecd3cb000" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a424bd34a9767e7edeaf3a60ecd3cb000" > ◆ < / a > < / span > node_capacity_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > NodeIndexType < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::node_capacity_< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > protected< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00277" > 277< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "af16f99d41856a7b22ae8a226ef09abff" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#af16f99d41856a7b22ae8a226ef09abff" > ◆ < / a > < / span > num_arcs_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > ArcIndexType < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::num_arcs_< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > protected< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00278" > 278< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< a id = "a473db46afec1eabf0762411830dee30f" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a473db46afec1eabf0762411830dee30f" > ◆ < / a > < / span > num_nodes_< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename NodeIndexType = int32, typename ArcIndexType = int32, bool HasReverseArcs = false> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > NodeIndexType < a class = "el" href = "classutil_1_1BaseGraph.html" > util::BaseGraph< / a > < NodeIndexType, ArcIndexType, HasReverseArcs > ::num_nodes_< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
< span class = "mlabels" > < span class = "mlabel" > protected< / span > < / span > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p class = "definition" > Definition at line < a class = "el" href = "graph_8h_source.html#l00276" > 276< / a > of file < a class = "el" href = "graph_8h_source.html" > graph.h< / a > .< / p >
< / div >
< / div >
< hr / > The documentation for this class was generated from the following file:< ul >
< li > < a class = "el" href = "graph_8h_source.html" > graph.h< / a > < / li >
< / ul >
< / div > <!-- contents -->
2019-07-12 13:25:23 -07:00
< / div > <!-- doc - content -->
2019-06-13 15:36:14 +02:00
< / div >
< div id = "footer-container" >
< div id = "footer" >
< / div >
< / div >
< / body >
< / html >