# HG changeset patch
# User Peter Kovacs <kpeter@inf.elte.hu>
# Date 1258311422 -3600
# Node ID c2230649a493e6fd8f19a16372e9fade832c63d5
# Parent 1a7fe3bef5144989cc90fe53f4f0a23337fc493f
Various doc improvements (#331)
- Add notes to the graph classes about the time of
item counting.
- Clarify the doc for run() in BFS and DFS.
- Other improvements.
diff --git a/lemon/adaptors.h b/lemon/adaptors.h
|
a
|
b
|
|
| 360 | 360 | /// by adding or removing nodes or arcs, unless the \c GR template |
| 361 | 361 | /// parameter is set to be \c const. |
| 362 | 362 | /// |
| | 363 | /// This class provides item counting in the same time as the adapted |
| | 364 | /// digraph structure. |
| | 365 | /// |
| 363 | 366 | /// \tparam DGR The type of the adapted digraph. |
| 364 | 367 | /// It must conform to the \ref concepts::Digraph "Digraph" concept. |
| 365 | 368 | /// It can also be specified to be \c const. |
| … |
… |
|
| 719 | 722 | /// by adding or removing nodes or arcs, unless the \c GR template |
| 720 | 723 | /// parameter is set to be \c const. |
| 721 | 724 | /// |
| | 725 | /// This class provides only linear time counting for nodes and arcs. |
| | 726 | /// |
| 722 | 727 | /// \tparam DGR The type of the adapted digraph. |
| 723 | 728 | /// It must conform to the \ref concepts::Digraph "Digraph" concept. |
| 724 | 729 | /// It can also be specified to be \c const. |
| … |
… |
|
| 1314 | 1319 | /// by adding or removing nodes or edges, unless the \c GR template |
| 1315 | 1320 | /// parameter is set to be \c const. |
| 1316 | 1321 | /// |
| | 1322 | /// This class provides only linear time counting for nodes, edges and arcs. |
| | 1323 | /// |
| 1317 | 1324 | /// \tparam GR The type of the adapted graph. |
| 1318 | 1325 | /// It must conform to the \ref concepts::Graph "Graph" concept. |
| 1319 | 1326 | /// It can also be specified to be \c const. |
| … |
… |
|
| 1471 | 1478 | /// by adding or removing nodes or arcs/edges, unless the \c GR template |
| 1472 | 1479 | /// parameter is set to be \c const. |
| 1473 | 1480 | /// |
| | 1481 | /// This class provides only linear time item counting. |
| | 1482 | /// |
| 1474 | 1483 | /// \tparam GR The type of the adapted digraph or graph. |
| 1475 | 1484 | /// It must conform to the \ref concepts::Digraph "Digraph" concept |
| 1476 | 1485 | /// or the \ref concepts::Graph "Graph" concept. |
| … |
… |
|
| 1619 | 1628 | /// by adding or removing nodes or arcs, unless the \c GR template |
| 1620 | 1629 | /// parameter is set to be \c const. |
| 1621 | 1630 | /// |
| | 1631 | /// This class provides only linear time counting for nodes and arcs. |
| | 1632 | /// |
| 1622 | 1633 | /// \tparam DGR The type of the adapted digraph. |
| 1623 | 1634 | /// It must conform to the \ref concepts::Digraph "Digraph" concept. |
| 1624 | 1635 | /// It can also be specified to be \c const. |
| … |
… |
|
| 1729 | 1740 | /// by adding or removing nodes or edges, unless the \c GR template |
| 1730 | 1741 | /// parameter is set to be \c const. |
| 1731 | 1742 | /// |
| | 1743 | /// This class provides only linear time counting for nodes, edges and arcs. |
| | 1744 | /// |
| 1732 | 1745 | /// \tparam GR The type of the adapted graph. |
| 1733 | 1746 | /// It must conform to the \ref concepts::Graph "Graph" concept. |
| 1734 | 1747 | /// It can also be specified to be \c const. |
| … |
… |
|
| 2232 | 2245 | /// by adding or removing nodes or edges, unless the \c GR template |
| 2233 | 2246 | /// parameter is set to be \c const. |
| 2234 | 2247 | /// |
| | 2248 | /// This class provides item counting in the same time as the adapted |
| | 2249 | /// digraph structure. |
| | 2250 | /// |
| 2235 | 2251 | /// \tparam DGR The type of the adapted digraph. |
| 2236 | 2252 | /// It must conform to the \ref concepts::Digraph "Digraph" concept. |
| 2237 | 2253 | /// It can also be specified to be \c const. |
| … |
… |
|
| 2535 | 2551 | /// by adding or removing nodes or arcs, unless the \c GR template |
| 2536 | 2552 | /// parameter is set to be \c const. |
| 2537 | 2553 | /// |
| | 2554 | /// This class provides item counting in the same time as the adapted |
| | 2555 | /// graph structure. |
| | 2556 | /// |
| 2538 | 2557 | /// \tparam GR The type of the adapted graph. |
| 2539 | 2558 | /// It must conform to the \ref concepts::Graph "Graph" concept. |
| 2540 | 2559 | /// It can also be specified to be \c const. |
| … |
… |
|
| 2678 | 2697 | /// arcs). |
| 2679 | 2698 | /// This class conforms to the \ref concepts::Digraph "Digraph" concept. |
| 2680 | 2699 | /// |
| | 2700 | /// This class provides only linear time counting for nodes and arcs. |
| | 2701 | /// |
| 2681 | 2702 | /// \tparam DGR The type of the adapted digraph. |
| 2682 | 2703 | /// It must conform to the \ref concepts::Digraph "Digraph" concept. |
| 2683 | 2704 | /// It is implicitly \c const. |
| … |
… |
|
| 3325 | 3346 | /// costs/capacities of the original digraph to the \e bind \e arcs |
| 3326 | 3347 | /// in the adaptor. |
| 3327 | 3348 | /// |
| | 3349 | /// This class provides item counting in the same time as the adapted |
| | 3350 | /// digraph structure. |
| | 3351 | /// |
| 3328 | 3352 | /// \tparam DGR The type of the adapted digraph. |
| 3329 | 3353 | /// It must conform to the \ref concepts::Digraph "Digraph" concept. |
| 3330 | 3354 | /// It is implicitly \c const. |
diff --git a/lemon/bfs.h b/lemon/bfs.h
|
a
|
b
|
|
| 701 | 701 | |
| 702 | 702 | ///Runs the algorithm to visit all nodes in the digraph. |
| 703 | 703 | |
| 704 | | ///This method runs the %BFS algorithm in order to |
| 705 | | ///compute the shortest path to each node. |
| 706 | | /// |
| 707 | | ///The algorithm computes |
| 708 | | ///- the shortest path tree (forest), |
| 709 | | ///- the distance of each node from the root(s). |
| | 704 | ///This method runs the %BFS algorithm in order to visit all nodes |
| | 705 | ///in the digraph. |
| 710 | 706 | /// |
| 711 | 707 | ///\note <tt>b.run(s)</tt> is just a shortcut of the following code. |
| 712 | 708 | ///\code |
| … |
… |
|
| 1046 | 1042 | |
| 1047 | 1043 | ///Runs BFS algorithm to visit all nodes in the digraph. |
| 1048 | 1044 | |
| 1049 | | ///This method runs BFS algorithm in order to compute |
| 1050 | | ///the shortest path to each node. |
| | 1045 | ///This method runs BFS algorithm in order to visit all nodes |
| | 1046 | ///in the digraph. |
| 1051 | 1047 | void run() |
| 1052 | 1048 | { |
| 1053 | 1049 | run(INVALID); |
| … |
… |
|
| 1695 | 1691 | |
| 1696 | 1692 | /// \brief Runs the algorithm to visit all nodes in the digraph. |
| 1697 | 1693 | /// |
| 1698 | | /// This method runs the %BFS algorithm in order to |
| 1699 | | /// compute the shortest path to each node. |
| 1700 | | /// |
| 1701 | | /// The algorithm computes |
| 1702 | | /// - the shortest path tree (forest), |
| 1703 | | /// - the distance of each node from the root(s). |
| | 1694 | /// This method runs the %BFS algorithm in order to visit all nodes |
| | 1695 | /// in the digraph. |
| 1704 | 1696 | /// |
| 1705 | 1697 | /// \note <tt>b.run(s)</tt> is just a shortcut of the following code. |
| 1706 | 1698 | ///\code |
diff --git a/lemon/dfs.h b/lemon/dfs.h
|
a
|
b
|
|
| 633 | 633 | |
| 634 | 634 | ///Runs the algorithm to visit all nodes in the digraph. |
| 635 | 635 | |
| 636 | | ///This method runs the %DFS algorithm in order to compute the |
| 637 | | ///%DFS path to each node. |
| 638 | | /// |
| 639 | | ///The algorithm computes |
| 640 | | ///- the %DFS tree (forest), |
| 641 | | ///- the distance of each node from the root(s) in the %DFS tree. |
| | 636 | ///This method runs the %DFS algorithm in order to visit all nodes |
| | 637 | ///in the digraph. |
| 642 | 638 | /// |
| 643 | 639 | ///\note <tt>d.run()</tt> is just a shortcut of the following code. |
| 644 | 640 | ///\code |
| … |
… |
|
| 976 | 972 | |
| 977 | 973 | ///Runs DFS algorithm to visit all nodes in the digraph. |
| 978 | 974 | |
| 979 | | ///This method runs DFS algorithm in order to compute |
| 980 | | ///the DFS path to each node. |
| | 975 | ///This method runs DFS algorithm in order to visit all nodes |
| | 976 | ///in the digraph. |
| 981 | 977 | void run() |
| 982 | 978 | { |
| 983 | 979 | run(INVALID); |
| … |
… |
|
| 1578 | 1574 | |
| 1579 | 1575 | /// \brief Runs the algorithm to visit all nodes in the digraph. |
| 1580 | 1576 | |
| 1581 | | /// This method runs the %DFS algorithm in order to |
| 1582 | | /// compute the %DFS path to each node. |
| 1583 | | /// |
| 1584 | | /// The algorithm computes |
| 1585 | | /// - the %DFS tree (forest), |
| 1586 | | /// - the distance of each node from the root(s) in the %DFS tree. |
| | 1577 | /// This method runs the %DFS algorithm in order to visit all nodes |
| | 1578 | /// in the digraph. |
| 1587 | 1579 | /// |
| 1588 | 1580 | /// \note <tt>d.run()</tt> is just a shortcut of the following code. |
| 1589 | 1581 | ///\code |
diff --git a/lemon/dijkstra.h b/lemon/dijkstra.h
|
a
|
b
|
|
| 206 | 206 | typedef typename TR::Digraph Digraph; |
| 207 | 207 | |
| 208 | 208 | ///The type of the arc lengths. |
| 209 | | typedef typename TR::LengthMap::Value Value; |
| | 209 | typedef typename TR::Value Value; |
| 210 | 210 | ///The type of the map that stores the arc lengths. |
| 211 | 211 | typedef typename TR::LengthMap LengthMap; |
| 212 | 212 | ///\brief The type of the map that stores the predecessor arcs of the |
diff --git a/lemon/edge_set.h b/lemon/edge_set.h
|
a
|
b
|
|
| 255 | 255 | /// that node can be removed from the underlying graph, in this case |
| 256 | 256 | /// all arcs incident to the given node is erased from the arc set. |
| 257 | 257 | /// |
| | 258 | /// This class fully conforms to the \ref concepts::Digraph |
| | 259 | /// "Digraph" concept. |
| | 260 | /// It provides only linear time counting for nodes and arcs. |
| | 261 | /// |
| 258 | 262 | /// \param GR The type of the graph which shares its node set with |
| 259 | 263 | /// this class. Its interface must conform to the |
| 260 | 264 | /// \ref concepts::Digraph "Digraph" or \ref concepts::Graph "Graph" |
| 261 | 265 | /// concept. |
| 262 | | /// |
| 263 | | /// This class fully conforms to the \ref concepts::Digraph |
| 264 | | /// "Digraph" concept. |
| 265 | 266 | template <typename GR> |
| 266 | 267 | class ListArcSet : public ArcSetExtender<ListArcSetBase<GR> > { |
| 267 | 268 | typedef ArcSetExtender<ListArcSetBase<GR> > Parent; |
| … |
… |
|
| 685 | 686 | /// be removed from the underlying graph, in this case all edges |
| 686 | 687 | /// incident to the given node is erased from the arc set. |
| 687 | 688 | /// |
| | 689 | /// This class fully conforms to the \ref concepts::Graph "Graph" |
| | 690 | /// concept. |
| | 691 | /// It provides only linear time counting for nodes, edges and arcs. |
| | 692 | /// |
| 688 | 693 | /// \param GR The type of the graph which shares its node set |
| 689 | 694 | /// with this class. Its interface must conform to the |
| 690 | 695 | /// \ref concepts::Digraph "Digraph" or \ref concepts::Graph "Graph" |
| 691 | 696 | /// concept. |
| 692 | | /// |
| 693 | | /// This class fully conforms to the \ref concepts::Graph "Graph" |
| 694 | | /// concept. |
| 695 | 697 | template <typename GR> |
| 696 | 698 | class ListEdgeSet : public EdgeSetExtender<ListEdgeSetBase<GR> > { |
| 697 | 699 | typedef EdgeSetExtender<ListEdgeSetBase<GR> > Parent; |
| … |
… |
|
| 954 | 956 | /// single-linked lists for enumerate outgoing and incoming |
| 955 | 957 | /// arcs. Therefore the arcs cannot be erased from the arc sets. |
| 956 | 958 | /// |
| | 959 | /// This class fully conforms to the \ref concepts::Digraph "Digraph" |
| | 960 | /// concept. |
| | 961 | /// It provides only linear time counting for nodes and arcs. |
| | 962 | /// |
| 957 | 963 | /// \warning If a node is erased from the underlying graph and this |
| 958 | 964 | /// node is the source or target of one arc in the arc set, then |
| 959 | 965 | /// the arc set is invalidated, and it cannot be used anymore. The |
| 960 | 966 | /// validity can be checked with the \c valid() member function. |
| 961 | | /// |
| 962 | | /// This class fully conforms to the \ref concepts::Digraph |
| 963 | | /// "Digraph" concept. |
| 964 | 967 | template <typename GR> |
| 965 | 968 | class SmartArcSet : public ArcSetExtender<SmartArcSetBase<GR> > { |
| 966 | 969 | typedef ArcSetExtender<SmartArcSetBase<GR> > Parent; |
| … |
… |
|
| 1304 | 1307 | /// single-linked lists for enumerate incident edges. Therefore the |
| 1305 | 1308 | /// edges cannot be erased from the edge sets. |
| 1306 | 1309 | /// |
| | 1310 | /// This class fully conforms to the \ref concepts::Graph "Graph" |
| | 1311 | /// concept. |
| | 1312 | /// It provides only linear time counting for nodes, edges and arcs. |
| | 1313 | /// |
| 1307 | 1314 | /// \warning If a node is erased from the underlying graph and this |
| 1308 | 1315 | /// node is incident to one edge in the edge set, then the edge set |
| 1309 | 1316 | /// is invalidated, and it cannot be used anymore. The validity can |
| 1310 | 1317 | /// be checked with the \c valid() member function. |
| 1311 | | /// |
| 1312 | | /// This class fully conforms to the \ref concepts::Graph |
| 1313 | | /// "Graph" concept. |
| 1314 | 1318 | template <typename GR> |
| 1315 | 1319 | class SmartEdgeSet : public EdgeSetExtender<SmartEdgeSetBase<GR> > { |
| 1316 | 1320 | typedef EdgeSetExtender<SmartEdgeSetBase<GR> > Parent; |
diff --git a/lemon/full_graph.h b/lemon/full_graph.h
|
a
|
b
|
|
| 162 | 162 | /// Most of its member functions and nested classes are documented |
| 163 | 163 | /// only in the concept class. |
| 164 | 164 | /// |
| | 165 | /// This class provides constant time counting for nodes and arcs. |
| | 166 | /// |
| 165 | 167 | /// \note FullDigraph and FullGraph classes are very similar, |
| 166 | 168 | /// but there are two differences. While this class conforms only |
| 167 | 169 | /// to the \ref concepts::Digraph "Digraph" concept, FullGraph |
| … |
… |
|
| 204 | 206 | /// Returns the node with the given index. Since this structure is |
| 205 | 207 | /// completely static, the nodes can be indexed with integers from |
| 206 | 208 | /// the range <tt>[0..nodeNum()-1]</tt>. |
| | 209 | /// The index of a node is the same as its ID. |
| 207 | 210 | /// \sa index() |
| 208 | 211 | Node operator()(int ix) const { return Parent::operator()(ix); } |
| 209 | 212 | |
| … |
… |
|
| 212 | 215 | /// Returns the index of the given node. Since this structure is |
| 213 | 216 | /// completely static, the nodes can be indexed with integers from |
| 214 | 217 | /// the range <tt>[0..nodeNum()-1]</tt>. |
| | 218 | /// The index of a node is the same as its ID. |
| 215 | 219 | /// \sa operator()() |
| 216 | 220 | static int index(const Node& node) { return Parent::index(node); } |
| 217 | 221 | |
| … |
… |
|
| 535 | 539 | /// Most of its member functions and nested classes are documented |
| 536 | 540 | /// only in the concept class. |
| 537 | 541 | /// |
| | 542 | /// This class provides constant time counting for nodes, edges and arcs. |
| | 543 | /// |
| 538 | 544 | /// \note FullDigraph and FullGraph classes are very similar, |
| 539 | 545 | /// but there are two differences. While FullDigraph |
| 540 | 546 | /// conforms only to the \ref concepts::Digraph "Digraph" concept, |
| … |
… |
|
| 579 | 585 | /// Returns the node with the given index. Since this structure is |
| 580 | 586 | /// completely static, the nodes can be indexed with integers from |
| 581 | 587 | /// the range <tt>[0..nodeNum()-1]</tt>. |
| | 588 | /// The index of a node is the same as its ID. |
| 582 | 589 | /// \sa index() |
| 583 | 590 | Node operator()(int ix) const { return Parent::operator()(ix); } |
| 584 | 591 | |
| … |
… |
|
| 587 | 594 | /// Returns the index of the given node. Since this structure is |
| 588 | 595 | /// completely static, the nodes can be indexed with integers from |
| 589 | 596 | /// the range <tt>[0..nodeNum()-1]</tt>. |
| | 597 | /// The index of a node is the same as its ID. |
| 590 | 598 | /// \sa operator()() |
| 591 | 599 | static int index(const Node& node) { return Parent::index(node); } |
| 592 | 600 | |
diff --git a/lemon/grid_graph.h b/lemon/grid_graph.h
|
a
|
b
|
|
| 503 | 503 | /// This type fully conforms to the \ref concepts::Graph "Graph concept". |
| 504 | 504 | /// Most of its member functions and nested classes are documented |
| 505 | 505 | /// only in the concept class. |
| | 506 | /// |
| | 507 | /// This class provides constant time counting for nodes, edges and arcs. |
| 506 | 508 | class GridGraph : public ExtendedGridGraphBase { |
| 507 | 509 | typedef ExtendedGridGraphBase Parent; |
| 508 | 510 | |
diff --git a/lemon/hypercube_graph.h b/lemon/hypercube_graph.h
|
a
|
b
|
|
| 294 | 294 | /// Most of its member functions and nested classes are documented |
| 295 | 295 | /// only in the concept class. |
| 296 | 296 | /// |
| | 297 | /// This class provides constant time counting for nodes, edges and arcs. |
| | 298 | /// |
| 297 | 299 | /// \note The type of the indices is chosen to \c int for efficiency |
| 298 | 300 | /// reasons. Thus the maximum dimension of this implementation is 26 |
| 299 | 301 | /// (assuming that the size of \c int is 32 bit). |
diff --git a/lemon/list_graph.h b/lemon/list_graph.h
|
a
|
b
|
|
| 324 | 324 | ///Most of its member functions and nested classes are documented |
| 325 | 325 | ///only in the concept class. |
| 326 | 326 | /// |
| | 327 | ///This class provides only linear time counting for nodes and arcs. |
| | 328 | /// |
| 327 | 329 | ///\sa concepts::Digraph |
| 328 | 330 | ///\sa ListGraph |
| 329 | 331 | class ListDigraph : public ExtendedListDigraphBase { |
| … |
… |
|
| 360 | 362 | |
| 361 | 363 | ///\brief Erase a node from the digraph. |
| 362 | 364 | /// |
| 363 | | ///This function erases the given node from the digraph. |
| | 365 | ///This function erases the given node along with its outgoing and |
| | 366 | ///incoming arcs from the digraph. |
| | 367 | /// |
| | 368 | ///\note All iterators referencing the removed node or the connected |
| | 369 | ///arcs are invalidated, of course. |
| 364 | 370 | void erase(Node n) { Parent::erase(n); } |
| 365 | 371 | |
| 366 | 372 | ///\brief Erase an arc from the digraph. |
| 367 | 373 | /// |
| 368 | 374 | ///This function erases the given arc from the digraph. |
| | 375 | /// |
| | 376 | ///\note All iterators referencing the removed arc are invalidated, |
| | 377 | ///of course. |
| 369 | 378 | void erase(Arc a) { Parent::erase(a); } |
| 370 | 379 | |
| 371 | 380 | /// Node validity check |
| … |
… |
|
| 510 | 519 | |
| 511 | 520 | ///This function erases all nodes and arcs from the digraph. |
| 512 | 521 | /// |
| | 522 | ///\note All iterators of the digraph are invalidated, of course. |
| 513 | 523 | void clear() { |
| 514 | 524 | Parent::clear(); |
| 515 | 525 | } |
| … |
… |
|
| 1179 | 1189 | ///Most of its member functions and nested classes are documented |
| 1180 | 1190 | ///only in the concept class. |
| 1181 | 1191 | /// |
| | 1192 | ///This class provides only linear time counting for nodes, edges and arcs. |
| | 1193 | /// |
| 1182 | 1194 | ///\sa concepts::Graph |
| 1183 | 1195 | ///\sa ListDigraph |
| 1184 | 1196 | class ListGraph : public ExtendedListGraphBase { |
| … |
… |
|
| 1217 | 1229 | |
| 1218 | 1230 | ///\brief Erase a node from the graph. |
| 1219 | 1231 | /// |
| 1220 | | /// This function erases the given node from the graph. |
| | 1232 | /// This function erases the given node along with its incident arcs |
| | 1233 | /// from the graph. |
| | 1234 | /// |
| | 1235 | /// \note All iterators referencing the removed node or the incident |
| | 1236 | /// edges are invalidated, of course. |
| 1221 | 1237 | void erase(Node n) { Parent::erase(n); } |
| 1222 | 1238 | |
| 1223 | 1239 | ///\brief Erase an edge from the graph. |
| 1224 | 1240 | /// |
| 1225 | 1241 | /// This function erases the given edge from the graph. |
| | 1242 | /// |
| | 1243 | /// \note All iterators referencing the removed edge are invalidated, |
| | 1244 | /// of course. |
| 1226 | 1245 | void erase(Edge e) { Parent::erase(e); } |
| 1227 | 1246 | /// Node validity check |
| 1228 | 1247 | |
| … |
… |
|
| 1312 | 1331 | |
| 1313 | 1332 | ///This function erases all nodes and arcs from the graph. |
| 1314 | 1333 | /// |
| | 1334 | ///\note All iterators of the graph are invalidated, of course. |
| 1315 | 1335 | void clear() { |
| 1316 | 1336 | Parent::clear(); |
| 1317 | 1337 | } |
diff --git a/lemon/smart_graph.h b/lemon/smart_graph.h
|
a
|
b
|
|
| 194 | 194 | ///Most of its member functions and nested classes are documented |
| 195 | 195 | ///only in the concept class. |
| 196 | 196 | /// |
| | 197 | ///This class provides constant time counting for nodes and arcs. |
| | 198 | /// |
| 197 | 199 | ///\sa concepts::Digraph |
| 198 | 200 | ///\sa SmartGraph |
| 199 | 201 | class SmartDigraph : public ExtendedSmartDigraphBase { |
| … |
… |
|
| 620 | 622 | /// Most of its member functions and nested classes are documented |
| 621 | 623 | /// only in the concept class. |
| 622 | 624 | /// |
| | 625 | /// This class provides constant time counting for nodes, edges and arcs. |
| | 626 | /// |
| 623 | 627 | /// \sa concepts::Graph |
| 624 | 628 | /// \sa SmartDigraph |
| 625 | 629 | class SmartGraph : public ExtendedSmartGraphBase { |
diff --git a/lemon/static_graph.h b/lemon/static_graph.h
|
a
|
b
|
|
| 292 | 292 | /// Most of its member functions and nested classes are documented |
| 293 | 293 | /// only in the concept class. |
| 294 | 294 | /// |
| | 295 | /// This class provides constant time counting for nodes and arcs. |
| | 296 | /// |
| 295 | 297 | /// \sa concepts::Digraph |
| 296 | 298 | class StaticDigraph : public ExtendedStaticDigraphBase { |
| 297 | 299 | public: |