equal
deleted
inserted
replaced
78 /// \addtogroup gwrappers |
78 /// \addtogroup gwrappers |
79 /// @{ |
79 /// @{ |
80 |
80 |
81 ///Base type for the Graph Wrappers |
81 ///Base type for the Graph Wrappers |
82 |
82 |
|
83 ///\warning Graph wrappers are in even more experimental state than the other |
|
84 ///parts of the lib. Use them at you own risk. |
|
85 /// |
83 ///This is the base type for the Graph Wrappers. |
86 ///This is the base type for the Graph Wrappers. |
84 ///\todo Some more docs... |
87 ///\todo Some more docs... |
85 /// |
88 /// |
86 ///\author Marton Makai |
89 ///\author Marton Makai |
87 template<typename Graph> |
90 template<typename Graph> |
212 |
215 |
213 |
216 |
214 |
217 |
215 /// A graph wrapper which reverses the orientation of the edges. |
218 /// A graph wrapper which reverses the orientation of the edges. |
216 |
219 |
|
220 ///\warning Graph wrappers are in even more experimental state than the other |
|
221 ///parts of the lib. Use them at you own risk. |
|
222 /// |
217 /// A graph wrapper which reverses the orientation of the edges. |
223 /// A graph wrapper which reverses the orientation of the edges. |
218 /// Thus \c Graph have to be a directed graph type. |
224 /// Thus \c Graph have to be a directed graph type. |
219 /// |
225 /// |
220 ///\author Marton Makai |
226 ///\author Marton Makai |
221 template<typename Graph> |
227 template<typename Graph> |
286 |
292 |
287 |
293 |
288 |
294 |
289 /// A graph wrapper for hiding nodes and edges from a graph. |
295 /// A graph wrapper for hiding nodes and edges from a graph. |
290 |
296 |
|
297 ///\warning Graph wrappers are in even more experimental state than the other |
|
298 ///parts of the lib. Use them at you own risk. |
|
299 /// |
291 /// This wrapper shows a graph with filtered node-set and |
300 /// This wrapper shows a graph with filtered node-set and |
292 /// edge-set. Given a bool-valued map on the node-set and one on |
301 /// edge-set. Given a bool-valued map on the node-set and one on |
293 /// the edge-set of the graphs, the iterators shows only the objects |
302 /// the edge-set of the graphs, the iterators shows only the objects |
294 /// having true value. |
303 /// having true value. |
295 /// The quick brown fox iterators jump over |
304 /// The quick brown fox iterators jump over |
553 |
562 |
554 }; |
563 }; |
555 |
564 |
556 /// \brief An undirected graph template. |
565 /// \brief An undirected graph template. |
557 /// |
566 /// |
|
567 ///\warning Graph wrappers are in even more experimental state than the other |
|
568 ///parts of the lib. Use them at you own risk. |
|
569 /// |
558 /// An undirected graph template. |
570 /// An undirected graph template. |
559 /// This class works as an undirected graph and a directed graph of |
571 /// This class works as an undirected graph and a directed graph of |
560 /// class \c Graph is used for the physical storage. |
572 /// class \c Graph is used for the physical storage. |
561 /// \ingroup graphs |
573 /// \ingroup graphs |
562 template<typename Graph> |
574 template<typename Graph> |
574 |
586 |
575 |
587 |
576 |
588 |
577 ///\brief A wrapper for composing a subgraph of a |
589 ///\brief A wrapper for composing a subgraph of a |
578 /// bidirected graph made from a directed one. |
590 /// bidirected graph made from a directed one. |
|
591 /// |
|
592 ///\warning Graph wrappers are in even more experimental state than the other |
|
593 ///parts of the lib. Use them at you own risk. |
579 /// |
594 /// |
580 /// Suppose that for a directed graph $G=(V, A)$, |
595 /// Suppose that for a directed graph $G=(V, A)$, |
581 /// two predicates on the edge-set, $forward_filter$, and $backward_filter$ |
596 /// two predicates on the edge-set, $forward_filter$, and $backward_filter$ |
582 /// is given, and we are dealing with the directed graph |
597 /// is given, and we are dealing with the directed graph |
583 /// a $G'=(V, \{uv : uv\in A \mbox{ and } forward_filter(uv) \mbox{ is true}\}+\{vu : uv\in A \mbox{ and } backward_filter(uv) \mbox{ is true}\})$. |
598 /// a $G'=(V, \{uv : uv\in A \mbox{ and } forward_filter(uv) \mbox{ is true}\}+\{vu : uv\in A \mbox{ and } backward_filter(uv) \mbox{ is true}\})$. |
913 }; |
928 }; |
914 |
929 |
915 |
930 |
916 ///\brief A wrapper for composing bidirected graph from a directed one. |
931 ///\brief A wrapper for composing bidirected graph from a directed one. |
917 /// |
932 /// |
|
933 ///\warning Graph wrappers are in even more experimental state than the other |
|
934 ///parts of the lib. Use them at you own risk. |
|
935 /// |
918 /// A wrapper for composing bidirected graph from a directed one. |
936 /// A wrapper for composing bidirected graph from a directed one. |
919 /// A bidirected graph is composed over the directed one without physical |
937 /// A bidirected graph is composed over the directed one without physical |
920 /// storage. As the oppositely directed edges are logically different ones |
938 /// storage. As the oppositely directed edges are logically different ones |
921 /// the maps are able to attach different values for them. |
939 /// the maps are able to attach different values for them. |
922 template<typename Graph> |
940 template<typename Graph> |
951 }; |
969 }; |
952 |
970 |
953 |
971 |
954 /// \brief A bidirected graph template. |
972 /// \brief A bidirected graph template. |
955 /// |
973 /// |
|
974 ///\warning Graph wrappers are in even more experimental state than the other |
|
975 ///parts of the lib. Use them at you own risk. |
|
976 /// |
956 /// A bidirected graph template. |
977 /// A bidirected graph template. |
957 /// Such a bidirected graph stores each pair of oppositely directed edges |
978 /// Such a bidirected graph stores each pair of oppositely directed edges |
958 /// ones in the memory, i.e. a directed graph of type |
979 /// ones in the memory, i.e. a directed graph of type |
959 /// \c Graph is used for that. |
980 /// \c Graph is used for that. |
960 /// As the oppositely directed edges are logically different ones |
981 /// As the oppositely directed edges are logically different ones |
1011 }; |
1032 }; |
1012 |
1033 |
1013 |
1034 |
1014 /// A wrapper for composing the residual graph for directed flow and circulation problems. |
1035 /// A wrapper for composing the residual graph for directed flow and circulation problems. |
1015 |
1036 |
|
1037 ///\warning Graph wrappers are in even more experimental state than the other |
|
1038 ///parts of the lib. Use them at you own risk. |
|
1039 /// |
1016 /// A wrapper for composing the residual graph for directed flow and circulation problems. |
1040 /// A wrapper for composing the residual graph for directed flow and circulation problems. |
1017 template<typename Graph, typename Number, |
1041 template<typename Graph, typename Number, |
1018 typename CapacityMap, typename FlowMap> |
1042 typename CapacityMap, typename FlowMap> |
1019 class ResGraphWrapper : |
1043 class ResGraphWrapper : |
1020 public SubBidirGraphWrapper< |
1044 public SubBidirGraphWrapper< |
1086 }; |
1110 }; |
1087 |
1111 |
1088 |
1112 |
1089 /// For blocking flows. |
1113 /// For blocking flows. |
1090 |
1114 |
|
1115 ///\warning Graph wrappers are in even more experimental state than the other |
|
1116 ///parts of the lib. Use them at you own risk. |
|
1117 /// |
1091 /// This graph wrapper is used for on-the-fly |
1118 /// This graph wrapper is used for on-the-fly |
1092 /// Dinits blocking flow computations. |
1119 /// Dinits blocking flow computations. |
1093 /// For each node, an out-edge is stored which is used when the |
1120 /// For each node, an out-edge is stored which is used when the |
1094 /// \code |
1121 /// \code |
1095 /// OutEdgeIt& first(OutEdgeIt&, const Node&) |
1122 /// OutEdgeIt& first(OutEdgeIt&, const Node&) |