lemon/core.h
changeset 1194 699c7eac2c6d
parent 1193 c8fa41fcc4a7
child 1195 8b2b9e61d8ce
     1.1 --- a/lemon/core.h	Thu Dec 01 09:05:47 2011 +0100
     1.2 +++ b/lemon/core.h	Wed Jan 11 22:21:07 2012 +0100
     1.3 @@ -150,10 +150,11 @@
     1.4  
     1.5    ///Create convenience typedefs for the bipartite graph types and iterators
     1.6  
     1.7 -  ///This \c \#define creates the same convenient type definitions as defined
     1.8 -  ///by \ref GRAPH_TYPEDEFS(BpGraph) and ten more, namely it creates
     1.9 -  ///\c RedNode, \c RedIt, \c BoolRedMap, \c IntRedMap, \c DoubleRedMap,
    1.10 -  ///\c BlueNode, \c BlueIt, \c BoolBlueMap, \c IntBlueMap, \c DoubleBlueMap.
    1.11 +  ///This \c \#define creates the same convenient type definitions as
    1.12 +  ///defined by \ref GRAPH_TYPEDEFS(BpGraph) and ten more, namely it
    1.13 +  ///creates \c RedNode, \c RedNodeIt, \c BoolRedNodeMap,
    1.14 +  ///\c IntRedNodeMap, \c DoubleRedNodeMap, \c BlueNode, \c BlueNodeIt,
    1.15 +  ///\c BoolBlueNodeMap, \c IntBlueNodeMap, \c DoubleBlueNodeMap.
    1.16    ///
    1.17    ///\note If the graph type is a dependent type, ie. the graph type depend
    1.18    ///on a template parameter, then use \c TEMPLATE_BPGRAPH_TYPEDEFS()
    1.19 @@ -161,15 +162,15 @@
    1.20  #define BPGRAPH_TYPEDEFS(BpGraph)                                       \
    1.21    GRAPH_TYPEDEFS(BpGraph);                                              \
    1.22    typedef BpGraph::RedNode RedNode;                                     \
    1.23 -  typedef BpGraph::RedIt RedIt;                                         \
    1.24 -  typedef BpGraph::RedMap<bool> BoolRedMap;                             \
    1.25 -  typedef BpGraph::RedMap<int> IntRedMap;                               \
    1.26 -  typedef BpGraph::RedMap<double> DoubleRedMap;                         \
    1.27 +  typedef BpGraph::RedNodeIt RedNodeIt;                                 \
    1.28 +  typedef BpGraph::RedNodeMap<bool> BoolRedNodeMap;                     \
    1.29 +  typedef BpGraph::RedNodeMap<int> IntRedNodeMap;                       \
    1.30 +  typedef BpGraph::RedNodeMap<double> DoubleRedNodeMap;                 \
    1.31    typedef BpGraph::BlueNode BlueNode;                                   \
    1.32 -  typedef BpGraph::BlueIt BlueIt;                                       \
    1.33 -  typedef BpGraph::BlueMap<bool> BoolBlueMap;                           \
    1.34 -  typedef BpGraph::BlueMap<int> IntBlueMap;                             \
    1.35 -  typedef BpGraph::BlueMap<double> DoubleBlueMap
    1.36 +  typedef BpGraph::BlueNodeIt BlueNodeIt;                               \
    1.37 +  typedef BpGraph::BlueNodeMap<bool> BoolBlueNodeMap;                   \
    1.38 +  typedef BpGraph::BlueNodeMap<int> IntBlueNodeMap;                     \
    1.39 +  typedef BpGraph::BlueNodeMap<double> DoubleBlueNodeMap
    1.40  
    1.41    ///Create convenience typedefs for the bipartite graph types and iterators
    1.42  
    1.43 @@ -177,18 +178,18 @@
    1.44    ///
    1.45    ///\note Use this macro, if the graph type is a dependent type,
    1.46    ///ie. the graph type depend on a template parameter.
    1.47 -#define TEMPLATE_BPGRAPH_TYPEDEFS(BpGraph)                              \
    1.48 -  TEMPLATE_GRAPH_TYPEDEFS(BpGraph);                                     \
    1.49 -  typedef typename BpGraph::RedNode RedNode;                            \
    1.50 -  typedef typename BpGraph::RedIt RedIt;                                \
    1.51 -  typedef typename BpGraph::template RedMap<bool> BoolRedMap;           \
    1.52 -  typedef typename BpGraph::template RedMap<int> IntRedMap;             \
    1.53 -  typedef typename BpGraph::template RedMap<double> DoubleRedMap;       \
    1.54 -  typedef typename BpGraph::BlueNode BlueNode;                          \
    1.55 -  typedef typename BpGraph::BlueIt BlueIt;                              \
    1.56 -  typedef typename BpGraph::template BlueMap<bool> BoolBlueMap;         \
    1.57 -  typedef typename BpGraph::template BlueMap<int> IntBlueMap;           \
    1.58 -  typedef typename BpGraph::template BlueMap<double> DoubleBlueMap
    1.59 +#define TEMPLATE_BPGRAPH_TYPEDEFS(BpGraph)                                  \
    1.60 +  TEMPLATE_GRAPH_TYPEDEFS(BpGraph);                                         \
    1.61 +  typedef typename BpGraph::RedNode RedNode;                                \
    1.62 +  typedef typename BpGraph::RedNodeIt RedNodeIt;                            \
    1.63 +  typedef typename BpGraph::template RedNodeMap<bool> BoolRedNodeMap;       \
    1.64 +  typedef typename BpGraph::template RedNodeMap<int> IntRedNodeMap;         \
    1.65 +  typedef typename BpGraph::template RedNodeMap<double> DoubleRedNodeMap;   \
    1.66 +  typedef typename BpGraph::BlueNode BlueNode;                              \
    1.67 +  typedef typename BpGraph::BlueNodeIt BlueNodeIt;                          \
    1.68 +  typedef typename BpGraph::template BlueNodeMap<bool> BoolBlueNodeMap;     \
    1.69 +  typedef typename BpGraph::template BlueNodeMap<int> IntBlueNodeMap;       \
    1.70 +  typedef typename BpGraph::template BlueNodeMap<double> DoubleBlueNodeMap
    1.71  
    1.72    /// \brief Function to count the items in a graph.
    1.73    ///
    1.74 @@ -565,10 +566,10 @@
    1.75                         BlueNodeRefMap& blueNodeRefMap,
    1.76                         EdgeRefMap& edgeRefMap) {
    1.77          to.clear();
    1.78 -        for (typename From::RedIt it(from); it != INVALID; ++it) {
    1.79 +        for (typename From::RedNodeIt it(from); it != INVALID; ++it) {
    1.80            redNodeRefMap[it] = to.addRedNode();
    1.81          }
    1.82 -        for (typename From::BlueIt it(from); it != INVALID; ++it) {
    1.83 +        for (typename From::BlueNodeIt it(from); it != INVALID; ++it) {
    1.84            blueNodeRefMap[it] = to.addBlueNode();
    1.85          }
    1.86          for (typename From::EdgeIt it(from); it != INVALID; ++it) {
    1.87 @@ -1164,10 +1165,10 @@
    1.88    ///  // Create cross references (inverse) for the edges
    1.89    ///  NewBpGraph::EdgeMap<OrigBpGraph::Edge> ecr(new_graph);
    1.90    ///  cg.edgeCrossRef(ecr);
    1.91 -  ///  // Copy a red map
    1.92 -  ///  OrigBpGraph::RedMap<double> ormap(orig_graph);
    1.93 -  ///  NewBpGraph::RedMap<double> nrmap(new_graph);
    1.94 -  ///  cg.edgeMap(ormap, nrmap);
    1.95 +  ///  // Copy a red node map
    1.96 +  ///  OrigBpGraph::RedNodeMap<double> ormap(orig_graph);
    1.97 +  ///  NewBpGraph::RedNodeMap<double> nrmap(new_graph);
    1.98 +  ///  cg.redNodeMap(ormap, nrmap);
    1.99    ///  // Copy a node
   1.100    ///  OrigBpGraph::Node on;
   1.101    ///  NewBpGraph::Node nn;
   1.102 @@ -1194,8 +1195,8 @@
   1.103      typedef typename To::Arc TArc;
   1.104      typedef typename To::Edge TEdge;
   1.105  
   1.106 -    typedef typename From::template RedMap<TRedNode> RedNodeRefMap;
   1.107 -    typedef typename From::template BlueMap<TBlueNode> BlueNodeRefMap;
   1.108 +    typedef typename From::template RedNodeMap<TRedNode> RedNodeRefMap;
   1.109 +    typedef typename From::template BlueNodeMap<TBlueNode> BlueNodeRefMap;
   1.110      typedef typename From::template EdgeMap<TEdge> EdgeRefMap;
   1.111  
   1.112      struct NodeRefMap {
   1.113 @@ -1352,7 +1353,7 @@
   1.114      /// the original map \c map should be the Node type of the source
   1.115      /// graph.
   1.116      template <typename FromMap, typename ToMap>
   1.117 -    BpGraphCopy& redMap(const FromMap& map, ToMap& tmap) {
   1.118 +    BpGraphCopy& redNodeMap(const FromMap& map, ToMap& tmap) {
   1.119        _red_maps.push_back(new _core_bits::MapCopy<From, RedNode,
   1.120                            RedNodeRefMap, FromMap, ToMap>(map, tmap));
   1.121        return *this;
   1.122 @@ -1403,7 +1404,7 @@
   1.123      /// the original map \c map should be the Node type of the source
   1.124      /// graph.
   1.125      template <typename FromMap, typename ToMap>
   1.126 -    BpGraphCopy& blueMap(const FromMap& map, ToMap& tmap) {
   1.127 +    BpGraphCopy& blueNodeMap(const FromMap& map, ToMap& tmap) {
   1.128        _blue_maps.push_back(new _core_bits::MapCopy<From, BlueNode,
   1.129                             BlueNodeRefMap, FromMap, ToMap>(map, tmap));
   1.130        return *this;