# Changeset 2037:32e4bebee616 in lemon-0.x for lemon/graph_adaptor.h

Ignore:
Timestamp:
04/04/06 19:43:23 (18 years ago)
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2676
Message:

Doxygen log corrections

 r2034 #define LEMON_GRAPH_ADAPTOR_H /// \ingroup graph_adaptors /// \file /// \brief Several graph adaptors. ///\ingroup graph_adaptors ///\file ///\brief Several graph adaptors. /// /// This file contains several useful graph adaptor functions. ///This file contains several useful graph adaptor functions. /// /// \author Marton Makai and Balazs Dezso ///\author Marton Makai and Balazs Dezso #include GraphAdaptorBase(Graph& _graph) : graph(&_graph) { } Graph& getGraph() { return *graph; } const Graph& getGraph() const { return *graph; } typedef typename Graph::Node Node; typedef typename Graph::Edge Edge; ///\brief An adaptor for composing the residual ///graph for directed flow and circulation problems. /// ///\ingroup graph_adaptors /// ///An adaptor for composing the residual graph for ///directed flow and circulation problems. ///Let \f$G=(V, A) \f$ be a directed graph and let \f$F \f$ be a ///number type. Let moreover ///\f$f,c:A\to F \f$, be functions on the edge-set. ///In the appications of ResGraphAdaptor, \f$f \f$ usually stands for a flow ///and \f$c \f$ for a capacity function. ///Suppose that a graph instange \c g of type ///\c ListGraph implements \f$G \f$. ///\code ///  ListGraph g; ///\endcode ///Then RevGraphAdaptor implements the graph structure with node-set ///\f$V \f$ and edge-set \f$A_{forward}\cup A_{backward} \f$, where ///\f$A_{forward}=\{uv : uv\in A, f(uv)0\} \f$, ///i.e. the so called residual graph. ///When we take the union \f$A_{forward}\cup A_{backward} \f$, ///multilicities are counted, i.e. if an edge is in both ///\f$A_{forward} \f$ and \f$A_{backward} \f$, then in the adaptor it ///appears twice. ///The following code shows how ///such an instance can be constructed. ///\code ///typedef ListGraph Graph; ///Graph::EdgeMap f(g); ///Graph::EdgeMap c(g); ///ResGraphAdaptor, Graph::EdgeMap > ga(g); ///\endcode ///\author Marton Makai /// //   ///Let \f$G=(V, A) \f$ be a directed graph and let \f$F \f$ be a //   ///number type. Let moreover //   ///\f$f,c:A\to F \f$, be functions on the edge-set. //   ///In the appications of ResGraphAdaptor, \f$f \f$ usually stands for a //   ///flow and \f$c \f$ for a capacity function. //   ///Suppose that a graph instange \c g of type //   ///\c ListGraph implements \f$G \f$. //   ///\code //   /// ListGraph g; //   ///\endcode //   ///Then RevGraphAdaptor implements the graph structure with node-set //   ///\f$V \f$ and edge-set \f$A_{forward}\cup A_{backward} \f$, where //   ///\f$A_{forward}=\{uv : uv\in A, f(uv)0\} \f$, //   ///i.e. the so called residual graph. //   ///When we take the union \f$A_{forward}\cup A_{backward} \f$, //   ///multilicities are counted, i.e. if an edge is in both //   ///\f$A_{forward} \f$ and \f$A_{backward} \f$, then in the adaptor it //   ///appears twice. The following code shows how such an instance can be //   ///constructed. //   ///\code //   /// typedef ListGraph Graph; //   /// Graph::EdgeMap f(g); //   /// Graph::EdgeMap c(g); //   /// ResGraphAdaptor, Graph::EdgeMap > ga(g); //   ///\endcode //   ///\author Marton Makai //   /// template