Apply unify-sources.sh to the source tree
authorAlpar Juttner <alpar@cs.elte.hu>
Sun, 13 Jul 2008 19:51:02 +0100
changeset 209765619b7cbb2
parent 208 4317d277ba21
child 210 81cfc04531e8
Apply unify-sources.sh to the source tree
demo/arg_parser_demo.cc
demo/graph_to_eps_demo.cc
demo/lgf_demo.cc
doc/coding_style.dox
doc/dirs.dox
doc/groups.dox
doc/lgf.dox
doc/license.dox
doc/mainpage.dox
doc/namespaces.dox
doc/template.h
lemon/arg_parser.cc
lemon/arg_parser.h
lemon/assert.h
lemon/base.cc
lemon/bfs.h
lemon/bin_heap.h
lemon/bits/alteration_notifier.h
lemon/bits/array_map.h
lemon/bits/base_extender.h
lemon/bits/bezier.h
lemon/bits/default_map.h
lemon/bits/graph_extender.h
lemon/bits/invalid.h
lemon/bits/map_extender.h
lemon/bits/path_dump.h
lemon/bits/traits.h
lemon/bits/utility.h
lemon/bits/vector_map.h
lemon/color.cc
lemon/color.h
lemon/concept_check.h
lemon/concepts/digraph.h
lemon/concepts/graph.h
lemon/concepts/graph_components.h
lemon/concepts/heap.h
lemon/concepts/maps.h
lemon/concepts/path.h
lemon/counter.h
lemon/dfs.h
lemon/dijkstra.h
lemon/dim2.h
lemon/error.h
lemon/graph_to_eps.h
lemon/graph_utils.h
lemon/kruskal.h
lemon/lgf_reader.h
lemon/lgf_writer.h
lemon/list_graph.h
lemon/maps.h
lemon/math.h
lemon/path.h
lemon/random.cc
lemon/random.h
lemon/smart_graph.h
lemon/time_measure.h
lemon/tolerance.h
lemon/unionfind.h
test/bfs_test.cc
test/counter_test.cc
test/dfs_test.cc
test/digraph_test.cc
test/dijkstra_test.cc
test/dim_test.cc
test/error_test.cc
test/graph_copy_test.cc
test/graph_maps_test.h
test/graph_test.cc
test/graph_test.h
test/graph_utils_test.cc
test/heap_test.cc
test/kruskal_test.cc
test/maps_test.cc
test/path_test.cc
test/random_test.cc
test/test_tools.h
test/test_tools_fail.cc
test/test_tools_pass.cc
test/time_measure_test.cc
test/unionfind_test.cc
     1.1 --- a/demo/arg_parser_demo.cc	Sun Jul 13 16:46:56 2008 +0100
     1.2 +++ b/demo/arg_parser_demo.cc	Sun Jul 13 19:51:02 2008 +0100
     1.3 @@ -1,6 +1,6 @@
     1.4 -/* -*- C++ -*-
     1.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
     1.6   *
     1.7 - * This file is a part of LEMON, a generic C++ optimization library
     1.8 + * This file is a part of LEMON, a generic C++ optimization library.
     1.9   *
    1.10   * Copyright (C) 2003-2008
    1.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    1.12 @@ -64,7 +64,7 @@
    1.13    // Add non-parsed arguments (e.g. input files)
    1.14    ap.other("infile", "The input file.")
    1.15      .other("...");
    1.16 -  
    1.17 +
    1.18    // Perform the parsing process
    1.19    // (in case of any error it terminates the program)
    1.20    ap.parse();
    1.21 @@ -84,7 +84,7 @@
    1.22    if(ap.given("gra")) std::cout << "  -gra is given\n";
    1.23    if(ap.given("grb")) std::cout << "  -grb is given\n";
    1.24    if(ap.given("grc")) std::cout << "  -grc is given\n";
    1.25 -  
    1.26 +
    1.27    switch(ap.files().size()) {
    1.28    case 0:
    1.29      std::cout << "  No file argument was given.\n";
    1.30 @@ -94,10 +94,10 @@
    1.31      break;
    1.32    default:
    1.33      std::cout << "  "
    1.34 -	      << ap.files().size() << " file arguments were given. They are:\n";
    1.35 +              << ap.files().size() << " file arguments were given. They are:\n";
    1.36    }
    1.37    for(unsigned int i=0;i<ap.files().size();++i)
    1.38      std::cout << "    '" << ap.files()[i] << "'\n";
    1.39 -  
    1.40 +
    1.41    return 0;
    1.42  }
     2.1 --- a/demo/graph_to_eps_demo.cc	Sun Jul 13 16:46:56 2008 +0100
     2.2 +++ b/demo/graph_to_eps_demo.cc	Sun Jul 13 19:51:02 2008 +0100
     2.3 @@ -1,6 +1,6 @@
     2.4 -/* -*- C++ -*-
     2.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
     2.6   *
     2.7 - * This file is a part of LEMON, a generic C++ optimization library
     2.8 + * This file is a part of LEMON, a generic C++ optimization library.
     2.9   *
    2.10   * Copyright (C) 2003-2008
    2.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    2.12 @@ -49,7 +49,7 @@
    2.13    typedef ListDigraph::NodeIt NodeIt;
    2.14    typedef ListDigraph::Arc Arc;
    2.15    typedef dim2::Point<int> Point;
    2.16 -  
    2.17 +
    2.18    Node n1=g.addNode();
    2.19    Node n2=g.addNode();
    2.20    Node n3=g.addNode();
    2.21 @@ -62,13 +62,13 @@
    2.22    ListDigraph::NodeMap<int> shapes(g);
    2.23    ListDigraph::ArcMap<int> acolors(g);
    2.24    ListDigraph::ArcMap<int> widths(g);
    2.25 -  
    2.26 +
    2.27    coords[n1]=Point(50,50);  sizes[n1]=1; colors[n1]=1; shapes[n1]=0;
    2.28    coords[n2]=Point(50,70);  sizes[n2]=2; colors[n2]=2; shapes[n2]=2;
    2.29    coords[n3]=Point(70,70);  sizes[n3]=1; colors[n3]=3; shapes[n3]=0;
    2.30    coords[n4]=Point(70,50);  sizes[n4]=2; colors[n4]=4; shapes[n4]=1;
    2.31    coords[n5]=Point(85,60);  sizes[n5]=3; colors[n5]=5; shapes[n5]=2;
    2.32 -  
    2.33 +
    2.34    Arc a;
    2.35  
    2.36    a=g.addArc(n1,n2); acolors[a]=0; widths[a]=1;
    2.37 @@ -78,7 +78,7 @@
    2.38    a=g.addArc(n4,n1); acolors[a]=0; widths[a]=1;
    2.39    a=g.addArc(n2,n4); acolors[a]=1; widths[a]=2;
    2.40    a=g.addArc(n3,n4); acolors[a]=2; widths[a]=1;
    2.41 -  
    2.42 +
    2.43    IdMap<ListDigraph,Node> id(g);
    2.44  
    2.45    // Create five .eps files showing the digraph with different options
    2.46 @@ -182,14 +182,14 @@
    2.47    ListDigraph h;
    2.48    ListDigraph::NodeMap<int> hcolors(h);
    2.49    ListDigraph::NodeMap<Point> hcoords(h);
    2.50 -  
    2.51 +
    2.52    int cols=int(sqrt(double(palette.size())));
    2.53    for(int i=0;i<int(paletteW.size());i++) {
    2.54      Node n=h.addNode();
    2.55      hcoords[n]=Point(1+i%cols,1+i/cols);
    2.56      hcolors[n]=i;
    2.57    }
    2.58 -  
    2.59 +
    2.60    cout << "Create 'graph_to_eps_demo_out_6_colors.eps'" << endl;
    2.61    graphToEps(h,"graph_to_eps_demo_out_6_colors.eps").
    2.62      scale(60).
    2.63 @@ -202,6 +202,6 @@
    2.64      nodeTexts(hcolors).nodeTextSize(.6).
    2.65      nodeColors(composeMap(paletteW,hcolors)).
    2.66      run();
    2.67 -    
    2.68 +
    2.69    return 0;
    2.70  }
     3.1 --- a/demo/lgf_demo.cc	Sun Jul 13 16:46:56 2008 +0100
     3.2 +++ b/demo/lgf_demo.cc	Sun Jul 13 19:51:02 2008 +0100
     3.3 @@ -1,6 +1,6 @@
     3.4 -/* -*- C++ -*-
     3.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
     3.6   *
     3.7 - * This file is a part of LEMON, a generic C++ optimization library
     3.8 + * This file is a part of LEMON, a generic C++ optimization library.
     3.9   *
    3.10   * Copyright (C) 2003-2008
    3.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    3.12 @@ -21,7 +21,7 @@
    3.13  ///\brief Demonstrating graph input and output
    3.14  ///
    3.15  /// This program gives an example of how to read and write a digraph
    3.16 -/// and additional maps from/to a stream or a file using the 
    3.17 +/// and additional maps from/to a stream or a file using the
    3.18  /// \ref lgf-format "LGF" format.
    3.19  ///
    3.20  /// The \c "digraph.lgf" file:
    3.21 @@ -42,7 +42,7 @@
    3.22    SmartDigraph g;
    3.23    SmartDigraph::ArcMap<int> cap(g);
    3.24    SmartDigraph::Node s, t;
    3.25 -  
    3.26 +
    3.27    try {
    3.28      digraphReader("digraph.lgf", g). // read the directed graph into g
    3.29        arcMap("capacity", cap).       // read the 'capacity' arc map into cap
     4.1 --- a/doc/coding_style.dox	Sun Jul 13 16:46:56 2008 +0100
     4.2 +++ b/doc/coding_style.dox	Sun Jul 13 19:51:02 2008 +0100
     4.3 @@ -1,6 +1,6 @@
     4.4 -/* -*- C++ -*-
     4.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
     4.6   *
     4.7 - * This file is a part of LEMON, a generic C++ optimization library
     4.8 + * This file is a part of LEMON, a generic C++ optimization library.
     4.9   *
    4.10   * Copyright (C) 2003-2008
    4.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    4.12 @@ -18,7 +18,7 @@
    4.13  
    4.14  /*!
    4.15  
    4.16 -\page coding_style LEMON Coding Style 
    4.17 +\page coding_style LEMON Coding Style
    4.18  
    4.19  \section naming_conv Naming Conventions
    4.20  
    4.21 @@ -68,7 +68,7 @@
    4.22  The name of a class or any type should look like the following.
    4.23  
    4.24  \code
    4.25 -AllWordsCapitalizedWithoutUnderscores 
    4.26 +AllWordsCapitalizedWithoutUnderscores
    4.27  \endcode
    4.28  
    4.29  \subsection cs-func Methods and other functions
    4.30 @@ -76,7 +76,7 @@
    4.31  The name of a function should look like the following.
    4.32  
    4.33  \code
    4.34 -firstWordLowerCaseRestCapitalizedWithoutUnderscores 
    4.35 +firstWordLowerCaseRestCapitalizedWithoutUnderscores
    4.36  \endcode
    4.37  
    4.38  \subsection cs-funcs Constants, Macros
    4.39 @@ -84,15 +84,15 @@
    4.40  The names of constants and macros should look like the following.
    4.41  
    4.42  \code
    4.43 -ALL_UPPER_CASE_WITH_UNDERSCORES 
    4.44 +ALL_UPPER_CASE_WITH_UNDERSCORES
    4.45  \endcode
    4.46  
    4.47 -\subsection cs-loc-var Class and instance member variables, auto variables 
    4.48 +\subsection cs-loc-var Class and instance member variables, auto variables
    4.49  
    4.50  The names of class and instance member variables and auto variables (=variables used locally in methods) should look like the following.
    4.51  
    4.52  \code
    4.53 -all_lower_case_with_underscores 
    4.54 +all_lower_case_with_underscores
    4.55  \endcode
    4.56  
    4.57  \subsection pri-loc-var Private member variables
     5.1 --- a/doc/dirs.dox	Sun Jul 13 16:46:56 2008 +0100
     5.2 +++ b/doc/dirs.dox	Sun Jul 13 19:51:02 2008 +0100
     5.3 @@ -1,6 +1,6 @@
     5.4 -/* -*- C++ -*-
     5.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
     5.6   *
     5.7 - * This file is a part of LEMON, a generic C++ optimization library
     5.8 + * This file is a part of LEMON, a generic C++ optimization library.
     5.9   *
    5.10   * Copyright (C) 2003-2008
    5.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    5.12 @@ -74,6 +74,6 @@
    5.13  \brief Implementation helper files
    5.14  
    5.15  This directory contains some helper classes to implement graphs, maps and
    5.16 -some other classes. As a user you typically don't have to deal with these 
    5.17 +some other classes. As a user you typically don't have to deal with these
    5.18  files.
    5.19  */
     6.1 --- a/doc/groups.dox	Sun Jul 13 16:46:56 2008 +0100
     6.2 +++ b/doc/groups.dox	Sun Jul 13 19:51:02 2008 +0100
     6.3 @@ -1,6 +1,6 @@
     6.4 -/* -*- C++ -*-
     6.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
     6.6   *
     6.7 - * This file is a part of LEMON, a generic C++ optimization library
     6.8 + * This file is a part of LEMON, a generic C++ optimization library.
     6.9   *
    6.10   * Copyright (C) 2003-2008
    6.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    6.12 @@ -26,10 +26,10 @@
    6.13  @ingroup datas
    6.14  \brief Graph structures implemented in LEMON.
    6.15  
    6.16 -The implementation of combinatorial algorithms heavily relies on 
    6.17 -efficient graph implementations. LEMON offers data structures which are 
    6.18 -planned to be easily used in an experimental phase of implementation studies, 
    6.19 -and thereafter the program code can be made efficient by small modifications. 
    6.20 +The implementation of combinatorial algorithms heavily relies on
    6.21 +efficient graph implementations. LEMON offers data structures which are
    6.22 +planned to be easily used in an experimental phase of implementation studies,
    6.23 +and thereafter the program code can be made efficient by small modifications.
    6.24  
    6.25  The most efficient implementation of diverse applications require the
    6.26  usage of different physical graph implementations. These differences
    6.27 @@ -40,21 +40,21 @@
    6.28  running time or on memory usage, some structures may fail to provide
    6.29  some graph features like arc/edge or node deletion.
    6.30  
    6.31 -Alteration of standard containers need a very limited number of 
    6.32 -operations, these together satisfy the everyday requirements. 
    6.33 -In the case of graph structures, different operations are needed which do 
    6.34 -not alter the physical graph, but gives another view. If some nodes or 
    6.35 +Alteration of standard containers need a very limited number of
    6.36 +operations, these together satisfy the everyday requirements.
    6.37 +In the case of graph structures, different operations are needed which do
    6.38 +not alter the physical graph, but gives another view. If some nodes or
    6.39  arcs have to be hidden or the reverse oriented graph have to be used, then
    6.40 -this is the case. It also may happen that in a flow implementation 
    6.41 -the residual graph can be accessed by another algorithm, or a node-set 
    6.42 -is to be shrunk for another algorithm. 
    6.43 -LEMON also provides a variety of graphs for these requirements called 
    6.44 -\ref graph_adaptors "graph adaptors". Adaptors cannot be used alone but only 
    6.45 -in conjunction with other graph representations. 
    6.46 +this is the case. It also may happen that in a flow implementation
    6.47 +the residual graph can be accessed by another algorithm, or a node-set
    6.48 +is to be shrunk for another algorithm.
    6.49 +LEMON also provides a variety of graphs for these requirements called
    6.50 +\ref graph_adaptors "graph adaptors". Adaptors cannot be used alone but only
    6.51 +in conjunction with other graph representations.
    6.52  
    6.53  You are free to use the graph structure that fit your requirements
    6.54  the best, most graph algorithms and auxiliary data structures can be used
    6.55 -with any graph structures. 
    6.56 +with any graph structures.
    6.57  */
    6.58  
    6.59  /**
    6.60 @@ -63,12 +63,12 @@
    6.61  \brief Graph types between real graphs and graph adaptors.
    6.62  
    6.63  This group describes some graph types between real graphs and graph adaptors.
    6.64 -These classes wrap graphs to give new functionality as the adaptors do it. 
    6.65 +These classes wrap graphs to give new functionality as the adaptors do it.
    6.66  On the other hand they are not light-weight structures as the adaptors.
    6.67  */
    6.68  
    6.69  /**
    6.70 -@defgroup maps Maps 
    6.71 +@defgroup maps Maps
    6.72  @ingroup datas
    6.73  \brief Map structures implemented in LEMON.
    6.74  
    6.75 @@ -79,7 +79,7 @@
    6.76  */
    6.77  
    6.78  /**
    6.79 -@defgroup graph_maps Graph Maps 
    6.80 +@defgroup graph_maps Graph Maps
    6.81  @ingroup maps
    6.82  \brief Special graph-related maps.
    6.83  
    6.84 @@ -115,14 +115,14 @@
    6.85        return Color(0.0, 0.0, 0.0);
    6.86      }
    6.87    }
    6.88 -  
    6.89 +
    6.90    Digraph::NodeMap<int> degree_map(graph);
    6.91 -  
    6.92 +
    6.93    digraphToEps(graph, "graph.eps")
    6.94      .coords(coords).scaleToA4().undirected()
    6.95      .nodeColors(composeMap(functorToMap(nodeColor), degree_map))
    6.96      .run();
    6.97 -\endcode 
    6.98 +\endcode
    6.99  The \c functorToMap() function makes an \c int to \c Color map from the
   6.100  \e nodeColor() function. The \c composeMap() compose the \e degree_map
   6.101  and the previously created map. The composed map is a proper function to
   6.102 @@ -140,7 +140,7 @@
   6.103  
   6.104    typedef DivMap<DoubleArcMap, DoubleArcMap> TimeMap;
   6.105    TimeMap time(length, speed);
   6.106 -  
   6.107 +
   6.108    Dijkstra<Digraph, TimeMap> dijkstra(graph, time);
   6.109    dijkstra.run(source, target);
   6.110  \endcode
   6.111 @@ -152,7 +152,7 @@
   6.112  */
   6.113  
   6.114  /**
   6.115 -@defgroup matrices Matrices 
   6.116 +@defgroup matrices Matrices
   6.117  @ingroup datas
   6.118  \brief Two dimensional data storages implemented in LEMON.
   6.119  
   6.120 @@ -200,7 +200,7 @@
   6.121  @ingroup algs
   6.122  \brief Common graph search algorithms.
   6.123  
   6.124 -This group describes the common graph search algorithms like 
   6.125 +This group describes the common graph search algorithms like
   6.126  Breadth-first search (Bfs) and Depth-first search (Dfs).
   6.127  */
   6.128  
   6.129 @@ -212,9 +212,9 @@
   6.130  This group describes the algorithms for finding shortest paths in graphs.
   6.131  */
   6.132  
   6.133 -/** 
   6.134 -@defgroup max_flow Maximum Flow algorithms 
   6.135 -@ingroup algs 
   6.136 +/**
   6.137 +@defgroup max_flow Maximum Flow algorithms
   6.138 +@ingroup algs
   6.139  \brief Algorithms for finding maximum flows.
   6.140  
   6.141  This group describes the algorithms for finding maximum flows and
   6.142 @@ -231,7 +231,7 @@
   6.143  \f[ \max \sum_{v\in\delta^{+}(s)}f_{uv} - \sum_{v\in\delta^{-}(s)}f_{vu}\f]
   6.144  
   6.145  LEMON contains several algorithms for solving maximum flow problems:
   6.146 -- \ref lemon::EdmondsKarp "Edmonds-Karp" 
   6.147 +- \ref lemon::EdmondsKarp "Edmonds-Karp"
   6.148  - \ref lemon::Preflow "Goldberg's Preflow algorithm"
   6.149  - \ref lemon::DinitzSleatorTarjan "Dinitz's blocking flow algorithm with dynamic trees"
   6.150  - \ref lemon::GoldbergTarjan "Preflow algorithm with dynamic trees"
   6.151 @@ -250,12 +250,12 @@
   6.152  \brief Algorithms for finding minimum cost flows and circulations.
   6.153  
   6.154  This group describes the algorithms for finding minimum cost flows and
   6.155 -circulations.  
   6.156 +circulations.
   6.157  */
   6.158  
   6.159  /**
   6.160 -@defgroup min_cut Minimum Cut algorithms 
   6.161 -@ingroup algs 
   6.162 +@defgroup min_cut Minimum Cut algorithms
   6.163 +@ingroup algs
   6.164  
   6.165  \brief Algorithms for finding minimum cut in graphs.
   6.166  
   6.167 @@ -272,7 +272,7 @@
   6.168  LEMON contains several algorithms related to minimum cut problems:
   6.169  
   6.170  - \ref lemon::HaoOrlin "Hao-Orlin algorithm" to calculate minimum cut
   6.171 -  in directed graphs  
   6.172 +  in directed graphs
   6.173  - \ref lemon::NagamochiIbaraki "Nagamochi-Ibaraki algorithm" to
   6.174    calculate minimum cut in undirected graphs
   6.175  - \ref lemon::GomoryHuTree "Gomory-Hu tree computation" to calculate all
   6.176 @@ -307,14 +307,14 @@
   6.177  */
   6.178  
   6.179  /**
   6.180 -@defgroup matching Matching algorithms 
   6.181 +@defgroup matching Matching algorithms
   6.182  @ingroup algs
   6.183  \brief Algorithms for finding matchings in graphs and bipartite graphs.
   6.184  
   6.185  This group contains algorithm objects and functions to calculate
   6.186  matchings in graphs and bipartite graphs. The general matching problem is
   6.187  finding a subset of the arcs which does not shares common endpoints.
   6.188 - 
   6.189 +
   6.190  There are several different algorithms for calculate matchings in
   6.191  graphs.  The matching problems in bipartite graphs are generally
   6.192  easier than in general graphs. The goal of the matching optimization
   6.193 @@ -323,16 +323,16 @@
   6.194  maximum cardinality matching.
   6.195  
   6.196  Lemon contains the next algorithms:
   6.197 -- \ref lemon::MaxBipartiteMatching "MaxBipartiteMatching" Hopcroft-Karp 
   6.198 -  augmenting path algorithm for calculate maximum cardinality matching in 
   6.199 +- \ref lemon::MaxBipartiteMatching "MaxBipartiteMatching" Hopcroft-Karp
   6.200 +  augmenting path algorithm for calculate maximum cardinality matching in
   6.201    bipartite graphs
   6.202 -- \ref lemon::PrBipartiteMatching "PrBipartiteMatching" Push-Relabel 
   6.203 -  algorithm for calculate maximum cardinality matching in bipartite graphs 
   6.204 -- \ref lemon::MaxWeightedBipartiteMatching "MaxWeightedBipartiteMatching" 
   6.205 -  Successive shortest path algorithm for calculate maximum weighted matching 
   6.206 +- \ref lemon::PrBipartiteMatching "PrBipartiteMatching" Push-Relabel
   6.207 +  algorithm for calculate maximum cardinality matching in bipartite graphs
   6.208 +- \ref lemon::MaxWeightedBipartiteMatching "MaxWeightedBipartiteMatching"
   6.209 +  Successive shortest path algorithm for calculate maximum weighted matching
   6.210    and maximum weighted bipartite matching in bipartite graph
   6.211 -- \ref lemon::MinCostMaxBipartiteMatching "MinCostMaxBipartiteMatching" 
   6.212 -  Successive shortest path algorithm for calculate minimum cost maximum 
   6.213 +- \ref lemon::MinCostMaxBipartiteMatching "MinCostMaxBipartiteMatching"
   6.214 +  Successive shortest path algorithm for calculate minimum cost maximum
   6.215    matching in bipartite graph
   6.216  - \ref lemon::MaxMatching "MaxMatching" Edmond's blossom shrinking algorithm
   6.217    for calculate maximum cardinality matching in general graph
   6.218 @@ -396,8 +396,8 @@
   6.219  
   6.220  */
   6.221  
   6.222 -/** 
   6.223 -@defgroup lp_utils Tools for Lp and Mip solvers 
   6.224 +/**
   6.225 +@defgroup lp_utils Tools for Lp and Mip solvers
   6.226  @ingroup lp_group
   6.227  \brief Helper tools to the Lp and Mip solvers.
   6.228  
   6.229 @@ -414,7 +414,7 @@
   6.230  */
   6.231  
   6.232  /**
   6.233 -@defgroup utils Tools and Utilities 
   6.234 +@defgroup utils Tools and Utilities
   6.235  \brief Tools and utilities for programming in LEMON
   6.236  
   6.237  Tools and utilities for programming in LEMON.
   6.238 @@ -467,7 +467,7 @@
   6.239  @defgroup io_group Input-Output
   6.240  \brief Graph Input-Output methods
   6.241  
   6.242 -This group describes the tools for importing and exporting graphs 
   6.243 +This group describes the tools for importing and exporting graphs
   6.244  and graph related data. Now it supports the LEMON format, the
   6.245  \c DIMACS format and the encapsulated postscript (EPS) format.
   6.246  */
   6.247 @@ -486,7 +486,7 @@
   6.248  \brief General \c EPS drawer and graph exporter
   6.249  
   6.250  This group describes general \c EPS drawing methods and special
   6.251 -graph exporting tools. 
   6.252 +graph exporting tools.
   6.253  */
   6.254  
   6.255  
   6.256 @@ -498,7 +498,7 @@
   6.257  classes implemented in LEMON.
   6.258  
   6.259  The purpose of the classes in this group is fourfold.
   6.260 - 
   6.261 +
   6.262  - These classes contain the documentations of the concepts. In order
   6.263    to avoid document multiplications, an implementation of a concept
   6.264    simply refers to the corresponding concept class.
   6.265 @@ -551,9 +551,9 @@
   6.266  /**
   6.267  @defgroup tools Standalone utility applications
   6.268  
   6.269 -Some utility applications are listed here. 
   6.270 +Some utility applications are listed here.
   6.271  
   6.272  The standard compilation procedure (<tt>./configure;make</tt>) will compile
   6.273 -them, as well. 
   6.274 +them, as well.
   6.275  */
   6.276  
     7.1 --- a/doc/lgf.dox	Sun Jul 13 16:46:56 2008 +0100
     7.2 +++ b/doc/lgf.dox	Sun Jul 13 19:51:02 2008 +0100
     7.3 @@ -1,6 +1,6 @@
     7.4 -/* -*- C++ -*-
     7.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
     7.6   *
     7.7 - * This file is a part of LEMON, a generic C++ optimization library
     7.8 + * This file is a part of LEMON, a generic C++ optimization library.
     7.9   *
    7.10   * Copyright (C) 2003-2008
    7.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    7.12 @@ -43,7 +43,7 @@
    7.13  \e quoted. A plain token is just a sequence of non-whitespace characters,
    7.14  while a quoted token is a
    7.15  character sequence surrounded by double quotes, and it can also
    7.16 -contain whitespaces and escape sequences. 
    7.17 +contain whitespaces and escape sequences.
    7.18  
    7.19  The \c \@nodes section describes a set of nodes and associated
    7.20  maps. The first is a header line, its columns are the names of the
    7.21 @@ -72,7 +72,7 @@
    7.22  
    7.23  \code
    7.24   @arcs
    7.25 - 	      capacity
    7.26 +               capacity
    7.27   1   2   16
    7.28   1   3   12
    7.29   2   3   18
     8.1 --- a/doc/license.dox	Sun Jul 13 16:46:56 2008 +0100
     8.2 +++ b/doc/license.dox	Sun Jul 13 19:51:02 2008 +0100
     8.3 @@ -1,6 +1,6 @@
     8.4 -/* -*- C++ -*-
     8.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
     8.6   *
     8.7 - * This file is a part of LEMON, a generic C++ optimization library
     8.8 + * This file is a part of LEMON, a generic C++ optimization library.
     8.9   *
    8.10   * Copyright (C) 2003-2008
    8.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
     9.1 --- a/doc/mainpage.dox	Sun Jul 13 16:46:56 2008 +0100
     9.2 +++ b/doc/mainpage.dox	Sun Jul 13 19:51:02 2008 +0100
     9.3 @@ -1,6 +1,6 @@
     9.4 -/* -*- C++ -*-
     9.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
     9.6   *
     9.7 - * This file is a part of LEMON, a generic C++ optimization library
     9.8 + * This file is a part of LEMON, a generic C++ optimization library.
     9.9   *
    9.10   * Copyright (C) 2003-2008
    9.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    9.12 @@ -41,15 +41,15 @@
    9.13  
    9.14  \subsection howtoread How to read the documentation
    9.15  
    9.16 -If you want to get a quick start and see the most important features then 
    9.17 +If you want to get a quick start and see the most important features then
    9.18  take a look at our \ref quicktour
    9.19  "Quick Tour to LEMON" which will guide you along.
    9.20  
    9.21 -If you already feel like using our library, see the page that tells you 
    9.22 +If you already feel like using our library, see the page that tells you
    9.23  \ref getstart "How to start using LEMON".
    9.24  
    9.25 -If you 
    9.26 -want to see how LEMON works, see 
    9.27 +If you
    9.28 +want to see how LEMON works, see
    9.29  some \ref demoprograms "demo programs"!
    9.30  
    9.31  If you know what you are looking for then try to find it under the
    10.1 --- a/doc/namespaces.dox	Sun Jul 13 16:46:56 2008 +0100
    10.2 +++ b/doc/namespaces.dox	Sun Jul 13 19:51:02 2008 +0100
    10.3 @@ -1,6 +1,6 @@
    10.4 -/* -*- C++ -*-
    10.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    10.6   *
    10.7 - * This file is a part of LEMON, a generic C++ optimization library
    10.8 + * This file is a part of LEMON, a generic C++ optimization library.
    10.9   *
   10.10   * Copyright (C) 2003-2008
   10.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    11.1 --- a/doc/template.h	Sun Jul 13 16:46:56 2008 +0100
    11.2 +++ b/doc/template.h	Sun Jul 13 19:51:02 2008 +0100
    11.3 @@ -1,6 +1,6 @@
    11.4 -/* -*- C++ -*-
    11.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    11.6   *
    11.7 - * This file is a part of LEMON, a generic C++ optimization library
    11.8 + * This file is a part of LEMON, a generic C++ optimization library.
    11.9   *
   11.10   * Copyright (C) 2003-2008
   11.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    12.1 --- a/lemon/arg_parser.cc	Sun Jul 13 16:46:56 2008 +0100
    12.2 +++ b/lemon/arg_parser.cc	Sun Jul 13 19:51:02 2008 +0100
    12.3 @@ -1,6 +1,6 @@
    12.4 -/* -*- C++ -*-
    12.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    12.6   *
    12.7 - * This file is a part of LEMON, a generic C++ optimization library
    12.8 + * This file is a part of LEMON, a generic C++ optimization library.
    12.9   *
   12.10   * Copyright (C) 2003-2008
   12.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   12.12 @@ -38,30 +38,30 @@
   12.13    {
   12.14      for(Opts::iterator i=_opts.begin();i!=_opts.end();++i)
   12.15        if(i->second.self_delete)
   12.16 -	switch(i->second.type) {
   12.17 -	case BOOL:
   12.18 -	  delete i->second.bool_p;
   12.19 -	  break;
   12.20 -	case STRING:
   12.21 -	  delete i->second.string_p;
   12.22 -	  break;
   12.23 -	case DOUBLE:
   12.24 -	  delete i->second.double_p;
   12.25 -	  break;
   12.26 -	case INTEGER:
   12.27 -	  delete i->second.int_p;
   12.28 -	  break;
   12.29 -	case UNKNOWN:
   12.30 -	  break;
   12.31 -	case FUNC:
   12.32 -	  break;
   12.33 -	}
   12.34 +        switch(i->second.type) {
   12.35 +        case BOOL:
   12.36 +          delete i->second.bool_p;
   12.37 +          break;
   12.38 +        case STRING:
   12.39 +          delete i->second.string_p;
   12.40 +          break;
   12.41 +        case DOUBLE:
   12.42 +          delete i->second.double_p;
   12.43 +          break;
   12.44 +        case INTEGER:
   12.45 +          delete i->second.int_p;
   12.46 +          break;
   12.47 +        case UNKNOWN:
   12.48 +          break;
   12.49 +        case FUNC:
   12.50 +          break;
   12.51 +        }
   12.52    }
   12.53 -  
   12.54 +
   12.55  
   12.56    ArgParser &ArgParser::intOption(const std::string &name,
   12.57 -			       const std::string &help,
   12.58 -			       int value, bool obl)
   12.59 +                               const std::string &help,
   12.60 +                               int value, bool obl)
   12.61    {
   12.62      ParData p;
   12.63      p.int_p=new int(value);
   12.64 @@ -74,8 +74,8 @@
   12.65    }
   12.66  
   12.67    ArgParser &ArgParser::doubleOption(const std::string &name,
   12.68 -			       const std::string &help,
   12.69 -			       double value, bool obl)
   12.70 +                               const std::string &help,
   12.71 +                               double value, bool obl)
   12.72    {
   12.73      ParData p;
   12.74      p.double_p=new double(value);
   12.75 @@ -88,8 +88,8 @@
   12.76    }
   12.77  
   12.78    ArgParser &ArgParser::boolOption(const std::string &name,
   12.79 -			       const std::string &help,
   12.80 -			       bool value, bool obl)
   12.81 +                               const std::string &help,
   12.82 +                               bool value, bool obl)
   12.83    {
   12.84      ParData p;
   12.85      p.bool_p=new bool(value);
   12.86 @@ -102,8 +102,8 @@
   12.87    }
   12.88  
   12.89    ArgParser &ArgParser::stringOption(const std::string &name,
   12.90 -			       const std::string &help,
   12.91 -			       std::string value, bool obl)
   12.92 +                               const std::string &help,
   12.93 +                               std::string value, bool obl)
   12.94    {
   12.95      ParData p;
   12.96      p.string_p=new std::string(value);
   12.97 @@ -116,8 +116,8 @@
   12.98    }
   12.99  
  12.100    ArgParser &ArgParser::refOption(const std::string &name,
  12.101 -			       const std::string &help,
  12.102 -			       int &ref, bool obl)
  12.103 +                               const std::string &help,
  12.104 +                               int &ref, bool obl)
  12.105    {
  12.106      ParData p;
  12.107      p.int_p=&ref;
  12.108 @@ -161,8 +161,8 @@
  12.109    }
  12.110  
  12.111    ArgParser &ArgParser::refOption(const std::string &name,
  12.112 -			       const std::string &help,
  12.113 -			       std::string &ref, bool obl)
  12.114 +                               const std::string &help,
  12.115 +                               std::string &ref, bool obl)
  12.116    {
  12.117      ParData p;
  12.118      p.string_p=&ref;
  12.119 @@ -175,8 +175,8 @@
  12.120    }
  12.121  
  12.122    ArgParser &ArgParser::funcOption(const std::string &name,
  12.123 -			       const std::string &help,
  12.124 -			       void (*func)(void *),void *data)
  12.125 +                               const std::string &help,
  12.126 +                               void (*func)(void *),void *data)
  12.127    {
  12.128      ParData p;
  12.129      p.func_p.p=func;
  12.130 @@ -190,11 +190,11 @@
  12.131    }
  12.132  
  12.133    ArgParser &ArgParser::optionGroup(const std::string &group,
  12.134 -				    const std::string &opt)
  12.135 +                                    const std::string &opt)
  12.136    {
  12.137      Opts::iterator i = _opts.find(opt);
  12.138      LEMON_ASSERT(i!=_opts.end(), "Unknown option: '"+opt+"'");
  12.139 -    LEMON_ASSERT(!(i->second.ingroup), 
  12.140 +    LEMON_ASSERT(!(i->second.ingroup),
  12.141                   "Option already in option group: '"+opt+"'");
  12.142      GroupData &g=_groups[group];
  12.143      g.opts.push_back(opt);
  12.144 @@ -210,7 +210,7 @@
  12.145    }
  12.146  
  12.147    ArgParser &ArgParser::synonym(const std::string &syn,
  12.148 -				const std::string &opt)
  12.149 +                                const std::string &opt)
  12.150    {
  12.151      Opts::iterator o = _opts.find(opt);
  12.152      Opts::iterator s = _opts.find(syn);
  12.153 @@ -233,7 +233,7 @@
  12.154    }
  12.155  
  12.156    ArgParser &ArgParser::other(const std::string &name,
  12.157 -			      const std::string &help)
  12.158 +                              const std::string &help)
  12.159    {
  12.160      _others_help.push_back(OtherArg(name,help));
  12.161      return *this;
  12.162 @@ -244,8 +244,8 @@
  12.163      os << "-" << i->first;
  12.164      if(i->second.has_syn)
  12.165        for(Opts::iterator j=_opts.begin();j!=_opts.end();++j)
  12.166 -	if(j->second.syn&&j->second.help==i->first)
  12.167 -	  os << "|-" << j->first;
  12.168 +        if(j->second.syn&&j->second.help==i->first)
  12.169 +          os << "|-" << j->first;
  12.170      switch(i->second.type) {
  12.171      case STRING:
  12.172        os << " str";
  12.173 @@ -270,7 +270,7 @@
  12.174        if(o!=i->second.opts.end()) os<<'|';
  12.175      }
  12.176    }
  12.177 -    
  12.178 +
  12.179    void ArgParser::showHelp(Opts::iterator i)
  12.180    {
  12.181      if(i->second.help.size()==0||i->second.syn) return;
  12.182 @@ -283,9 +283,9 @@
  12.183    {
  12.184      if(i->help.size()==0) return;
  12.185      std::cerr << "  " << i->name << std::endl
  12.186 -	      << "     " << i->help << std::endl;
  12.187 +              << "     " << i->help << std::endl;
  12.188    }
  12.189 -    
  12.190 +
  12.191    void ArgParser::shortHelp()
  12.192    {
  12.193      const unsigned int LINE_LEN=77;
  12.194 @@ -299,62 +299,62 @@
  12.195        show(cstr,g);
  12.196        if(!g->second.mandatory) cstr << ']';
  12.197        if(pos+cstr.str().size()>LINE_LEN) {
  12.198 -	std::cerr << std::endl << indent;
  12.199 -	pos=indent.size();
  12.200 +        std::cerr << std::endl << indent;
  12.201 +        pos=indent.size();
  12.202        }
  12.203        std::cerr << cstr.str();
  12.204        pos+=cstr.str().size();
  12.205      }
  12.206      for(Opts::iterator i=_opts.begin();i!=_opts.end();++i)
  12.207        if(!i->second.ingroup&&!i->second.syn) {
  12.208 -	std::ostringstream cstr;
  12.209 -	cstr << ' ';
  12.210 -	if(!i->second.mandatory) cstr << '[';
  12.211 -	show(cstr,i);
  12.212 -	if(!i->second.mandatory) cstr << ']';
  12.213 -	if(pos+cstr.str().size()>LINE_LEN) {
  12.214 -	  std::cerr << std::endl << indent;
  12.215 -	  pos=indent.size();
  12.216 -	}
  12.217 -	std::cerr << cstr.str();
  12.218 -	pos+=cstr.str().size();
  12.219 +        std::ostringstream cstr;
  12.220 +        cstr << ' ';
  12.221 +        if(!i->second.mandatory) cstr << '[';
  12.222 +        show(cstr,i);
  12.223 +        if(!i->second.mandatory) cstr << ']';
  12.224 +        if(pos+cstr.str().size()>LINE_LEN) {
  12.225 +          std::cerr << std::endl << indent;
  12.226 +          pos=indent.size();
  12.227 +        }
  12.228 +        std::cerr << cstr.str();
  12.229 +        pos+=cstr.str().size();
  12.230        }
  12.231      for(std::vector<OtherArg>::iterator i=_others_help.begin();
  12.232 -	i!=_others_help.end();++i)
  12.233 +        i!=_others_help.end();++i)
  12.234        {
  12.235 -	std::ostringstream cstr;
  12.236 -	cstr << ' ' << i->name;
  12.237 -      
  12.238 -	if(pos+cstr.str().size()>LINE_LEN) {
  12.239 -	  std::cerr << std::endl << indent;
  12.240 -	  pos=indent.size();
  12.241 -	}
  12.242 -	std::cerr << cstr.str();
  12.243 -	pos+=cstr.str().size();
  12.244 +        std::ostringstream cstr;
  12.245 +        cstr << ' ' << i->name;
  12.246 +
  12.247 +        if(pos+cstr.str().size()>LINE_LEN) {
  12.248 +          std::cerr << std::endl << indent;
  12.249 +          pos=indent.size();
  12.250 +        }
  12.251 +        std::cerr << cstr.str();
  12.252 +        pos+=cstr.str().size();
  12.253        }
  12.254      std::cerr << std::endl;
  12.255    }
  12.256 -    
  12.257 +
  12.258    void ArgParser::showHelp()
  12.259    {
  12.260      shortHelp();
  12.261      std::cerr << "Where:\n";
  12.262      for(std::vector<OtherArg>::iterator i=_others_help.begin();
  12.263 -	i!=_others_help.end();++i) showHelp(i);
  12.264 +        i!=_others_help.end();++i) showHelp(i);
  12.265      for(Opts::iterator i=_opts.begin();i!=_opts.end();++i) showHelp(i);
  12.266      exit(1);
  12.267    }
  12.268 -    
  12.269 -      
  12.270 -  void ArgParser::unknownOpt(std::string arg) 
  12.271 +
  12.272 +
  12.273 +  void ArgParser::unknownOpt(std::string arg)
  12.274    {
  12.275      std::cerr << "\nUnknown option: " << arg << "\n";
  12.276      std::cerr << "\nType '" << _command_name <<
  12.277        " --help' to obtain a short summary on the usage.\n\n";
  12.278      exit(1);
  12.279    }
  12.280 -    
  12.281 -  void ArgParser::requiresValue(std::string arg, OptType t) 
  12.282 +
  12.283 +  void ArgParser::requiresValue(std::string arg, OptType t)
  12.284    {
  12.285      std::cerr << "Argument '" << arg << "' requires a";
  12.286      switch(t) {
  12.287 @@ -373,47 +373,47 @@
  12.288      std::cerr << " value\n\n";
  12.289      showHelp();
  12.290    }
  12.291 -    
  12.292 +
  12.293  
  12.294    void ArgParser::checkMandatories()
  12.295    {
  12.296      bool ok=true;
  12.297      for(Opts::iterator i=_opts.begin();i!=_opts.end();++i)
  12.298 -      if(i->second.mandatory&&!i->second.set) 
  12.299 -	{
  12.300 -	  if(ok)
  12.301 -	    std::cerr << _command_name 
  12.302 -		      << ": The following mandatory arguments are missing.\n";
  12.303 -	  ok=false;
  12.304 -	  showHelp(i);
  12.305 -	}
  12.306 +      if(i->second.mandatory&&!i->second.set)
  12.307 +        {
  12.308 +          if(ok)
  12.309 +            std::cerr << _command_name
  12.310 +                      << ": The following mandatory arguments are missing.\n";
  12.311 +          ok=false;
  12.312 +          showHelp(i);
  12.313 +        }
  12.314      for(Groups::iterator i=_groups.begin();i!=_groups.end();++i)
  12.315        if(i->second.mandatory||i->second.only_one)
  12.316 -	{
  12.317 -	  int set=0;
  12.318 -	  for(GroupData::Opts::iterator o=i->second.opts.begin();
  12.319 -	      o!=i->second.opts.end();++o)
  12.320 -	    if(_opts.find(*o)->second.set) ++set;
  12.321 -	  if(i->second.mandatory&&!set) {
  12.322 -	    std::cerr << _command_name 
  12.323 -		      << ": At least one of the following arguments is mandatory.\n";
  12.324 -	    ok=false;
  12.325 -	    for(GroupData::Opts::iterator o=i->second.opts.begin();
  12.326 -		o!=i->second.opts.end();++o)
  12.327 -	      showHelp(_opts.find(*o));
  12.328 -	  }
  12.329 -	  if(i->second.only_one&&set>1) {
  12.330 -	    std::cerr << _command_name 
  12.331 -		      << ": At most one of the following arguments can be given.\n";
  12.332 -	    ok=false;
  12.333 -	    for(GroupData::Opts::iterator o=i->second.opts.begin();
  12.334 -		o!=i->second.opts.end();++o)
  12.335 -	      showHelp(_opts.find(*o));
  12.336 -	  }
  12.337 -	}
  12.338 +        {
  12.339 +          int set=0;
  12.340 +          for(GroupData::Opts::iterator o=i->second.opts.begin();
  12.341 +              o!=i->second.opts.end();++o)
  12.342 +            if(_opts.find(*o)->second.set) ++set;
  12.343 +          if(i->second.mandatory&&!set) {
  12.344 +            std::cerr << _command_name
  12.345 +                      << ": At least one of the following arguments is mandatory.\n";
  12.346 +            ok=false;
  12.347 +            for(GroupData::Opts::iterator o=i->second.opts.begin();
  12.348 +                o!=i->second.opts.end();++o)
  12.349 +              showHelp(_opts.find(*o));
  12.350 +          }
  12.351 +          if(i->second.only_one&&set>1) {
  12.352 +            std::cerr << _command_name
  12.353 +                      << ": At most one of the following arguments can be given.\n";
  12.354 +            ok=false;
  12.355 +            for(GroupData::Opts::iterator o=i->second.opts.begin();
  12.356 +                o!=i->second.opts.end();++o)
  12.357 +              showHelp(_opts.find(*o));
  12.358 +          }
  12.359 +        }
  12.360      if(!ok) {
  12.361        std::cerr << "\nType '" << _command_name <<
  12.362 -	" --help' to obtain a short summary on the usage.\n\n";
  12.363 +        " --help' to obtain a short summary on the usage.\n\n";
  12.364        exit(1);
  12.365      }
  12.366    }
  12.367 @@ -423,43 +423,43 @@
  12.368      for(int ar=1; ar<_argc; ++ar) {
  12.369        std::string arg(_argv[ar]);
  12.370        if (arg[0] != '-' || arg.size() == 1) {
  12.371 -	_file_args.push_back(arg);
  12.372 +        _file_args.push_back(arg);
  12.373        }
  12.374        else {
  12.375 -	Opts::iterator i = _opts.find(arg.substr(1));
  12.376 -	if(i==_opts.end()) unknownOpt(arg);
  12.377 -	else {
  12.378 -	  if(i->second.syn) i=_opts.find(i->second.help);
  12.379 -	  ParData &p(i->second);
  12.380 -	  if (p.type==BOOL) *p.bool_p=true;
  12.381 -	  else if (p.type==FUNC) p.func_p.p(p.func_p.data);
  12.382 -	  else if(++ar==_argc) requiresValue(arg, p.type);
  12.383 -	  else {
  12.384 -	    std::string val(_argv[ar]);
  12.385 -	    std::istringstream vals(val);
  12.386 -	    switch(p.type) {
  12.387 -	    case STRING:
  12.388 -	      *p.string_p=val;
  12.389 -	      break;
  12.390 -	    case INTEGER:
  12.391 -	      vals >> *p.int_p;
  12.392 -	      break;
  12.393 -	    case DOUBLE:
  12.394 -	      vals >> *p.double_p;
  12.395 -	      break;
  12.396 -	    default:
  12.397 -	      break;
  12.398 -	    }
  12.399 -	    if(p.type!=STRING&&(!vals||!vals.eof()))
  12.400 -	      requiresValue(arg, p.type);
  12.401 -	  }
  12.402 -	  p.set = true;
  12.403 -	}
  12.404 +        Opts::iterator i = _opts.find(arg.substr(1));
  12.405 +        if(i==_opts.end()) unknownOpt(arg);
  12.406 +        else {
  12.407 +          if(i->second.syn) i=_opts.find(i->second.help);
  12.408 +          ParData &p(i->second);
  12.409 +          if (p.type==BOOL) *p.bool_p=true;
  12.410 +          else if (p.type==FUNC) p.func_p.p(p.func_p.data);
  12.411 +          else if(++ar==_argc) requiresValue(arg, p.type);
  12.412 +          else {
  12.413 +            std::string val(_argv[ar]);
  12.414 +            std::istringstream vals(val);
  12.415 +            switch(p.type) {
  12.416 +            case STRING:
  12.417 +              *p.string_p=val;
  12.418 +              break;
  12.419 +            case INTEGER:
  12.420 +              vals >> *p.int_p;
  12.421 +              break;
  12.422 +            case DOUBLE:
  12.423 +              vals >> *p.double_p;
  12.424 +              break;
  12.425 +            default:
  12.426 +              break;
  12.427 +            }
  12.428 +            if(p.type!=STRING&&(!vals||!vals.eof()))
  12.429 +              requiresValue(arg, p.type);
  12.430 +          }
  12.431 +          p.set = true;
  12.432 +        }
  12.433        }
  12.434      }
  12.435      checkMandatories();
  12.436  
  12.437      return *this;
  12.438 -  }  
  12.439 +  }
  12.440  
  12.441  }
    13.1 --- a/lemon/arg_parser.h	Sun Jul 13 16:46:56 2008 +0100
    13.2 +++ b/lemon/arg_parser.h	Sun Jul 13 19:51:02 2008 +0100
    13.3 @@ -1,6 +1,6 @@
    13.4 -/* -*- C++ -*-
    13.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    13.6   *
    13.7 - * This file is a part of LEMON, a generic C++ optimization library
    13.8 + * This file is a part of LEMON, a generic C++ optimization library.
    13.9   *
   13.10   * Copyright (C) 2003-2008
   13.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   13.12 @@ -41,27 +41,27 @@
   13.13    ///
   13.14    ///For a complete example see the \ref arg_parser_demo.cc demo file.
   13.15    class ArgParser {
   13.16 -    
   13.17 +
   13.18      static void _showHelp(void *p);
   13.19    protected:
   13.20 -    
   13.21 +
   13.22      int _argc;
   13.23      const char **_argv;
   13.24 -    
   13.25 +
   13.26      enum OptType { UNKNOWN=0, BOOL=1, STRING=2, DOUBLE=3, INTEGER=4, FUNC=5 };
   13.27 -    
   13.28 +
   13.29      class ParData {
   13.30      public:
   13.31        union {
   13.32 -	bool *bool_p;
   13.33 -	int *int_p;
   13.34 -	double *double_p;
   13.35 -	std::string *string_p;
   13.36 -	struct {
   13.37 -	  void (*p)(void *);
   13.38 -	  void *data;
   13.39 -	} func_p;
   13.40 -	  
   13.41 +        bool *bool_p;
   13.42 +        int *int_p;
   13.43 +        double *double_p;
   13.44 +        std::string *string_p;
   13.45 +        struct {
   13.46 +          void (*p)(void *);
   13.47 +          void *data;
   13.48 +        } func_p;
   13.49 +
   13.50        };
   13.51        std::string help;
   13.52        bool mandatory;
   13.53 @@ -72,13 +72,13 @@
   13.54        bool syn;
   13.55        bool self_delete;
   13.56        ParData() : mandatory(false), type(UNKNOWN), set(false), ingroup(false),
   13.57 -		  has_syn(false), syn(false), self_delete(false) {}
   13.58 +                  has_syn(false), syn(false), self_delete(false) {}
   13.59      };
   13.60  
   13.61      typedef std::map<std::string,ParData> Opts;
   13.62      Opts _opts;
   13.63  
   13.64 -    class GroupData 
   13.65 +    class GroupData
   13.66      {
   13.67      public:
   13.68        typedef std::list<std::string> Opts;
   13.69 @@ -87,7 +87,7 @@
   13.70        bool mandatory;
   13.71        GroupData() :only_one(false), mandatory(false) {}
   13.72      };
   13.73 -      
   13.74 +
   13.75      typedef std::map<std::string,GroupData> Groups;
   13.76      Groups _groups;
   13.77  
   13.78 @@ -98,12 +98,12 @@
   13.79        OtherArg(std::string n, std::string h) :name(n), help(h) {}
   13.80  
   13.81      };
   13.82 -      
   13.83 +
   13.84      std::vector<OtherArg> _others_help;
   13.85      std::vector<std::string> _file_args;
   13.86      std::string _command_name;
   13.87  
   13.88 -    
   13.89 +
   13.90    private:
   13.91      //Bind a function to an option.
   13.92  
   13.93 @@ -113,9 +113,9 @@
   13.94      //  must be of type "void f(void *)"
   13.95      //\param data Data to be passed to \c func
   13.96      ArgParser &funcOption(const std::string &name,
   13.97 -		    const std::string &help,
   13.98 -		    void (*func)(void *),void *data);
   13.99 -    
  13.100 +                    const std::string &help,
  13.101 +                    void (*func)(void *),void *data);
  13.102 +
  13.103    public:
  13.104  
  13.105      ///Constructor
  13.106 @@ -136,8 +136,8 @@
  13.107      ///\param value A default value for the option.
  13.108      ///\param obl Indicate if the option is mandatory.
  13.109      ArgParser &intOption(const std::string &name,
  13.110 -		    const std::string &help,
  13.111 -		    int value=0, bool obl=false);
  13.112 +                    const std::string &help,
  13.113 +                    int value=0, bool obl=false);
  13.114  
  13.115      ///Add a new floating point type option
  13.116  
  13.117 @@ -147,8 +147,8 @@
  13.118      ///\param value A default value for the option.
  13.119      ///\param obl Indicate if the option is mandatory.
  13.120      ArgParser &doubleOption(const std::string &name,
  13.121 -		      const std::string &help,
  13.122 -		      double value=0, bool obl=false);
  13.123 +                      const std::string &help,
  13.124 +                      double value=0, bool obl=false);
  13.125  
  13.126      ///Add a new bool type option
  13.127  
  13.128 @@ -159,8 +159,8 @@
  13.129      ///\param obl Indicate if the option is mandatory.
  13.130      ///\note A mandatory bool obtion is of very little use.
  13.131      ArgParser &boolOption(const std::string &name,
  13.132 -		      const std::string &help,
  13.133 -		      bool value=false, bool obl=false);
  13.134 +                      const std::string &help,
  13.135 +                      bool value=false, bool obl=false);
  13.136  
  13.137      ///Add a new string type option
  13.138  
  13.139 @@ -170,8 +170,8 @@
  13.140      ///\param value A default value for the option.
  13.141      ///\param obl Indicate if the option is mandatory.
  13.142      ArgParser &stringOption(const std::string &name,
  13.143 -		      const std::string &help,
  13.144 -		      std::string value="", bool obl=false);
  13.145 +                      const std::string &help,
  13.146 +                      std::string value="", bool obl=false);
  13.147  
  13.148      ///Give help string for non-parsed arguments.
  13.149  
  13.150 @@ -179,8 +179,8 @@
  13.151      ///The parameter \c name will be printed in the short usage line, while
  13.152      ///\c help gives a more detailed description.
  13.153      ArgParser &other(const std::string &name,
  13.154 -		     const std::string &help="");
  13.155 -    
  13.156 +                     const std::string &help="");
  13.157 +
  13.158      ///@}
  13.159  
  13.160      ///\name Options with External Storage
  13.161 @@ -197,8 +197,8 @@
  13.162      ///\param obl Indicate if the option is mandatory.
  13.163      ///\retval ref The value of the argument will be written to this variable.
  13.164      ArgParser &refOption(const std::string &name,
  13.165 -		    const std::string &help,
  13.166 -		    int &ref, bool obl=false);
  13.167 +                    const std::string &help,
  13.168 +                    int &ref, bool obl=false);
  13.169  
  13.170      ///Add a new floating type option with a storage reference
  13.171  
  13.172 @@ -208,8 +208,8 @@
  13.173      ///\param obl Indicate if the option is mandatory.
  13.174      ///\retval ref The value of the argument will be written to this variable.
  13.175      ArgParser &refOption(const std::string &name,
  13.176 -		      const std::string &help,
  13.177 -		      double &ref, bool obl=false);
  13.178 +                      const std::string &help,
  13.179 +                      double &ref, bool obl=false);
  13.180  
  13.181      ///Add a new bool type option with a storage reference
  13.182  
  13.183 @@ -220,8 +220,8 @@
  13.184      ///\retval ref The value of the argument will be written to this variable.
  13.185      ///\note A mandatory bool obtion is of very little use.
  13.186      ArgParser &refOption(const std::string &name,
  13.187 -		      const std::string &help,
  13.188 -		      bool &ref, bool obl=false);
  13.189 +                      const std::string &help,
  13.190 +                      bool &ref, bool obl=false);
  13.191  
  13.192      ///Add a new string type option with a storage reference
  13.193  
  13.194 @@ -231,14 +231,14 @@
  13.195      ///\param obl Indicate if the option is mandatory.
  13.196      ///\retval ref The value of the argument will be written to this variable.
  13.197      ArgParser &refOption(const std::string &name,
  13.198 -		      const std::string &help,
  13.199 -		      std::string &ref, bool obl=false);
  13.200 -    
  13.201 +                      const std::string &help,
  13.202 +                      std::string &ref, bool obl=false);
  13.203 +
  13.204      ///@}
  13.205  
  13.206      ///\name Option Groups and Synonyms
  13.207      ///
  13.208 -    
  13.209 +
  13.210      ///@{
  13.211  
  13.212      ///Bundle some options into a group
  13.213 @@ -248,27 +248,27 @@
  13.214      ///\param group The group name.
  13.215      ///\param opt The option name.
  13.216      ArgParser &optionGroup(const std::string &group,
  13.217 -			   const std::string &opt);
  13.218 +                           const std::string &opt);
  13.219  
  13.220      ///Make the members of a group exclusive
  13.221  
  13.222      ///If you call this function for a group, than at most one of them can be
  13.223      ///given at the same time.
  13.224      ArgParser &onlyOneGroup(const std::string &group);
  13.225 -  
  13.226 +
  13.227      ///Make a group mandatory
  13.228  
  13.229      ///Using this function, at least one of the members of \c group
  13.230      ///must be given.
  13.231      ArgParser &mandatoryGroup(const std::string &group);
  13.232 -    
  13.233 +
  13.234      ///Create synonym to an option
  13.235  
  13.236      ///With this function you can create a synonym \c syn of the
  13.237      ///option \c opt.
  13.238      ArgParser &synonym(const std::string &syn,
  13.239 -			   const std::string &opt);
  13.240 -    
  13.241 +                           const std::string &opt);
  13.242 +
  13.243      ///@}
  13.244  
  13.245      void show(std::ostream &os,Opts::iterator i);
  13.246 @@ -282,21 +282,21 @@
  13.247  
  13.248      void requiresValue(std::string arg, OptType t);
  13.249      void checkMandatories();
  13.250 -    
  13.251 +
  13.252      ///Start the parsing process
  13.253      ArgParser &parse();
  13.254  
  13.255      /// Synonym for parse()
  13.256 -    ArgParser &run() 
  13.257 +    ArgParser &run()
  13.258      {
  13.259        return parse();
  13.260      }
  13.261 -    
  13.262 +
  13.263      ///Give back the command name (the 0th argument)
  13.264      const std::string &commandName() { return _command_name; }
  13.265  
  13.266      ///Check if an opion has been given to the command.
  13.267 -    bool given(std::string op) 
  13.268 +    bool given(std::string op)
  13.269      {
  13.270        Opts::iterator i = _opts.find(op);
  13.271        return i!=_opts.end()?i->second.set:false;
  13.272 @@ -304,12 +304,12 @@
  13.273  
  13.274  
  13.275      ///Magic type for operator[]
  13.276 -    
  13.277 +
  13.278      ///This is the type of the return value of ArgParser::operator[]().
  13.279      ///It automatically converts to \c int, \c double, \c bool or
  13.280      ///\c std::string if the type of the option matches, otherwise it
  13.281      ///throws an exception (i.e. it performs runtime type checking).
  13.282 -    class RefType 
  13.283 +    class RefType
  13.284      {
  13.285        ArgParser &_parser;
  13.286        std::string _name;
  13.287 @@ -317,65 +317,65 @@
  13.288        ///\e
  13.289        RefType(ArgParser &p,const std::string &n) :_parser(p),_name(n) {}
  13.290        ///\e
  13.291 -      operator bool() 
  13.292 +      operator bool()
  13.293        {
  13.294 -	Opts::iterator i = _parser._opts.find(_name);
  13.295 -	LEMON_ASSERT(i!=_parser._opts.end(),
  13.296 -		     std::string()+"Unkown option: '"+_name+"'");
  13.297 -	LEMON_ASSERT(i->second.type==ArgParser::BOOL,
  13.298 -		     std::string()+"'"+_name+"' is a bool option");
  13.299 -	return *(i->second.bool_p);
  13.300 +        Opts::iterator i = _parser._opts.find(_name);
  13.301 +        LEMON_ASSERT(i!=_parser._opts.end(),
  13.302 +                     std::string()+"Unkown option: '"+_name+"'");
  13.303 +        LEMON_ASSERT(i->second.type==ArgParser::BOOL,
  13.304 +                     std::string()+"'"+_name+"' is a bool option");
  13.305 +        return *(i->second.bool_p);
  13.306        }
  13.307        ///\e
  13.308        operator std::string()
  13.309        {
  13.310 -	Opts::iterator i = _parser._opts.find(_name);
  13.311 -	LEMON_ASSERT(i!=_parser._opts.end(),
  13.312 -		     std::string()+"Unkown option: '"+_name+"'");
  13.313 -	LEMON_ASSERT(i->second.type==ArgParser::STRING,
  13.314 -		     std::string()+"'"+_name+"' is a string option");
  13.315 -	return *(i->second.string_p);
  13.316 +        Opts::iterator i = _parser._opts.find(_name);
  13.317 +        LEMON_ASSERT(i!=_parser._opts.end(),
  13.318 +                     std::string()+"Unkown option: '"+_name+"'");
  13.319 +        LEMON_ASSERT(i->second.type==ArgParser::STRING,
  13.320 +                     std::string()+"'"+_name+"' is a string option");
  13.321 +        return *(i->second.string_p);
  13.322        }
  13.323        ///\e
  13.324 -      operator double() 
  13.325 +      operator double()
  13.326        {
  13.327 -	Opts::iterator i = _parser._opts.find(_name);
  13.328 -	LEMON_ASSERT(i!=_parser._opts.end(),
  13.329 -		     std::string()+"Unkown option: '"+_name+"'");
  13.330 -	LEMON_ASSERT(i->second.type==ArgParser::DOUBLE ||
  13.331 -		     i->second.type==ArgParser::INTEGER,
  13.332 -		     std::string()+"'"+_name+"' is a floating point option");
  13.333 -	return i->second.type==ArgParser::DOUBLE ?
  13.334 -	  *(i->second.double_p) : *(i->second.int_p);
  13.335 +        Opts::iterator i = _parser._opts.find(_name);
  13.336 +        LEMON_ASSERT(i!=_parser._opts.end(),
  13.337 +                     std::string()+"Unkown option: '"+_name+"'");
  13.338 +        LEMON_ASSERT(i->second.type==ArgParser::DOUBLE ||
  13.339 +                     i->second.type==ArgParser::INTEGER,
  13.340 +                     std::string()+"'"+_name+"' is a floating point option");
  13.341 +        return i->second.type==ArgParser::DOUBLE ?
  13.342 +          *(i->second.double_p) : *(i->second.int_p);
  13.343        }
  13.344        ///\e
  13.345 -      operator int() 
  13.346 +      operator int()
  13.347        {
  13.348 -	Opts::iterator i = _parser._opts.find(_name);
  13.349 -	LEMON_ASSERT(i!=_parser._opts.end(),
  13.350 -		     std::string()+"Unkown option: '"+_name+"'");
  13.351 -	LEMON_ASSERT(i->second.type==ArgParser::INTEGER,
  13.352 -		     std::string()+"'"+_name+"' is an integer option");
  13.353 -	return *(i->second.int_p);
  13.354 +        Opts::iterator i = _parser._opts.find(_name);
  13.355 +        LEMON_ASSERT(i!=_parser._opts.end(),
  13.356 +                     std::string()+"Unkown option: '"+_name+"'");
  13.357 +        LEMON_ASSERT(i->second.type==ArgParser::INTEGER,
  13.358 +                     std::string()+"'"+_name+"' is an integer option");
  13.359 +        return *(i->second.int_p);
  13.360        }
  13.361  
  13.362      };
  13.363  
  13.364      ///Give back the value of an option
  13.365 -    
  13.366 +
  13.367      ///Give back the value of an option.
  13.368      ///\sa RefType
  13.369      RefType operator[](const std::string &n)
  13.370      {
  13.371        return RefType(*this, n);
  13.372 -    }    
  13.373 +    }
  13.374  
  13.375      ///Give back the non-option type arguments.
  13.376  
  13.377      ///Give back a reference to a vector consisting of the program arguments
  13.378      ///not starting with a '-' character.
  13.379      std::vector<std::string> &files() { return _file_args; }
  13.380 - 
  13.381 +
  13.382    };
  13.383  }
  13.384  
    14.1 --- a/lemon/assert.h	Sun Jul 13 16:46:56 2008 +0100
    14.2 +++ b/lemon/assert.h	Sun Jul 13 19:51:02 2008 +0100
    14.3 @@ -1,6 +1,6 @@
    14.4 -/* -*- C++ -*-
    14.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    14.6   *
    14.7 - * This file is a part of LEMON, a generic C++ optimization library
    14.8 + * This file is a part of LEMON, a generic C++ optimization library.
    14.9   *
   14.10   * Copyright (C) 2003-2008
   14.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   14.12 @@ -28,7 +28,7 @@
   14.13  namespace lemon {
   14.14  
   14.15    inline void assert_fail_log(const char *file, int line, const char *function,
   14.16 -			      const char *message, const char *assertion)
   14.17 +                              const char *message, const char *assertion)
   14.18    {
   14.19      std::cerr << file << ":" << line << ": ";
   14.20      if (function)
   14.21 @@ -40,23 +40,23 @@
   14.22    }
   14.23  
   14.24    inline void assert_fail_abort(const char *file, int line,
   14.25 -				const char *function, const char* message,
   14.26 -				const char *assertion)
   14.27 +                                const char *function, const char* message,
   14.28 +                                const char *assertion)
   14.29    {
   14.30      assert_fail_log(file, line, function, message, assertion);
   14.31      std::abort();
   14.32    }
   14.33  
   14.34    namespace _assert_bits {
   14.35 -    
   14.36 -    
   14.37 +
   14.38 +
   14.39      inline const char* cstringify(const std::string& str) {
   14.40        return str.c_str();
   14.41      }
   14.42  
   14.43      inline const char* cstringify(const char* str) {
   14.44        return str;
   14.45 -    }    
   14.46 +    }
   14.47    }
   14.48  }
   14.49  
   14.50 @@ -66,17 +66,17 @@
   14.51  #undef LEMON_FIXME
   14.52  #undef LEMON_DEBUG
   14.53  
   14.54 -#if (defined(LEMON_ASSERT_LOG) ? 1 : 0) +		\
   14.55 -  (defined(LEMON_ASSERT_ABORT) ? 1 : 0) +		\
   14.56 +#if (defined(LEMON_ASSERT_LOG) ? 1 : 0) +                \
   14.57 +  (defined(LEMON_ASSERT_ABORT) ? 1 : 0) +                \
   14.58    (defined(LEMON_ASSERT_CUSTOM) ? 1 : 0) > 1
   14.59  #error "LEMON assertion system is not set properly"
   14.60  #endif
   14.61  
   14.62 -#if ((defined(LEMON_ASSERT_LOG) ? 1 : 0) +		\
   14.63 -     (defined(LEMON_ASSERT_ABORT) ? 1 : 0) +		\
   14.64 -     (defined(LEMON_ASSERT_CUSTOM) ? 1 : 0) == 1 ||	\
   14.65 -     defined(LEMON_ENABLE_ASSERTS)) &&			\
   14.66 -  (defined(LEMON_DISABLE_ASSERTS) ||			\
   14.67 +#if ((defined(LEMON_ASSERT_LOG) ? 1 : 0) +                \
   14.68 +     (defined(LEMON_ASSERT_ABORT) ? 1 : 0) +                \
   14.69 +     (defined(LEMON_ASSERT_CUSTOM) ? 1 : 0) == 1 ||        \
   14.70 +     defined(LEMON_ENABLE_ASSERTS)) &&                        \
   14.71 +  (defined(LEMON_DISABLE_ASSERTS) ||                        \
   14.72     defined(NDEBUG))
   14.73  #error "LEMON assertion system is not set properly"
   14.74  #endif
   14.75 @@ -136,12 +136,12 @@
   14.76  /// make CXXFLAGS='-DLEMON_DISABLE_ASSERTS'
   14.77  /// \endcode
   14.78  /// The checking is also disabled when the standard macro \c NDEBUG is defined.
   14.79 -/// 
   14.80 +///
   14.81  /// The LEMON assertion system has a wide range of customization
   14.82  /// properties. As a default behaviour the failed assertion prints a
   14.83  /// short log message to the standard error and aborts the execution.
   14.84  ///
   14.85 -/// The following modes can be used in the assertion system: 
   14.86 +/// The following modes can be used in the assertion system:
   14.87  ///
   14.88  /// - \c LEMON_ASSERT_LOG The failed assertion prints a short log
   14.89  ///   message to the standard error and continues the execution.
   14.90 @@ -155,7 +155,7 @@
   14.91  ///                                const char* message, const char* assertion);
   14.92  ///   \endcode
   14.93  ///   The name of the function should be defined as the \c
   14.94 -///   LEMON_CUSTOM_ASSERT_HANDLER macro name. 
   14.95 +///   LEMON_CUSTOM_ASSERT_HANDLER macro name.
   14.96  ///   \code
   14.97  ///     #define LEMON_CUSTOM_ASSERT_HANDLER custom_assert_handler
   14.98  ///   \endcode
   14.99 @@ -166,11 +166,11 @@
  14.100  /// If the macros are redefined with other settings and the
  14.101  /// \ref lemon/assert.h "assert.h" file is reincluded, then the
  14.102  /// behaviour is changed appropiately to the new settings.
  14.103 -#  define LEMON_ASSERT(exp, msg)					\
  14.104 -  (static_cast<void> (!!(exp) ? 0 : (					\
  14.105 -    LEMON_ASSERT_HANDLER(__FILE__, __LINE__,				\
  14.106 -			 LEMON_FUNCTION_NAME,				\
  14.107 -			 ::lemon::_assert_bits::cstringify(msg), #exp), 0)))
  14.108 +#  define LEMON_ASSERT(exp, msg)                                        \
  14.109 +  (static_cast<void> (!!(exp) ? 0 : (                                        \
  14.110 +    LEMON_ASSERT_HANDLER(__FILE__, __LINE__,                                \
  14.111 +                         LEMON_FUNCTION_NAME,                                \
  14.112 +                         ::lemon::_assert_bits::cstringify(msg), #exp), 0)))
  14.113  
  14.114  /// \ingroup exceptions
  14.115  ///
  14.116 @@ -182,11 +182,11 @@
  14.117  ///   LEMON_ASSERT(false, msg);
  14.118  /// \endcode
  14.119  ///
  14.120 -/// \see LEMON_ASSERT 
  14.121 -#  define LEMON_FIXME(msg)						\
  14.122 -  (LEMON_ASSERT_HANDLER(__FILE__, __LINE__, LEMON_FUNCTION_NAME,	\
  14.123 -			::lemon::_assert_bits::cstringify(msg),		\
  14.124 -			static_cast<const char*>(0)))
  14.125 +/// \see LEMON_ASSERT
  14.126 +#  define LEMON_FIXME(msg)                                                \
  14.127 +  (LEMON_ASSERT_HANDLER(__FILE__, __LINE__, LEMON_FUNCTION_NAME,        \
  14.128 +                        ::lemon::_assert_bits::cstringify(msg),                \
  14.129 +                        static_cast<const char*>(0)))
  14.130  
  14.131  /// \ingroup exceptions
  14.132  ///
  14.133 @@ -210,12 +210,12 @@
  14.134  /// current behaviour depends on the settings of \c LEMON_ASSERT
  14.135  /// macro.
  14.136  ///
  14.137 -/// \see LEMON_ASSERT 
  14.138 -#  define LEMON_DEBUG(exp, msg)						\
  14.139 -  (static_cast<void> (!!(exp) ? 0 : (					\
  14.140 +/// \see LEMON_ASSERT
  14.141 +#  define LEMON_DEBUG(exp, msg)                                                \
  14.142 +  (static_cast<void> (!!(exp) ? 0 : (                                        \
  14.143      LEMON_ASSERT_HANDLER(__FILE__, __LINE__,                            \
  14.144 -			 LEMON_FUNCTION_NAME,				\
  14.145 -			 ::lemon::_assert_bits::cstringify(msg), #exp), 0)))
  14.146 +                         LEMON_FUNCTION_NAME,                                \
  14.147 +                         ::lemon::_assert_bits::cstringify(msg), #exp), 0)))
  14.148  
  14.149  #else
  14.150  
  14.151 @@ -224,24 +224,24 @@
  14.152  #    define LEMON_FIXME(msg) (static_cast<void>(0))
  14.153  #    define LEMON_DEBUG(exp, msg) (static_cast<void>(0))
  14.154  #  else
  14.155 -#    define LEMON_ASSERT(exp, msg)					\
  14.156 -       (static_cast<void> (!!(exp) ? 0 : (				\
  14.157 +#    define LEMON_ASSERT(exp, msg)                                        \
  14.158 +       (static_cast<void> (!!(exp) ? 0 : (                                \
  14.159          LEMON_ASSERT_HANDLER(__FILE__, __LINE__,                        \
  14.160 -			     LEMON_FUNCTION_NAME,			\
  14.161 -			     ::lemon::_assert_bits::cstringify(msg),	\
  14.162 -			     #exp), 0)))
  14.163 -#    define LEMON_FIXME(msg)						\
  14.164 -       (LEMON_ASSERT_HANDLER(__FILE__, __LINE__, LEMON_FUNCTION_NAME,	\
  14.165 -			     ::lemon::_assert_bits::cstringify(msg),	\
  14.166 -			     static_cast<const char*>(0)))
  14.167 +                             LEMON_FUNCTION_NAME,                        \
  14.168 +                             ::lemon::_assert_bits::cstringify(msg),        \
  14.169 +                             #exp), 0)))
  14.170 +#    define LEMON_FIXME(msg)                                                \
  14.171 +       (LEMON_ASSERT_HANDLER(__FILE__, __LINE__, LEMON_FUNCTION_NAME,        \
  14.172 +                             ::lemon::_assert_bits::cstringify(msg),        \
  14.173 +                             static_cast<const char*>(0)))
  14.174  
  14.175  #    if LEMON_ENABLE_DEBUG
  14.176  #      define LEMON_DEBUG(exp, msg)
  14.177           (static_cast<void> (!!(exp) ? 0 : (         \
  14.178             LEMON_ASSERT_HANDLER(__FILE__, __LINE__,  \
  14.179                                  LEMON_FUNCTION_NAME, \
  14.180 -				::lemon::_assert_bits::cstringify(msg),	\
  14.181 -				#exp), 0)))
  14.182 +                                ::lemon::_assert_bits::cstringify(msg),        \
  14.183 +                                #exp), 0)))
  14.184  #    else
  14.185  #      define LEMON_DEBUG(exp, msg) (static_cast<void>(0))
  14.186  #    endif
    15.1 --- a/lemon/base.cc	Sun Jul 13 16:46:56 2008 +0100
    15.2 +++ b/lemon/base.cc	Sun Jul 13 19:51:02 2008 +0100
    15.3 @@ -1,6 +1,6 @@
    15.4 -/* -*- C++ -*-
    15.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    15.6   *
    15.7 - * This file is a part of LEMON, a generic C++ optimization library
    15.8 + * This file is a part of LEMON, a generic C++ optimization library.
    15.9   *
   15.10   * Copyright (C) 2003-2008
   15.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    16.1 --- a/lemon/bfs.h	Sun Jul 13 16:46:56 2008 +0100
    16.2 +++ b/lemon/bfs.h	Sun Jul 13 19:51:02 2008 +0100
    16.3 @@ -1,6 +1,6 @@
    16.4 -/* -*- C++ -*-
    16.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    16.6   *
    16.7 - * This file is a part of LEMON, a generic C++ optimization library
    16.8 + * This file is a part of LEMON, a generic C++ optimization library.
    16.9   *
   16.10   * Copyright (C) 2003-2008
   16.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   16.12 @@ -33,7 +33,7 @@
   16.13  namespace lemon {
   16.14  
   16.15  
   16.16 -  
   16.17 +
   16.18    ///Default traits class of Bfs class.
   16.19  
   16.20    ///Default traits class of Bfs class.
   16.21 @@ -41,34 +41,34 @@
   16.22    template<class GR>
   16.23    struct BfsDefaultTraits
   16.24    {
   16.25 -    ///The digraph type the algorithm runs on. 
   16.26 +    ///The digraph type the algorithm runs on.
   16.27      typedef GR Digraph;
   16.28      ///\brief The type of the map that stores the last
   16.29      ///arcs of the shortest paths.
   16.30 -    /// 
   16.31 +    ///
   16.32      ///The type of the map that stores the last
   16.33      ///arcs of the shortest paths.
   16.34      ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
   16.35      ///
   16.36      typedef typename Digraph::template NodeMap<typename GR::Arc> PredMap;
   16.37      ///Instantiates a PredMap.
   16.38 - 
   16.39 -    ///This function instantiates a \ref PredMap. 
   16.40 +
   16.41 +    ///This function instantiates a \ref PredMap.
   16.42      ///\param G is the digraph, to which we would like to define the PredMap.
   16.43      ///\todo The digraph alone may be insufficient to initialize
   16.44 -    static PredMap *createPredMap(const GR &G) 
   16.45 +    static PredMap *createPredMap(const GR &G)
   16.46      {
   16.47        return new PredMap(G);
   16.48      }
   16.49      ///The type of the map that indicates which nodes are processed.
   16.50 - 
   16.51 +
   16.52      ///The type of the map that indicates which nodes are processed.
   16.53      ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
   16.54      ///\todo named parameter to set this type, function to read and write.
   16.55      typedef NullMap<typename Digraph::Node,bool> ProcessedMap;
   16.56      ///Instantiates a ProcessedMap.
   16.57 - 
   16.58 -    ///This function instantiates a \ref ProcessedMap. 
   16.59 +
   16.60 +    ///This function instantiates a \ref ProcessedMap.
   16.61      ///\param g is the digraph, to which
   16.62      ///we would like to define the \ref ProcessedMap
   16.63  #ifdef DOXYGEN
   16.64 @@ -80,14 +80,14 @@
   16.65        return new ProcessedMap();
   16.66      }
   16.67      ///The type of the map that indicates which nodes are reached.
   16.68 - 
   16.69 +
   16.70      ///The type of the map that indicates which nodes are reached.
   16.71      ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
   16.72      ///\todo named parameter to set this type, function to read and write.
   16.73      typedef typename Digraph::template NodeMap<bool> ReachedMap;
   16.74      ///Instantiates a ReachedMap.
   16.75 - 
   16.76 -    ///This function instantiates a \ref ReachedMap. 
   16.77 +
   16.78 +    ///This function instantiates a \ref ReachedMap.
   16.79      ///\param G is the digraph, to which
   16.80      ///we would like to define the \ref ReachedMap.
   16.81      static ReachedMap *createReachedMap(const GR &G)
   16.82 @@ -95,23 +95,23 @@
   16.83        return new ReachedMap(G);
   16.84      }
   16.85      ///The type of the map that stores the dists of the nodes.
   16.86 - 
   16.87 +
   16.88      ///The type of the map that stores the dists of the nodes.
   16.89      ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
   16.90      ///
   16.91      typedef typename Digraph::template NodeMap<int> DistMap;
   16.92      ///Instantiates a DistMap.
   16.93 - 
   16.94 -    ///This function instantiates a \ref DistMap. 
   16.95 +
   16.96 +    ///This function instantiates a \ref DistMap.
   16.97      ///\param G is the digraph, to which we would like to define the \ref DistMap
   16.98      static DistMap *createDistMap(const GR &G)
   16.99      {
  16.100        return new DistMap(G);
  16.101      }
  16.102    };
  16.103 -  
  16.104 +
  16.105    ///%BFS algorithm class.
  16.106 -  
  16.107 +
  16.108    ///\ingroup search
  16.109    ///This class provides an efficient implementation of the %BFS algorithm.
  16.110    ///
  16.111 @@ -126,10 +126,10 @@
  16.112  
  16.113  #ifdef DOXYGEN
  16.114    template <typename GR,
  16.115 -	    typename TR>
  16.116 +            typename TR>
  16.117  #else
  16.118    template <typename GR=ListDigraph,
  16.119 -	    typename TR=BfsDefaultTraits<GR> >
  16.120 +            typename TR=BfsDefaultTraits<GR> >
  16.121  #endif
  16.122    class Bfs {
  16.123    public:
  16.124 @@ -142,14 +142,14 @@
  16.125      class UninitializedParameter : public lemon::UninitializedParameter {
  16.126      public:
  16.127        virtual const char* what() const throw() {
  16.128 -	return "lemon::Bfs::UninitializedParameter";
  16.129 +        return "lemon::Bfs::UninitializedParameter";
  16.130        }
  16.131      };
  16.132  
  16.133      typedef TR Traits;
  16.134      ///The type of the underlying digraph.
  16.135      typedef typename TR::Digraph Digraph;
  16.136 -    
  16.137 +
  16.138      ///\brief The type of the map that stores the last
  16.139      ///arcs of the shortest paths.
  16.140      typedef typename TR::PredMap PredMap;
  16.141 @@ -190,34 +190,34 @@
  16.142      int _curr_dist;
  16.143  
  16.144      ///Creates the maps if necessary.
  16.145 -    
  16.146 +
  16.147      ///\todo Better memory allocation (instead of new).
  16.148 -    void create_maps() 
  16.149 +    void create_maps()
  16.150      {
  16.151        if(!_pred) {
  16.152 -	local_pred = true;
  16.153 -	_pred = Traits::createPredMap(*G);
  16.154 +        local_pred = true;
  16.155 +        _pred = Traits::createPredMap(*G);
  16.156        }
  16.157        if(!_dist) {
  16.158 -	local_dist = true;
  16.159 -	_dist = Traits::createDistMap(*G);
  16.160 +        local_dist = true;
  16.161 +        _dist = Traits::createDistMap(*G);
  16.162        }
  16.163        if(!_reached) {
  16.164 -	local_reached = true;
  16.165 -	_reached = Traits::createReachedMap(*G);
  16.166 +        local_reached = true;
  16.167 +        _reached = Traits::createReachedMap(*G);
  16.168        }
  16.169        if(!_processed) {
  16.170 -	local_processed = true;
  16.171 -	_processed = Traits::createProcessedMap(*G);
  16.172 +        local_processed = true;
  16.173 +        _processed = Traits::createProcessedMap(*G);
  16.174        }
  16.175      }
  16.176  
  16.177    protected:
  16.178 -    
  16.179 +
  16.180      Bfs() {}
  16.181 -    
  16.182 +
  16.183    public:
  16.184 - 
  16.185 +
  16.186      typedef Bfs Create;
  16.187  
  16.188      ///\name Named template parameters
  16.189 @@ -227,9 +227,9 @@
  16.190      template <class T>
  16.191      struct DefPredMapTraits : public Traits {
  16.192        typedef T PredMap;
  16.193 -      static PredMap *createPredMap(const Digraph &) 
  16.194 +      static PredMap *createPredMap(const Digraph &)
  16.195        {
  16.196 -	throw UninitializedParameter();
  16.197 +        throw UninitializedParameter();
  16.198        }
  16.199      };
  16.200      ///\brief \ref named-templ-param "Named parameter" for setting
  16.201 @@ -238,16 +238,16 @@
  16.202      ///\ref named-templ-param "Named parameter" for setting PredMap type
  16.203      ///
  16.204      template <class T>
  16.205 -    struct DefPredMap : public Bfs< Digraph, DefPredMapTraits<T> > { 
  16.206 +    struct DefPredMap : public Bfs< Digraph, DefPredMapTraits<T> > {
  16.207        typedef Bfs< Digraph, DefPredMapTraits<T> > Create;
  16.208      };
  16.209 -    
  16.210 +
  16.211      template <class T>
  16.212      struct DefDistMapTraits : public Traits {
  16.213        typedef T DistMap;
  16.214 -      static DistMap *createDistMap(const Digraph &) 
  16.215 +      static DistMap *createDistMap(const Digraph &)
  16.216        {
  16.217 -	throw UninitializedParameter();
  16.218 +        throw UninitializedParameter();
  16.219        }
  16.220      };
  16.221      ///\brief \ref named-templ-param "Named parameter" for setting
  16.222 @@ -256,16 +256,16 @@
  16.223      ///\ref named-templ-param "Named parameter" for setting DistMap type
  16.224      ///
  16.225      template <class T>
  16.226 -    struct DefDistMap : public Bfs< Digraph, DefDistMapTraits<T> > { 
  16.227 +    struct DefDistMap : public Bfs< Digraph, DefDistMapTraits<T> > {
  16.228        typedef Bfs< Digraph, DefDistMapTraits<T> > Create;
  16.229      };
  16.230 -    
  16.231 +
  16.232      template <class T>
  16.233      struct DefReachedMapTraits : public Traits {
  16.234        typedef T ReachedMap;
  16.235 -      static ReachedMap *createReachedMap(const Digraph &) 
  16.236 +      static ReachedMap *createReachedMap(const Digraph &)
  16.237        {
  16.238 -	throw UninitializedParameter();
  16.239 +        throw UninitializedParameter();
  16.240        }
  16.241      };
  16.242      ///\brief \ref named-templ-param "Named parameter" for setting
  16.243 @@ -274,16 +274,16 @@
  16.244      ///\ref named-templ-param "Named parameter" for setting ReachedMap type
  16.245      ///
  16.246      template <class T>
  16.247 -    struct DefReachedMap : public Bfs< Digraph, DefReachedMapTraits<T> > { 
  16.248 +    struct DefReachedMap : public Bfs< Digraph, DefReachedMapTraits<T> > {
  16.249        typedef Bfs< Digraph, DefReachedMapTraits<T> > Create;
  16.250      };
  16.251 -    
  16.252 +
  16.253      template <class T>
  16.254      struct DefProcessedMapTraits : public Traits {
  16.255        typedef T ProcessedMap;
  16.256 -      static ProcessedMap *createProcessedMap(const Digraph &) 
  16.257 +      static ProcessedMap *createProcessedMap(const Digraph &)
  16.258        {
  16.259 -	throw UninitializedParameter();
  16.260 +        throw UninitializedParameter();
  16.261        }
  16.262      };
  16.263      ///\brief \ref named-templ-param "Named parameter" for setting
  16.264 @@ -295,12 +295,12 @@
  16.265      struct DefProcessedMap : public Bfs< Digraph, DefProcessedMapTraits<T> > {
  16.266        typedef Bfs< Digraph, DefProcessedMapTraits<T> > Create;
  16.267      };
  16.268 -    
  16.269 +
  16.270      struct DefDigraphProcessedMapTraits : public Traits {
  16.271        typedef typename Digraph::template NodeMap<bool> ProcessedMap;
  16.272 -      static ProcessedMap *createProcessedMap(const Digraph &G) 
  16.273 +      static ProcessedMap *createProcessedMap(const Digraph &G)
  16.274        {
  16.275 -	return new ProcessedMap(G);
  16.276 +        return new ProcessedMap(G);
  16.277        }
  16.278      };
  16.279      ///\brief \ref named-templ-param "Named parameter"
  16.280 @@ -311,16 +311,16 @@
  16.281      ///If you don't set it explicitly, it will be automatically allocated.
  16.282      template <class T>
  16.283      struct DefProcessedMapToBeDefaultMap :
  16.284 -      public Bfs< Digraph, DefDigraphProcessedMapTraits> { 
  16.285 +      public Bfs< Digraph, DefDigraphProcessedMapTraits> {
  16.286        typedef Bfs< Digraph, DefDigraphProcessedMapTraits> Create;
  16.287      };
  16.288 -    
  16.289 +
  16.290      ///@}
  16.291  
  16.292 -  public:      
  16.293 -    
  16.294 +  public:
  16.295 +
  16.296      ///Constructor.
  16.297 -    
  16.298 +
  16.299      ///\param _G the digraph the algorithm will run on.
  16.300      ///
  16.301      Bfs(const Digraph& _G) :
  16.302 @@ -330,9 +330,9 @@
  16.303        _reached(NULL), local_reached(false),
  16.304        _processed(NULL), local_processed(false)
  16.305      { }
  16.306 -    
  16.307 +
  16.308      ///Destructor.
  16.309 -    ~Bfs() 
  16.310 +    ~Bfs()
  16.311      {
  16.312        if(local_pred) delete _pred;
  16.313        if(local_dist) delete _dist;
  16.314 @@ -347,11 +347,11 @@
  16.315      ///it will allocate one. The destructor deallocates this
  16.316      ///automatically allocated map, of course.
  16.317      ///\return <tt> (*this) </tt>
  16.318 -    Bfs &predMap(PredMap &m) 
  16.319 +    Bfs &predMap(PredMap &m)
  16.320      {
  16.321        if(local_pred) {
  16.322 -	delete _pred;
  16.323 -	local_pred=false;
  16.324 +        delete _pred;
  16.325 +        local_pred=false;
  16.326        }
  16.327        _pred = &m;
  16.328        return *this;
  16.329 @@ -364,11 +364,11 @@
  16.330      ///it will allocate one. The destructor deallocates this
  16.331      ///automatically allocated map, of course.
  16.332      ///\return <tt> (*this) </tt>
  16.333 -    Bfs &reachedMap(ReachedMap &m) 
  16.334 +    Bfs &reachedMap(ReachedMap &m)
  16.335      {
  16.336        if(local_reached) {
  16.337 -	delete _reached;
  16.338 -	local_reached=false;
  16.339 +        delete _reached;
  16.340 +        local_reached=false;
  16.341        }
  16.342        _reached = &m;
  16.343        return *this;
  16.344 @@ -381,11 +381,11 @@
  16.345      ///it will allocate one. The destructor deallocates this
  16.346      ///automatically allocated map, of course.
  16.347      ///\return <tt> (*this) </tt>
  16.348 -    Bfs &processedMap(ProcessedMap &m) 
  16.349 +    Bfs &processedMap(ProcessedMap &m)
  16.350      {
  16.351        if(local_processed) {
  16.352 -	delete _processed;
  16.353 -	local_processed=false;
  16.354 +        delete _processed;
  16.355 +        local_processed=false;
  16.356        }
  16.357        _processed = &m;
  16.358        return *this;
  16.359 @@ -398,11 +398,11 @@
  16.360      ///it will allocate one. The destructor deallocates this
  16.361      ///automatically allocated map, of course.
  16.362      ///\return <tt> (*this) </tt>
  16.363 -    Bfs &distMap(DistMap &m) 
  16.364 +    Bfs &distMap(DistMap &m)
  16.365      {
  16.366        if(local_dist) {
  16.367 -	delete _dist;
  16.368 -	local_dist=false;
  16.369 +        delete _dist;
  16.370 +        local_dist=false;
  16.371        }
  16.372        _dist = &m;
  16.373        return *this;
  16.374 @@ -432,12 +432,12 @@
  16.375        _queue_head=_queue_tail=0;
  16.376        _curr_dist=1;
  16.377        for ( NodeIt u(*G) ; u!=INVALID ; ++u ) {
  16.378 -	_pred->set(u,INVALID);
  16.379 -	_reached->set(u,false);
  16.380 -	_processed->set(u,false);
  16.381 +        _pred->set(u,INVALID);
  16.382 +        _reached->set(u,false);
  16.383 +        _processed->set(u,false);
  16.384        }
  16.385      }
  16.386 -    
  16.387 +
  16.388      ///Adds a new source node.
  16.389  
  16.390      ///Adds a new source node to the set of nodes to be processed.
  16.391 @@ -445,15 +445,15 @@
  16.392      void addSource(Node s)
  16.393      {
  16.394        if(!(*_reached)[s])
  16.395 -	{
  16.396 -	  _reached->set(s,true);
  16.397 -	  _pred->set(s,INVALID);
  16.398 -	  _dist->set(s,0);
  16.399 -	  _queue[_queue_head++]=s;
  16.400 -	  _queue_next_dist=_queue_head;
  16.401 -	}
  16.402 +        {
  16.403 +          _reached->set(s,true);
  16.404 +          _pred->set(s,INVALID);
  16.405 +          _dist->set(s,0);
  16.406 +          _queue[_queue_head++]=s;
  16.407 +          _queue_next_dist=_queue_head;
  16.408 +        }
  16.409      }
  16.410 -    
  16.411 +
  16.412      ///Processes the next node.
  16.413  
  16.414      ///Processes the next node.
  16.415 @@ -464,19 +464,19 @@
  16.416      Node processNextNode()
  16.417      {
  16.418        if(_queue_tail==_queue_next_dist) {
  16.419 -	_curr_dist++;
  16.420 -	_queue_next_dist=_queue_head;
  16.421 +        _curr_dist++;
  16.422 +        _queue_next_dist=_queue_head;
  16.423        }
  16.424        Node n=_queue[_queue_tail++];
  16.425        _processed->set(n,true);
  16.426        Node m;
  16.427        for(OutArcIt e(*G,n);e!=INVALID;++e)
  16.428 -	if(!(*_reached)[m=G->target(e)]) {
  16.429 -	  _queue[_queue_head++]=m;
  16.430 -	  _reached->set(m,true);
  16.431 -	  _pred->set(m,e);
  16.432 -	  _dist->set(m,_curr_dist);
  16.433 -	}
  16.434 +        if(!(*_reached)[m=G->target(e)]) {
  16.435 +          _queue[_queue_head++]=m;
  16.436 +          _reached->set(m,true);
  16.437 +          _pred->set(m,e);
  16.438 +          _dist->set(m,_curr_dist);
  16.439 +        }
  16.440        return n;
  16.441      }
  16.442  
  16.443 @@ -495,20 +495,20 @@
  16.444      Node processNextNode(Node target, bool& reach)
  16.445      {
  16.446        if(_queue_tail==_queue_next_dist) {
  16.447 -	_curr_dist++;
  16.448 -	_queue_next_dist=_queue_head;
  16.449 +        _curr_dist++;
  16.450 +        _queue_next_dist=_queue_head;
  16.451        }
  16.452        Node n=_queue[_queue_tail++];
  16.453        _processed->set(n,true);
  16.454        Node m;
  16.455        for(OutArcIt e(*G,n);e!=INVALID;++e)
  16.456 -	if(!(*_reached)[m=G->target(e)]) {
  16.457 -	  _queue[_queue_head++]=m;
  16.458 -	  _reached->set(m,true);
  16.459 -	  _pred->set(m,e);
  16.460 -	  _dist->set(m,_curr_dist);
  16.461 +        if(!(*_reached)[m=G->target(e)]) {
  16.462 +          _queue[_queue_head++]=m;
  16.463 +          _reached->set(m,true);
  16.464 +          _pred->set(m,e);
  16.465 +          _dist->set(m,_curr_dist);
  16.466            reach = reach || (target == m);
  16.467 -	}
  16.468 +        }
  16.469        return n;
  16.470      }
  16.471  
  16.472 @@ -528,23 +528,23 @@
  16.473      Node processNextNode(const NM& nm, Node& rnode)
  16.474      {
  16.475        if(_queue_tail==_queue_next_dist) {
  16.476 -	_curr_dist++;
  16.477 -	_queue_next_dist=_queue_head;
  16.478 +        _curr_dist++;
  16.479 +        _queue_next_dist=_queue_head;
  16.480        }
  16.481        Node n=_queue[_queue_tail++];
  16.482        _processed->set(n,true);
  16.483        Node m;
  16.484        for(OutArcIt e(*G,n);e!=INVALID;++e)
  16.485 -	if(!(*_reached)[m=G->target(e)]) {
  16.486 -	  _queue[_queue_head++]=m;
  16.487 -	  _reached->set(m,true);
  16.488 -	  _pred->set(m,e);
  16.489 -	  _dist->set(m,_curr_dist);
  16.490 -	  if (nm[m] && rnode == INVALID) rnode = m;
  16.491 -	}
  16.492 +        if(!(*_reached)[m=G->target(e)]) {
  16.493 +          _queue[_queue_head++]=m;
  16.494 +          _reached->set(m,true);
  16.495 +          _pred->set(m,e);
  16.496 +          _dist->set(m,_curr_dist);
  16.497 +          if (nm[m] && rnode == INVALID) rnode = m;
  16.498 +        }
  16.499        return n;
  16.500      }
  16.501 -      
  16.502 +
  16.503      ///Next node to be processed.
  16.504  
  16.505      ///Next node to be processed.
  16.506 @@ -552,10 +552,10 @@
  16.507      ///\return The next node to be processed or INVALID if the queue is
  16.508      /// empty.
  16.509      Node nextNode()
  16.510 -    { 
  16.511 +    {
  16.512        return _queue_tail<_queue_head?_queue[_queue_tail]:INVALID;
  16.513      }
  16.514 - 
  16.515 +
  16.516      ///\brief Returns \c false if there are nodes
  16.517      ///to be processed in the queue
  16.518      ///
  16.519 @@ -563,10 +563,10 @@
  16.520      ///to be processed in the queue
  16.521      bool emptyQueue() { return _queue_tail==_queue_head; }
  16.522      ///Returns the number of the nodes to be processed.
  16.523 -    
  16.524 +
  16.525      ///Returns the number of the nodes to be processed in the queue.
  16.526      int queueSize() { return _queue_head-_queue_tail; }
  16.527 -    
  16.528 +
  16.529      ///Executes the algorithm.
  16.530  
  16.531      ///Executes the algorithm.
  16.532 @@ -584,7 +584,7 @@
  16.533      {
  16.534        while ( !emptyQueue() ) processNextNode();
  16.535      }
  16.536 -    
  16.537 +
  16.538      ///Executes the algorithm until \c dest is reached.
  16.539  
  16.540      ///Executes the algorithm until \c dest is reached.
  16.541 @@ -602,7 +602,7 @@
  16.542        bool reach = false;
  16.543        while ( !emptyQueue() && !reach ) processNextNode(dest, reach);
  16.544      }
  16.545 -    
  16.546 +
  16.547      ///Executes the algorithm until a condition is met.
  16.548  
  16.549      ///Executes the algorithm until a condition is met.
  16.550 @@ -621,13 +621,13 @@
  16.551      {
  16.552        Node rnode = INVALID;
  16.553        while ( !emptyQueue() && rnode == INVALID ) {
  16.554 -	processNextNode(nm, rnode);
  16.555 +        processNextNode(nm, rnode);
  16.556        }
  16.557        return rnode;
  16.558      }
  16.559 -    
  16.560 +
  16.561      ///Runs %BFS algorithm from node \c s.
  16.562 -    
  16.563 +
  16.564      ///This method runs the %BFS algorithm from a root node \c s
  16.565      ///in order to
  16.566      ///compute the
  16.567 @@ -646,9 +646,9 @@
  16.568        addSource(s);
  16.569        start();
  16.570      }
  16.571 -    
  16.572 +
  16.573      ///Finds the shortest path between \c s and \c t.
  16.574 -    
  16.575 +
  16.576      ///Finds the shortest path between \c s and \c t.
  16.577      ///
  16.578      ///\return The length of the shortest s---t path if there exists one,
  16.579 @@ -666,7 +666,7 @@
  16.580        start(t);
  16.581        return reached(t) ? _curr_dist : 0;
  16.582      }
  16.583 -    
  16.584 +
  16.585      ///@}
  16.586  
  16.587      ///\name Query Functions
  16.588 @@ -674,16 +674,16 @@
  16.589      ///functions.\n
  16.590      ///Before the use of these functions,
  16.591      ///either run() or start() must be calleb.
  16.592 -    
  16.593 +
  16.594      ///@{
  16.595  
  16.596      typedef PredMapPath<Digraph, PredMap> Path;
  16.597  
  16.598      ///Gives back the shortest path.
  16.599 -    
  16.600 +
  16.601      ///Gives back the shortest path.
  16.602      ///\pre The \c t should be reachable from the source.
  16.603 -    Path path(Node t) 
  16.604 +    Path path(Node t)
  16.605      {
  16.606        return Path(*G, *_pred, t);
  16.607      }
  16.608 @@ -722,15 +722,15 @@
  16.609      ///\pre Either \ref run() or \ref start() must be called before
  16.610      ///using this function.
  16.611      Node predNode(Node v) const { return (*_pred)[v]==INVALID ? INVALID:
  16.612 -				  G->source((*_pred)[v]); }
  16.613 -    
  16.614 +                                  G->source((*_pred)[v]); }
  16.615 +
  16.616      ///Returns a reference to the NodeMap of distances.
  16.617  
  16.618      ///Returns a reference to the NodeMap of distances.
  16.619      ///\pre Either \ref run() or \ref init() must
  16.620      ///be called before using this function.
  16.621      const DistMap &distMap() const { return *_dist;}
  16.622 - 
  16.623 +
  16.624      ///Returns a reference to the shortest path tree map.
  16.625  
  16.626      ///Returns a reference to the NodeMap of the arcs of the
  16.627 @@ -738,7 +738,7 @@
  16.628      ///\pre Either \ref run() or \ref init()
  16.629      ///must be called before using this function.
  16.630      const PredMap &predMap() const { return *_pred;}
  16.631 - 
  16.632 +
  16.633      ///Checks if a node is reachable from the root.
  16.634  
  16.635      ///Returns \c true if \c v is reachable from the root.
  16.636 @@ -747,7 +747,7 @@
  16.637      ///must be called before using this function.
  16.638      ///
  16.639      bool reached(Node v) { return (*_reached)[v]; }
  16.640 -    
  16.641 +
  16.642      ///@}
  16.643    };
  16.644  
  16.645 @@ -758,39 +758,39 @@
  16.646    template<class GR>
  16.647    struct BfsWizardDefaultTraits
  16.648    {
  16.649 -    ///The digraph type the algorithm runs on. 
  16.650 +    ///The digraph type the algorithm runs on.
  16.651      typedef GR Digraph;
  16.652      ///\brief The type of the map that stores the last
  16.653      ///arcs of the shortest paths.
  16.654 -    /// 
  16.655 +    ///
  16.656      ///The type of the map that stores the last
  16.657      ///arcs of the shortest paths.
  16.658      ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
  16.659      ///
  16.660      typedef NullMap<typename Digraph::Node,typename GR::Arc> PredMap;
  16.661      ///Instantiates a PredMap.
  16.662 - 
  16.663 -    ///This function instantiates a \ref PredMap. 
  16.664 +
  16.665 +    ///This function instantiates a \ref PredMap.
  16.666      ///\param g is the digraph, to which we would like to define the PredMap.
  16.667      ///\todo The digraph alone may be insufficient to initialize
  16.668  #ifdef DOXYGEN
  16.669 -    static PredMap *createPredMap(const GR &g) 
  16.670 +    static PredMap *createPredMap(const GR &g)
  16.671  #else
  16.672 -    static PredMap *createPredMap(const GR &) 
  16.673 +    static PredMap *createPredMap(const GR &)
  16.674  #endif
  16.675      {
  16.676        return new PredMap();
  16.677      }
  16.678  
  16.679      ///The type of the map that indicates which nodes are processed.
  16.680 - 
  16.681 +
  16.682      ///The type of the map that indicates which nodes are processed.
  16.683      ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
  16.684      ///\todo named parameter to set this type, function to read and write.
  16.685      typedef NullMap<typename Digraph::Node,bool> ProcessedMap;
  16.686      ///Instantiates a ProcessedMap.
  16.687 - 
  16.688 -    ///This function instantiates a \ref ProcessedMap. 
  16.689 +
  16.690 +    ///This function instantiates a \ref ProcessedMap.
  16.691      ///\param g is the digraph, to which
  16.692      ///we would like to define the \ref ProcessedMap
  16.693  #ifdef DOXYGEN
  16.694 @@ -802,14 +802,14 @@
  16.695        return new ProcessedMap();
  16.696      }
  16.697      ///The type of the map that indicates which nodes are reached.
  16.698 - 
  16.699 +
  16.700      ///The type of the map that indicates which nodes are reached.
  16.701      ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
  16.702      ///\todo named parameter to set this type, function to read and write.
  16.703      typedef typename Digraph::template NodeMap<bool> ReachedMap;
  16.704      ///Instantiates a ReachedMap.
  16.705 - 
  16.706 -    ///This function instantiates a \ref ReachedMap. 
  16.707 +
  16.708 +    ///This function instantiates a \ref ReachedMap.
  16.709      ///\param G is the digraph, to which
  16.710      ///we would like to define the \ref ReachedMap.
  16.711      static ReachedMap *createReachedMap(const GR &G)
  16.712 @@ -817,14 +817,14 @@
  16.713        return new ReachedMap(G);
  16.714      }
  16.715      ///The type of the map that stores the dists of the nodes.
  16.716 - 
  16.717 +
  16.718      ///The type of the map that stores the dists of the nodes.
  16.719      ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
  16.720      ///
  16.721      typedef NullMap<typename Digraph::Node,int> DistMap;
  16.722      ///Instantiates a DistMap.
  16.723 - 
  16.724 -    ///This function instantiates a \ref DistMap. 
  16.725 +
  16.726 +    ///This function instantiates a \ref DistMap.
  16.727      ///\param g is the digraph, to which we would like to define the \ref DistMap
  16.728  #ifdef DOXYGEN
  16.729      static DistMap *createDistMap(const GR &g)
  16.730 @@ -835,7 +835,7 @@
  16.731        return new DistMap();
  16.732      }
  16.733    };
  16.734 -  
  16.735 +
  16.736    /// Default traits used by \ref BfsWizard
  16.737  
  16.738    /// To make it easier to use Bfs algorithm
  16.739 @@ -865,28 +865,28 @@
  16.740      void *_dist;
  16.741      ///Pointer to the source node.
  16.742      Node _source;
  16.743 -    
  16.744 +
  16.745      public:
  16.746      /// Constructor.
  16.747 -    
  16.748 +
  16.749      /// This constructor does not require parameters, therefore it initiates
  16.750      /// all of the attributes to default values (0, INVALID).
  16.751      BfsWizardBase() : _g(0), _reached(0), _processed(0), _pred(0),
  16.752 -			   _dist(0), _source(INVALID) {}
  16.753 +                           _dist(0), _source(INVALID) {}
  16.754  
  16.755      /// Constructor.
  16.756 -    
  16.757 +
  16.758      /// This constructor requires some parameters,
  16.759      /// listed in the parameters list.
  16.760      /// Others are initiated to 0.
  16.761      /// \param g is the initial value of  \ref _g
  16.762      /// \param s is the initial value of  \ref _source
  16.763      BfsWizardBase(const GR &g, Node s=INVALID) :
  16.764 -      _g(reinterpret_cast<void*>(const_cast<GR*>(&g))), 
  16.765 +      _g(reinterpret_cast<void*>(const_cast<GR*>(&g))),
  16.766        _reached(0), _processed(0), _pred(0), _dist(0), _source(s) {}
  16.767  
  16.768    };
  16.769 -  
  16.770 +
  16.771    /// A class to make the usage of Bfs algorithm easier
  16.772  
  16.773    /// This class is created to make it easier to use Bfs algorithm.
  16.774 @@ -921,7 +921,7 @@
  16.775      typedef typename Digraph::Arc Arc;
  16.776      //\e
  16.777      typedef typename Digraph::OutArcIt OutArcIt;
  16.778 -    
  16.779 +
  16.780      ///\brief The type of the map that stores
  16.781      ///the reached nodes
  16.782      typedef typename TR::ReachedMap ReachedMap;
  16.783 @@ -951,7 +951,7 @@
  16.784      ~BfsWizard() {}
  16.785  
  16.786      ///Runs Bfs algorithm from a given node.
  16.787 -    
  16.788 +
  16.789      ///Runs Bfs algorithm from a given node.
  16.790      ///The node can be given by the \ref source function.
  16.791      void run()
  16.792 @@ -959,12 +959,12 @@
  16.793        if(Base::_source==INVALID) throw UninitializedParameter();
  16.794        Bfs<Digraph,TR> alg(*reinterpret_cast<const Digraph*>(Base::_g));
  16.795        if(Base::_reached)
  16.796 -	alg.reachedMap(*reinterpret_cast<ReachedMap*>(Base::_reached));
  16.797 -      if(Base::_processed) 
  16.798 +        alg.reachedMap(*reinterpret_cast<ReachedMap*>(Base::_reached));
  16.799 +      if(Base::_processed)
  16.800          alg.processedMap(*reinterpret_cast<ProcessedMap*>(Base::_processed));
  16.801 -      if(Base::_pred) 
  16.802 +      if(Base::_pred)
  16.803          alg.predMap(*reinterpret_cast<PredMap*>(Base::_pred));
  16.804 -      if(Base::_dist) 
  16.805 +      if(Base::_dist)
  16.806          alg.distMap(*reinterpret_cast<DistMap*>(Base::_dist));
  16.807        alg.run(Base::_source);
  16.808      }
  16.809 @@ -985,7 +985,7 @@
  16.810        static PredMap *createPredMap(const Digraph &) { return 0; };
  16.811        DefPredMapBase(const TR &b) : TR(b) {}
  16.812      };
  16.813 -    
  16.814 +
  16.815      ///\brief \ref named-templ-param "Named parameter"
  16.816      ///function for setting PredMap
  16.817      ///
  16.818 @@ -993,20 +993,20 @@
  16.819      ///function for setting PredMap
  16.820      ///
  16.821      template<class T>
  16.822 -    BfsWizard<DefPredMapBase<T> > predMap(const T &t) 
  16.823 +    BfsWizard<DefPredMapBase<T> > predMap(const T &t)
  16.824      {
  16.825        Base::_pred=reinterpret_cast<void*>(const_cast<T*>(&t));
  16.826        return BfsWizard<DefPredMapBase<T> >(*this);
  16.827      }
  16.828 -    
  16.829 - 
  16.830 +
  16.831 +
  16.832      template<class T>
  16.833      struct DefReachedMapBase : public Base {
  16.834        typedef T ReachedMap;
  16.835        static ReachedMap *createReachedMap(const Digraph &) { return 0; };
  16.836        DefReachedMapBase(const TR &b) : TR(b) {}
  16.837      };
  16.838 -    
  16.839 +
  16.840      ///\brief \ref named-templ-param "Named parameter"
  16.841      ///function for setting ReachedMap
  16.842      ///
  16.843 @@ -1014,12 +1014,12 @@
  16.844      ///function for setting ReachedMap
  16.845      ///
  16.846      template<class T>
  16.847 -    BfsWizard<DefReachedMapBase<T> > reachedMap(const T &t) 
  16.848 +    BfsWizard<DefReachedMapBase<T> > reachedMap(const T &t)
  16.849      {
  16.850        Base::_reached=reinterpret_cast<void*>(const_cast<T*>(&t));
  16.851        return BfsWizard<DefReachedMapBase<T> >(*this);
  16.852      }
  16.853 -    
  16.854 +
  16.855  
  16.856      template<class T>
  16.857      struct DefProcessedMapBase : public Base {
  16.858 @@ -1027,7 +1027,7 @@
  16.859        static ProcessedMap *createProcessedMap(const Digraph &) { return 0; };
  16.860        DefProcessedMapBase(const TR &b) : TR(b) {}
  16.861      };
  16.862 -    
  16.863 +
  16.864      ///\brief \ref named-templ-param "Named parameter"
  16.865      ///function for setting ProcessedMap
  16.866      ///
  16.867 @@ -1035,20 +1035,20 @@
  16.868      ///function for setting ProcessedMap
  16.869      ///
  16.870      template<class T>
  16.871 -    BfsWizard<DefProcessedMapBase<T> > processedMap(const T &t) 
  16.872 +    BfsWizard<DefProcessedMapBase<T> > processedMap(const T &t)
  16.873      {
  16.874        Base::_processed=reinterpret_cast<void*>(const_cast<T*>(&t));
  16.875        return BfsWizard<DefProcessedMapBase<T> >(*this);
  16.876      }
  16.877 -    
  16.878 -   
  16.879 +
  16.880 +
  16.881      template<class T>
  16.882      struct DefDistMapBase : public Base {
  16.883        typedef T DistMap;
  16.884        static DistMap *createDistMap(const Digraph &) { return 0; };
  16.885        DefDistMapBase(const TR &b) : TR(b) {}
  16.886      };
  16.887 -    
  16.888 +
  16.889      ///\brief \ref named-templ-param "Named parameter"
  16.890      ///function for setting DistMap type
  16.891      ///
  16.892 @@ -1056,24 +1056,24 @@
  16.893      ///function for setting DistMap type
  16.894      ///
  16.895      template<class T>
  16.896 -    BfsWizard<DefDistMapBase<T> > distMap(const T &t) 
  16.897 +    BfsWizard<DefDistMapBase<T> > distMap(const T &t)
  16.898      {
  16.899        Base::_dist=reinterpret_cast<void*>(const_cast<T*>(&t));
  16.900        return BfsWizard<DefDistMapBase<T> >(*this);
  16.901      }
  16.902 -    
  16.903 +
  16.904      /// Sets the source node, from which the Bfs algorithm runs.
  16.905  
  16.906      /// Sets the source node, from which the Bfs algorithm runs.
  16.907      /// \param s is the source node.
  16.908 -    BfsWizard<TR> &source(Node s) 
  16.909 +    BfsWizard<TR> &source(Node s)
  16.910      {
  16.911        Base::_source=s;
  16.912        return *this;
  16.913      }
  16.914 -    
  16.915 +
  16.916    };
  16.917 -  
  16.918 +
  16.919    ///Function type interface for Bfs algorithm.
  16.920  
  16.921    /// \ingroup search
  16.922 @@ -1100,7 +1100,7 @@
  16.923  
  16.924  #ifdef DOXYGEN
  16.925    /// \brief Visitor class for bfs.
  16.926 -  ///  
  16.927 +  ///
  16.928    /// This class defines the interface of the BfsVisit events, and
  16.929    /// it could be the base of a real Visitor class.
  16.930    template <typename _Digraph>
  16.931 @@ -1109,26 +1109,26 @@
  16.932      typedef typename Digraph::Arc Arc;
  16.933      typedef typename Digraph::Node Node;
  16.934      /// \brief Called when the arc reach a node.
  16.935 -    /// 
  16.936 +    ///
  16.937      /// It is called when the bfs find an arc which target is not
  16.938      /// reached yet.
  16.939      void discover(const Arc& arc) {}
  16.940      /// \brief Called when the node reached first time.
  16.941 -    /// 
  16.942 +    ///
  16.943      /// It is Called when the node reached first time.
  16.944      void reach(const Node& node) {}
  16.945 -    /// \brief Called when the arc examined but target of the arc 
  16.946 +    /// \brief Called when the arc examined but target of the arc
  16.947      /// already discovered.
  16.948 -    /// 
  16.949 -    /// It called when the arc examined but the target of the arc 
  16.950 +    ///
  16.951 +    /// It called when the arc examined but the target of the arc
  16.952      /// already discovered.
  16.953      void examine(const Arc& arc) {}
  16.954      /// \brief Called for the source node of the bfs.
  16.955 -    /// 
  16.956 +    ///
  16.957      /// It is called for the source node of the bfs.
  16.958      void start(const Node& node) {}
  16.959      /// \brief Called when the node processed.
  16.960 -    /// 
  16.961 +    ///
  16.962      /// It is Called when the node processed.
  16.963      void process(const Node& node) {}
  16.964    };
  16.965 @@ -1147,12 +1147,12 @@
  16.966      template <typename _Visitor>
  16.967      struct Constraints {
  16.968        void constraints() {
  16.969 -	Arc arc;
  16.970 -	Node node;
  16.971 -	visitor.discover(arc);
  16.972 -	visitor.reach(node);
  16.973 -	visitor.examine(arc);
  16.974 -	visitor.start(node);
  16.975 +        Arc arc;
  16.976 +        Node node;
  16.977 +        visitor.discover(arc);
  16.978 +        visitor.reach(node);
  16.979 +        visitor.examine(arc);
  16.980 +        visitor.start(node);
  16.981          visitor.process(node);
  16.982        }
  16.983        _Visitor& visitor;
  16.984 @@ -1167,11 +1167,11 @@
  16.985    template<class _Digraph>
  16.986    struct BfsVisitDefaultTraits {
  16.987  
  16.988 -    /// \brief The digraph type the algorithm runs on. 
  16.989 +    /// \brief The digraph type the algorithm runs on.
  16.990      typedef _Digraph Digraph;
  16.991  
  16.992      /// \brief The type of the map that indicates which nodes are reached.
  16.993 -    /// 
  16.994 +    ///
  16.995      /// The type of the map that indicates which nodes are reached.
  16.996      /// It must meet the \ref concepts::WriteMap "WriteMap" concept.
  16.997      /// \todo named parameter to set this type, function to read and write.
  16.998 @@ -1179,7 +1179,7 @@
  16.999  
 16.1000      /// \brief Instantiates a ReachedMap.
 16.1001      ///
 16.1002 -    /// This function instantiates a \ref ReachedMap. 
 16.1003 +    /// This function instantiates a \ref ReachedMap.
 16.1004      /// \param digraph is the digraph, to which
 16.1005      /// we would like to define the \ref ReachedMap.
 16.1006      static ReachedMap *createReachedMap(const Digraph &digraph) {
 16.1007 @@ -1189,24 +1189,24 @@
 16.1008    };
 16.1009  
 16.1010    /// \ingroup search
 16.1011 -  ///  
 16.1012 +  ///
 16.1013    /// \brief %BFS Visit algorithm class.
 16.1014 -  ///  
 16.1015 +  ///
 16.1016    /// This class provides an efficient implementation of the %BFS algorithm
 16.1017    /// with visitor interface.
 16.1018    ///
 16.1019    /// The %BfsVisit class provides an alternative interface to the Bfs
 16.1020    /// class. It works with callback mechanism, the BfsVisit object calls
 16.1021 -  /// on every bfs event the \c Visitor class member functions. 
 16.1022 +  /// on every bfs event the \c Visitor class member functions.
 16.1023    ///
 16.1024    /// \tparam _Digraph The digraph type the algorithm runs on. The default value is
 16.1025    /// \ref ListDigraph. The value of _Digraph is not used directly by Bfs, it
 16.1026    /// is only passed to \ref BfsDefaultTraits.
 16.1027 -  /// \tparam _Visitor The Visitor object for the algorithm. The 
 16.1028 +  /// \tparam _Visitor The Visitor object for the algorithm. The
 16.1029    /// \ref BfsVisitor "BfsVisitor<_Digraph>" is an empty Visitor which
 16.1030    /// does not observe the Bfs events. If you want to observe the bfs
 16.1031    /// events you should implement your own Visitor class.
 16.1032 -  /// \tparam _Traits Traits class to set various data types used by the 
 16.1033 +  /// \tparam _Traits Traits class to set various data types used by the
 16.1034    /// algorithm. The default traits class is
 16.1035    /// \ref BfsVisitDefaultTraits "BfsVisitDefaultTraits<_Digraph>".
 16.1036    /// See \ref BfsVisitDefaultTraits for the documentation of
 16.1037 @@ -1215,21 +1215,21 @@
 16.1038    template <typename _Digraph, typename _Visitor, typename _Traits>
 16.1039  #else
 16.1040    template <typename _Digraph = ListDigraph,
 16.1041 -	    typename _Visitor = BfsVisitor<_Digraph>,
 16.1042 -	    typename _Traits = BfsDefaultTraits<_Digraph> >
 16.1043 +            typename _Visitor = BfsVisitor<_Digraph>,
 16.1044 +            typename _Traits = BfsDefaultTraits<_Digraph> >
 16.1045  #endif
 16.1046    class BfsVisit {
 16.1047    public:
 16.1048 -    
 16.1049 +
 16.1050      /// \brief \ref Exception for uninitialized parameters.
 16.1051      ///
 16.1052      /// This error represents problems in the initialization
 16.1053      /// of the parameters of the algorithms.
 16.1054      class UninitializedParameter : public lemon::UninitializedParameter {
 16.1055      public:
 16.1056 -      virtual const char* what() const throw() 
 16.1057 +      virtual const char* what() const throw()
 16.1058        {
 16.1059 -	return "lemon::BfsVisit::UninitializedParameter";
 16.1060 +        return "lemon::BfsVisit::UninitializedParameter";
 16.1061        }
 16.1062      };
 16.1063  
 16.1064 @@ -1266,15 +1266,15 @@
 16.1065      /// Creates the maps if necessary.
 16.1066      void create_maps() {
 16.1067        if(!_reached) {
 16.1068 -	local_reached = true;
 16.1069 -	_reached = Traits::createReachedMap(*_digraph);
 16.1070 +        local_reached = true;
 16.1071 +        _reached = Traits::createReachedMap(*_digraph);
 16.1072        }
 16.1073      }
 16.1074  
 16.1075    protected:
 16.1076  
 16.1077      BfsVisit() {}
 16.1078 -    
 16.1079 +
 16.1080    public:
 16.1081  
 16.1082      typedef BfsVisit Create;
 16.1083 @@ -1286,22 +1286,22 @@
 16.1084      struct DefReachedMapTraits : public Traits {
 16.1085        typedef T ReachedMap;
 16.1086        static ReachedMap *createReachedMap(const Digraph &digraph) {
 16.1087 -	throw UninitializedParameter();
 16.1088 +        throw UninitializedParameter();
 16.1089        }
 16.1090      };
 16.1091 -    /// \brief \ref named-templ-param "Named parameter" for setting 
 16.1092 +    /// \brief \ref named-templ-param "Named parameter" for setting
 16.1093      /// ReachedMap type
 16.1094      ///
 16.1095      /// \ref named-templ-param "Named parameter" for setting ReachedMap type
 16.1096      template <class T>
 16.1097      struct DefReachedMap : public BfsVisit< Digraph, Visitor,
 16.1098 -					    DefReachedMapTraits<T> > {
 16.1099 +                                            DefReachedMapTraits<T> > {
 16.1100        typedef BfsVisit< Digraph, Visitor, DefReachedMapTraits<T> > Create;
 16.1101      };
 16.1102      ///@}
 16.1103  
 16.1104 -  public:      
 16.1105 -    
 16.1106 +  public:
 16.1107 +
 16.1108      /// \brief Constructor.
 16.1109      ///
 16.1110      /// Constructor.
 16.1111 @@ -1309,10 +1309,10 @@
 16.1112      /// \param digraph the digraph the algorithm will run on.
 16.1113      /// \param visitor The visitor of the algorithm.
 16.1114      ///
 16.1115 -    BfsVisit(const Digraph& digraph, Visitor& visitor) 
 16.1116 +    BfsVisit(const Digraph& digraph, Visitor& visitor)
 16.1117        : _digraph(&digraph), _visitor(&visitor),
 16.1118 -	_reached(0), local_reached(false) {}
 16.1119 -    
 16.1120 +        _reached(0), local_reached(false) {}
 16.1121 +
 16.1122      /// \brief Destructor.
 16.1123      ///
 16.1124      /// Destructor.
 16.1125 @@ -1329,8 +1329,8 @@
 16.1126      /// \return <tt> (*this) </tt>
 16.1127      BfsVisit &reachedMap(ReachedMap &m) {
 16.1128        if(local_reached) {
 16.1129 -	delete _reached;
 16.1130 -	local_reached = false;
 16.1131 +        delete _reached;
 16.1132 +        local_reached = false;
 16.1133        }
 16.1134        _reached = &m;
 16.1135        return *this;
 16.1136 @@ -1357,22 +1357,22 @@
 16.1137        _list.resize(countNodes(*_digraph));
 16.1138        _list_front = _list_back = -1;
 16.1139        for (NodeIt u(*_digraph) ; u != INVALID ; ++u) {
 16.1140 -	_reached->set(u, false);
 16.1141 +        _reached->set(u, false);
 16.1142        }
 16.1143      }
 16.1144 -    
 16.1145 +
 16.1146      /// \brief Adds a new source node.
 16.1147      ///
 16.1148      /// Adds a new source node to the set of nodes to be processed.
 16.1149      void addSource(Node s) {
 16.1150        if(!(*_reached)[s]) {
 16.1151 -	  _reached->set(s,true);
 16.1152 -	  _visitor->start(s);
 16.1153 -	  _visitor->reach(s);
 16.1154 +          _reached->set(s,true);
 16.1155 +          _visitor->start(s);
 16.1156 +          _visitor->reach(s);
 16.1157            _list[++_list_back] = s;
 16.1158 -	}
 16.1159 +        }
 16.1160      }
 16.1161 -    
 16.1162 +
 16.1163      /// \brief Processes the next node.
 16.1164      ///
 16.1165      /// Processes the next node.
 16.1166 @@ -1380,7 +1380,7 @@
 16.1167      /// \return The processed node.
 16.1168      ///
 16.1169      /// \pre The queue must not be empty!
 16.1170 -    Node processNextNode() { 
 16.1171 +    Node processNextNode() {
 16.1172        Node n = _list[++_list_front];
 16.1173        _visitor->process(n);
 16.1174        Arc e;
 16.1175 @@ -1467,7 +1467,7 @@
 16.1176      ///
 16.1177      /// \return The next node to be processed or INVALID if the stack is
 16.1178      /// empty.
 16.1179 -    Node nextNode() { 
 16.1180 +    Node nextNode() {
 16.1181        return _list_front != _list_back ? _list[_list_front + 1] : INVALID;
 16.1182      }
 16.1183  
 16.1184 @@ -1482,7 +1482,7 @@
 16.1185      ///
 16.1186      /// Returns the number of the nodes to be processed in the queue.
 16.1187      int queueSize() { return _list_back - _list_front; }
 16.1188 -    
 16.1189 +
 16.1190      /// \brief Executes the algorithm.
 16.1191      ///
 16.1192      /// Executes the algorithm.
 16.1193 @@ -1492,7 +1492,7 @@
 16.1194      void start() {
 16.1195        while ( !emptyQueue() ) processNextNode();
 16.1196      }
 16.1197 -    
 16.1198 +
 16.1199      /// \brief Executes the algorithm until \c dest is reached.
 16.1200      ///
 16.1201      /// Executes the algorithm until \c dest is reached.
 16.1202 @@ -1503,7 +1503,7 @@
 16.1203        bool reach = false;
 16.1204        while ( !emptyQueue() && !reach ) processNextNode(dest, reach);
 16.1205      }
 16.1206 -    
 16.1207 +
 16.1208      /// \brief Executes the algorithm until a condition is met.
 16.1209      ///
 16.1210      /// Executes the algorithm until a condition is met.
 16.1211 @@ -1521,7 +1521,7 @@
 16.1212      Node start(const NM &nm) {
 16.1213        Node rnode = INVALID;
 16.1214        while ( !emptyQueue() && rnode == INVALID ) {
 16.1215 -	processNextNode(nm, rnode);
 16.1216 +        processNextNode(nm, rnode);
 16.1217        }
 16.1218        return rnode;
 16.1219      }
 16.1220 @@ -1542,7 +1542,7 @@
 16.1221      }
 16.1222  
 16.1223      /// \brief Runs %BFSVisit algorithm to visit all nodes in the digraph.
 16.1224 -    ///    
 16.1225 +    ///
 16.1226      /// This method runs the %BFS algorithm in order to
 16.1227      /// compute the %BFS path to each node. The algorithm computes
 16.1228      /// - The %BFS tree.
    17.1 --- a/lemon/bin_heap.h	Sun Jul 13 16:46:56 2008 +0100
    17.2 +++ b/lemon/bin_heap.h	Sun Jul 13 19:51:02 2008 +0100
    17.3 @@ -1,6 +1,6 @@
    17.4 -/* -*- C++ -*-
    17.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    17.6   *
    17.7 - * This file is a part of LEMON, a generic C++ optimization library
    17.8 + * This file is a part of LEMON, a generic C++ optimization library.
    17.9   *
   17.10   * Copyright (C) 2003-2008
   17.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   17.12 @@ -48,7 +48,7 @@
   17.13    ///\sa FibHeap
   17.14    ///\sa Dijkstra
   17.15    template <typename _Prio, typename _ItemIntMap,
   17.16 -	    typename _Compare = std::less<_Prio> >
   17.17 +            typename _Compare = std::less<_Prio> >
   17.18    class BinHeap {
   17.19  
   17.20    public:
   17.21 @@ -90,7 +90,7 @@
   17.22      /// internally to handle the cross references. The value of the map
   17.23      /// should be PRE_HEAP (-1) for each element.
   17.24      explicit BinHeap(ItemIntMap &_iim) : iim(_iim) {}
   17.25 -    
   17.26 +
   17.27      /// \brief The constructor.
   17.28      ///
   17.29      /// The constructor.
   17.30 @@ -99,7 +99,7 @@
   17.31      /// should be PRE_HEAP (-1) for each element.
   17.32      ///
   17.33      /// \param _comp The comparator function object.
   17.34 -    BinHeap(ItemIntMap &_iim, const Compare &_comp) 
   17.35 +    BinHeap(ItemIntMap &_iim, const Compare &_comp)
   17.36        : iim(_iim), comp(_comp) {}
   17.37  
   17.38  
   17.39 @@ -107,20 +107,20 @@
   17.40      ///
   17.41      /// \brief Returns the number of items stored in the heap.
   17.42      int size() const { return data.size(); }
   17.43 -    
   17.44 +
   17.45      /// \brief Checks if the heap stores no items.
   17.46      ///
   17.47      /// Returns \c true if and only if the heap stores no items.
   17.48      bool empty() const { return data.empty(); }
   17.49  
   17.50      /// \brief Make empty this heap.
   17.51 -    /// 
   17.52 +    ///
   17.53      /// Make empty this heap. It does not change the cross reference map.
   17.54      /// If you want to reuse what is not surely empty you should first clear
   17.55      /// the heap and after that you should set the cross reference map for
   17.56      /// each item to \c PRE_HEAP.
   17.57 -    void clear() { 
   17.58 -      data.clear(); 
   17.59 +    void clear() {
   17.60 +      data.clear();
   17.61      }
   17.62  
   17.63    private:
   17.64 @@ -134,9 +134,9 @@
   17.65      int bubble_up(int hole, Pair p) {
   17.66        int par = parent(hole);
   17.67        while( hole>0 && less(p,data[par]) ) {
   17.68 -	move(data[par],hole);
   17.69 -	hole = par;
   17.70 -	par = parent(hole);
   17.71 +        move(data[par],hole);
   17.72 +        hole = par;
   17.73 +        par = parent(hole);
   17.74        }
   17.75        move(p, hole);
   17.76        return hole;
   17.77 @@ -145,19 +145,19 @@
   17.78      int bubble_down(int hole, Pair p, int length) {
   17.79        int child = second_child(hole);
   17.80        while(child < length) {
   17.81 -	if( less(data[child-1], data[child]) ) {
   17.82 -	  --child;
   17.83 -	}
   17.84 -	if( !less(data[child], p) )
   17.85 -	  goto ok;
   17.86 -	move(data[child], hole);
   17.87 -	hole = child;
   17.88 -	child = second_child(hole);
   17.89 +        if( less(data[child-1], data[child]) ) {
   17.90 +          --child;
   17.91 +        }
   17.92 +        if( !less(data[child], p) )
   17.93 +          goto ok;
   17.94 +        move(data[child], hole);
   17.95 +        hole = child;
   17.96 +        child = second_child(hole);
   17.97        }
   17.98        child--;
   17.99        if( child<length && less(data[child], p) ) {
  17.100 -	move(data[child], hole);
  17.101 -	hole=child;
  17.102 +        move(data[child], hole);
  17.103 +        hole=child;
  17.104        }
  17.105      ok:
  17.106        move(p, hole);
  17.107 @@ -181,8 +181,8 @@
  17.108      }
  17.109  
  17.110      /// \brief Insert an item into the heap with the given heap.
  17.111 -    ///    
  17.112 -    /// Adds \c i to the heap with priority \c p. 
  17.113 +    ///
  17.114 +    /// Adds \c i to the heap with priority \c p.
  17.115      /// \param i The item to insert.
  17.116      /// \param p The priority of the item.
  17.117      void push(const Item &i, const Prio &p) { push(Pair(i,p)); }
  17.118 @@ -190,8 +190,8 @@
  17.119      /// \brief Returns the item with minimum priority relative to \c Compare.
  17.120      ///
  17.121      /// This method returns the item with minimum priority relative to \c
  17.122 -    /// Compare.  
  17.123 -    /// \pre The heap must be nonempty.  
  17.124 +    /// Compare.
  17.125 +    /// \pre The heap must be nonempty.
  17.126      Item top() const {
  17.127        return data[0].first;
  17.128      }
  17.129 @@ -207,13 +207,13 @@
  17.130      /// \brief Deletes the item with minimum priority relative to \c Compare.
  17.131      ///
  17.132      /// This method deletes the item with minimum priority relative to \c
  17.133 -    /// Compare from the heap.  
  17.134 -    /// \pre The heap must be non-empty.  
  17.135 +    /// Compare from the heap.
  17.136 +    /// \pre The heap must be non-empty.
  17.137      void pop() {
  17.138        int n = data.size()-1;
  17.139        iim.set(data[0].first, POST_HEAP);
  17.140        if (n > 0) {
  17.141 -	bubble_down(0, data[n], n);
  17.142 +        bubble_down(0, data[n], n);
  17.143        }
  17.144        data.pop_back();
  17.145      }
  17.146 @@ -228,17 +228,17 @@
  17.147        int n = data.size()-1;
  17.148        iim.set(data[h].first, POST_HEAP);
  17.149        if( h < n ) {
  17.150 -	if ( bubble_up(h, data[n]) == h) {
  17.151 -	  bubble_down(h, data[n], n);
  17.152 -	}
  17.153 +        if ( bubble_up(h, data[n]) == h) {
  17.154 +          bubble_down(h, data[n], n);
  17.155 +        }
  17.156        }
  17.157        data.pop_back();
  17.158      }
  17.159  
  17.160 -    
  17.161 +
  17.162      /// \brief Returns the priority of \c i.
  17.163      ///
  17.164 -    /// This function returns the priority of item \c i.  
  17.165 +    /// This function returns the priority of item \c i.
  17.166      /// \pre \c i must be in the heap.
  17.167      /// \param i The item.
  17.168      Prio operator[](const Item &i) const {
  17.169 @@ -246,7 +246,7 @@
  17.170        return data[idx].second;
  17.171      }
  17.172  
  17.173 -    /// \brief \c i gets to the heap with priority \c p independently 
  17.174 +    /// \brief \c i gets to the heap with priority \c p independently
  17.175      /// if \c i was already there.
  17.176      ///
  17.177      /// This method calls \ref push(\c i, \c p) if \c i is not stored
  17.178 @@ -256,13 +256,13 @@
  17.179      void set(const Item &i, const Prio &p) {
  17.180        int idx = iim[i];
  17.181        if( idx < 0 ) {
  17.182 -	push(i,p);
  17.183 +        push(i,p);
  17.184        }
  17.185        else if( comp(p, data[idx].second) ) {
  17.186 -	bubble_up(idx, Pair(i,p));
  17.187 +        bubble_up(idx, Pair(i,p));
  17.188        }
  17.189        else {
  17.190 -	bubble_down(idx, Pair(i,p), data.size());
  17.191 +        bubble_down(idx, Pair(i,p), data.size());
  17.192        }
  17.193      }
  17.194  
  17.195 @@ -277,10 +277,10 @@
  17.196        int idx = iim[i];
  17.197        bubble_up(idx, Pair(i,p));
  17.198      }
  17.199 -    
  17.200 +
  17.201      /// \brief Increases the priority of \c i to \c p.
  17.202      ///
  17.203 -    /// This method sets the priority of item \c i to \c p. 
  17.204 +    /// This method sets the priority of item \c i to \c p.
  17.205      /// \pre \c i must be stored in the heap with priority at most \c
  17.206      /// p relative to \c Compare.
  17.207      /// \param i The item.
  17.208 @@ -290,7 +290,7 @@
  17.209        bubble_down(idx, Pair(i,p), data.size());
  17.210      }
  17.211  
  17.212 -    /// \brief Returns if \c item is in, has already been in, or has 
  17.213 +    /// \brief Returns if \c item is in, has already been in, or has
  17.214      /// never been in the heap.
  17.215      ///
  17.216      /// This method returns PRE_HEAP if \c item has never been in the
  17.217 @@ -301,7 +301,7 @@
  17.218      State state(const Item &i) const {
  17.219        int s = iim[i];
  17.220        if( s>=0 )
  17.221 -	s=0;
  17.222 +        s=0;
  17.223        return State(s);
  17.224      }
  17.225  
  17.226 @@ -311,7 +311,7 @@
  17.227      /// manually clear the heap when it is important to achive the
  17.228      /// better time complexity.
  17.229      /// \param i The item.
  17.230 -    /// \param st The state. It should not be \c IN_HEAP. 
  17.231 +    /// \param st The state. It should not be \c IN_HEAP.
  17.232      void state(const Item& i, State st) {
  17.233        switch (st) {
  17.234        case POST_HEAP:
  17.235 @@ -340,7 +340,7 @@
  17.236      }
  17.237  
  17.238    }; // class BinHeap
  17.239 -  
  17.240 +
  17.241  } // namespace lemon
  17.242  
  17.243  #endif // LEMON_BIN_HEAP_H
    18.1 --- a/lemon/bits/alteration_notifier.h	Sun Jul 13 16:46:56 2008 +0100
    18.2 +++ b/lemon/bits/alteration_notifier.h	Sun Jul 13 19:51:02 2008 +0100
    18.3 @@ -1,6 +1,6 @@
    18.4 -/* -*- C++ -*-
    18.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    18.6   *
    18.7 - * This file is a part of LEMON, a generic C++ optimization library
    18.8 + * This file is a part of LEMON, a generic C++ optimization library.
    18.9   *
   18.10   * Copyright (C) 2003-2008
   18.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   18.12 @@ -32,7 +32,7 @@
   18.13  
   18.14    /// \ingroup graphbits
   18.15    ///
   18.16 -  /// \brief Notifier class to notify observes about alterations in 
   18.17 +  /// \brief Notifier class to notify observes about alterations in
   18.18    /// a container.
   18.19    ///
   18.20    /// The simple graph's can be refered as two containers, one node container
   18.21 @@ -49,7 +49,7 @@
   18.22    /// an alteration in the graph, which cause only drawback on the
   18.23    /// alteration of the graph.
   18.24    ///
   18.25 -  /// This class provides an interface to the container. The \e first() and \e 
   18.26 +  /// This class provides an interface to the container. The \e first() and \e
   18.27    /// next() member functions make possible to iterate on the keys of the
   18.28    /// container. The \e id() function returns an integer id for each key.
   18.29    /// The \e maxId() function gives back an upper bound of the ids.
   18.30 @@ -60,7 +60,7 @@
   18.31    /// \e erase() signals that only one or few items added or erased to or
   18.32    /// from the graph. If all items are erased from the graph or from an empty
   18.33    /// graph a new graph is builded then it can be signaled with the
   18.34 -  /// clear() and build() members. Important rule that if we erase items 
   18.35 +  /// clear() and build() members. Important rule that if we erase items
   18.36    /// from graph we should first signal the alteration and after that erase
   18.37    /// them from the container, on the other way on item addition we should
   18.38    /// first extend the container and just after that signal the alteration.
   18.39 @@ -68,7 +68,7 @@
   18.40    /// The alteration can be observed with a class inherited from the
   18.41    /// \e ObserverBase nested class. The signals can be handled with
   18.42    /// overriding the virtual functions defined in the base class.  The
   18.43 -  /// observer base can be attached to the notifier with the 
   18.44 +  /// observer base can be attached to the notifier with the
   18.45    /// \e attach() member and can be detached with detach() function. The
   18.46    /// alteration handlers should not call any function which signals
   18.47    /// an other alteration in the same notifier and should not
   18.48 @@ -79,13 +79,13 @@
   18.49    /// observeres will not be notified and the fulfilled additions will
   18.50    /// be rolled back by calling the \e erase() or \e clear()
   18.51    /// functions. Thence the \e erase() and \e clear() should not throw
   18.52 -  /// exception. Actullay, it can be throw only 
   18.53 +  /// exception. Actullay, it can be throw only
   18.54    /// \ref AlterationObserver::ImmediateDetach ImmediateDetach
   18.55    /// exception which detach the observer from the notifier.
   18.56    ///
   18.57    /// There are some place when the alteration observing is not completly
   18.58    /// reliable. If we want to carry out the node degree in the graph
   18.59 -  /// as in the \ref InDegMap and we use the reverseEdge that cause 
   18.60 +  /// as in the \ref InDegMap and we use the reverseEdge that cause
   18.61    /// unreliable functionality. Because the alteration observing signals
   18.62    /// only erasing and adding but not the reversing it will stores bad
   18.63    /// degrees. The sub graph adaptors cannot signal the alterations because
   18.64 @@ -104,7 +104,7 @@
   18.65      typedef _Container Container;
   18.66      typedef _Item Item;
   18.67  
   18.68 -    /// \brief Exception which can be called from \e clear() and 
   18.69 +    /// \brief Exception which can be called from \e clear() and
   18.70      /// \e erase().
   18.71      ///
   18.72      /// From the \e clear() and \e erase() function only this
   18.73 @@ -127,7 +127,7 @@
   18.74      ///
   18.75      /// The build() and clear() members are to notify the observer
   18.76      /// about the container is built from an empty container or
   18.77 -    /// is cleared to an empty container. 
   18.78 +    /// is cleared to an empty container.
   18.79  
   18.80      class ObserverBase {
   18.81      protected:
   18.82 @@ -138,7 +138,7 @@
   18.83        /// \brief Default constructor.
   18.84        ///
   18.85        /// Default constructor for ObserverBase.
   18.86 -      /// 
   18.87 +      ///
   18.88        ObserverBase() : _notifier(0) {}
   18.89  
   18.90        /// \brief Constructor which attach the observer into notifier.
   18.91 @@ -151,13 +151,13 @@
   18.92        /// \brief Constructor which attach the obserever to the same notifier.
   18.93        ///
   18.94        /// Constructor which attach the obserever to the same notifier as
   18.95 -      /// the other observer is attached to. 
   18.96 +      /// the other observer is attached to.
   18.97        ObserverBase(const ObserverBase& copy) {
   18.98 -	if (copy.attached()) {
   18.99 +        if (copy.attached()) {
  18.100            attach(*copy.notifier());
  18.101 -	}
  18.102 +        }
  18.103        }
  18.104 -	
  18.105 +
  18.106        /// \brief Destructor
  18.107        virtual ~ObserverBase() {
  18.108          if (attached()) {
  18.109 @@ -170,9 +170,9 @@
  18.110        /// This member attaches the observer into an AlterationNotifier.
  18.111        ///
  18.112        void attach(AlterationNotifier& nf) {
  18.113 -	nf.attach(*this);
  18.114 +        nf.attach(*this);
  18.115        }
  18.116 -      
  18.117 +
  18.118        /// \brief Detaches the observer into an AlterationNotifier.
  18.119        ///
  18.120        /// This member detaches the observer from an AlterationNotifier.
  18.121 @@ -180,15 +180,15 @@
  18.122        void detach() {
  18.123          _notifier->detach(*this);
  18.124        }
  18.125 -      
  18.126 -      /// \brief Gives back a pointer to the notifier which the map 
  18.127 +
  18.128 +      /// \brief Gives back a pointer to the notifier which the map
  18.129        /// attached into.
  18.130        ///
  18.131        /// This function gives back a pointer to the notifier which the map
  18.132        /// attached into.
  18.133        ///
  18.134        Notifier* notifier() const { return const_cast<Notifier*>(_notifier); }
  18.135 -      
  18.136 +
  18.137        /// Gives back true when the observer is attached into a notifier.
  18.138        bool attached() const { return _notifier != 0; }
  18.139  
  18.140 @@ -197,7 +197,7 @@
  18.141        ObserverBase& operator=(const ObserverBase& copy);
  18.142  
  18.143      protected:
  18.144 -      
  18.145 +
  18.146        Notifier* _notifier;
  18.147        typename std::list<ObserverBase*>::iterator _index;
  18.148  
  18.149 @@ -209,7 +209,7 @@
  18.150        /// subclasses.
  18.151        virtual void add(const Item&) = 0;
  18.152  
  18.153 -      /// \brief The member function to notificate the observer about 
  18.154 +      /// \brief The member function to notificate the observer about
  18.155        /// more item is added to the container.
  18.156        ///
  18.157        /// The add() member function notificates the observer about more item
  18.158 @@ -222,10 +222,10 @@
  18.159        ///
  18.160        /// The erase() member function notificates the observer about an
  18.161        /// item is erased from the container. It have to be overrided in
  18.162 -      /// the subclasses.	
  18.163 +      /// the subclasses.
  18.164        virtual void erase(const Item&) = 0;
  18.165  
  18.166 -      /// \brief The member function to notificate the observer about 
  18.167 +      /// \brief The member function to notificate the observer about
  18.168        /// more item is erased from the container.
  18.169        ///
  18.170        /// The erase() member function notificates the observer about more item
  18.171 @@ -247,50 +247,50 @@
  18.172        ///
  18.173        /// The clear() member function notificates the observer about all
  18.174        /// items are erased from the container. It have to be overrided in
  18.175 -      /// the subclasses.      
  18.176 +      /// the subclasses.
  18.177        virtual void clear() = 0;
  18.178  
  18.179      };
  18.180 -	
  18.181 +
  18.182    protected:
  18.183  
  18.184      const Container* container;
  18.185  
  18.186 -    typedef std::list<ObserverBase*> Observers; 
  18.187 +    typedef std::list<ObserverBase*> Observers;
  18.188      Observers _observers;
  18.189  
  18.190 -		
  18.191 +
  18.192    public:
  18.193  
  18.194      /// \brief Default constructor.
  18.195      ///
  18.196 -    /// The default constructor of the AlterationNotifier. 
  18.197 +    /// The default constructor of the AlterationNotifier.
  18.198      /// It creates an empty notifier.
  18.199 -    AlterationNotifier() 
  18.200 +    AlterationNotifier()
  18.201        : container(0) {}
  18.202  
  18.203      /// \brief Constructor.
  18.204      ///
  18.205      /// Constructor with the observed container parameter.
  18.206 -    AlterationNotifier(const Container& _container) 
  18.207 +    AlterationNotifier(const Container& _container)
  18.208        : container(&_container) {}
  18.209  
  18.210 -    /// \brief Copy Constructor of the AlterationNotifier. 
  18.211 +    /// \brief Copy Constructor of the AlterationNotifier.
  18.212      ///
  18.213 -    /// Copy constructor of the AlterationNotifier. 
  18.214 +    /// Copy constructor of the AlterationNotifier.
  18.215      /// It creates only an empty notifier because the copiable
  18.216      /// notifier's observers have to be registered still into that notifier.
  18.217 -    AlterationNotifier(const AlterationNotifier& _notifier) 
  18.218 +    AlterationNotifier(const AlterationNotifier& _notifier)
  18.219        : container(_notifier.container) {}
  18.220  
  18.221      /// \brief Destructor.
  18.222 -    ///		
  18.223 +    ///
  18.224      /// Destructor of the AlterationNotifier.
  18.225      ///
  18.226      ~AlterationNotifier() {
  18.227        typename Observers::iterator it;
  18.228        for (it = _observers.begin(); it != _observers.end(); ++it) {
  18.229 -	(*it)->_notifier = 0;
  18.230 +        (*it)->_notifier = 0;
  18.231        }
  18.232      }
  18.233  
  18.234 @@ -338,13 +338,13 @@
  18.235      int maxId() const {
  18.236        return container->maxId(Item());
  18.237      }
  18.238 -		
  18.239 +
  18.240    protected:
  18.241  
  18.242      void attach(ObserverBase& observer) {
  18.243        observer._index = _observers.insert(_observers.begin(), &observer);
  18.244        observer._notifier = this;
  18.245 -    } 
  18.246 +    }
  18.247  
  18.248      void detach(ObserverBase& observer) {
  18.249        _observers.erase(observer._index);
  18.250 @@ -353,13 +353,13 @@
  18.251      }
  18.252  
  18.253    public:
  18.254 -	
  18.255 -    /// \brief Notifies all the registed observers about an item added to 
  18.256 +
  18.257 +    /// \brief Notifies all the registed observers about an item added to
  18.258      /// the container.
  18.259      ///
  18.260 -    /// It notifies all the registed observers about an item added to 
  18.261 +    /// It notifies all the registed observers about an item added to
  18.262      /// the container.
  18.263 -    /// 
  18.264 +    ///
  18.265      void add(const Item& item) {
  18.266        typename Observers::reverse_iterator it;
  18.267        try {
  18.268 @@ -373,14 +373,14 @@
  18.269          }
  18.270          throw;
  18.271        }
  18.272 -    }	
  18.273 +    }
  18.274  
  18.275 -    /// \brief Notifies all the registed observers about more item added to 
  18.276 +    /// \brief Notifies all the registed observers about more item added to
  18.277      /// the container.
  18.278      ///
  18.279 -    /// It notifies all the registed observers about more item added to 
  18.280 +    /// It notifies all the registed observers about more item added to
  18.281      /// the container.
  18.282 -    /// 
  18.283 +    ///
  18.284      void add(const std::vector<Item>& items) {
  18.285        typename Observers::reverse_iterator it;
  18.286        try {
  18.287 @@ -394,14 +394,14 @@
  18.288          }
  18.289          throw;
  18.290        }
  18.291 -    }	
  18.292 +    }
  18.293  
  18.294 -    /// \brief Notifies all the registed observers about an item erased from 
  18.295 +    /// \brief Notifies all the registed observers about an item erased from
  18.296      /// the container.
  18.297 -    ///	
  18.298 -    /// It notifies all the registed observers about an item erased from 
  18.299 +    ///
  18.300 +    /// It notifies all the registed observers about an item erased from
  18.301      /// the container.
  18.302 -    /// 
  18.303 +    ///
  18.304      void erase(const Item& item) throw() {
  18.305        typename Observers::iterator it = _observers.begin();
  18.306        while (it != _observers.end()) {
  18.307 @@ -416,12 +416,12 @@
  18.308        }
  18.309      }
  18.310  
  18.311 -    /// \brief Notifies all the registed observers about more item erased  
  18.312 +    /// \brief Notifies all the registed observers about more item erased
  18.313      /// from the container.
  18.314 -    ///	
  18.315 -    /// It notifies all the registed observers about more item erased from 
  18.316 +    ///
  18.317 +    /// It notifies all the registed observers about more item erased from
  18.318      /// the container.
  18.319 -    /// 
  18.320 +    ///
  18.321      void erase(const std::vector<Item>& items) {
  18.322        typename Observers::iterator it = _observers.begin();
  18.323        while (it != _observers.end()) {
  18.324 @@ -436,9 +436,9 @@
  18.325        }
  18.326      }
  18.327  
  18.328 -    /// \brief Notifies all the registed observers about the container is 
  18.329 +    /// \brief Notifies all the registed observers about the container is
  18.330      /// built.
  18.331 -    ///		
  18.332 +    ///
  18.333      /// Notifies all the registed observers about the container is built
  18.334      /// from an empty container.
  18.335      void build() {
  18.336 @@ -456,7 +456,7 @@
  18.337        }
  18.338      }
  18.339  
  18.340 -    /// \brief Notifies all the registed observers about all items are 
  18.341 +    /// \brief Notifies all the registed observers about all items are
  18.342      /// erased.
  18.343      ///
  18.344      /// Notifies all the registed observers about all items are erased
    19.1 --- a/lemon/bits/array_map.h	Sun Jul 13 16:46:56 2008 +0100
    19.2 +++ b/lemon/bits/array_map.h	Sun Jul 13 19:51:02 2008 +0100
    19.3 @@ -1,6 +1,6 @@
    19.4 -/* -*- C++ -*-
    19.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    19.6   *
    19.7 - * This file is a part of LEMON, a generic C++ optimization library
    19.8 + * This file is a part of LEMON, a generic C++ optimization library.
    19.9   *
   19.10   * Copyright (C) 2003-2008
   19.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   19.12 @@ -38,16 +38,16 @@
   19.13    ///
   19.14    /// The ArrayMap template class is graph map structure what
   19.15    /// automatically updates the map when a key is added to or erased from
   19.16 -  /// the map. This map uses the allocators to implement 
   19.17 +  /// the map. This map uses the allocators to implement
   19.18    /// the container functionality.
   19.19    ///
   19.20    /// The template parameters are the Graph the current Item type and
   19.21    /// the Value type of the map.
   19.22    template <typename _Graph, typename _Item, typename _Value>
   19.23 -  class ArrayMap 
   19.24 +  class ArrayMap
   19.25      : public ItemSetTraits<_Graph, _Item>::ItemNotifier::ObserverBase {
   19.26    public:
   19.27 -    /// The graph type of the maps. 
   19.28 +    /// The graph type of the maps.
   19.29      typedef _Graph Graph;
   19.30      /// The item type of the map.
   19.31      typedef _Item Item;
   19.32 @@ -69,7 +69,7 @@
   19.33  
   19.34      /// The MapBase of the Map which imlements the core regisitry function.
   19.35      typedef typename Notifier::ObserverBase Parent;
   19.36 -		
   19.37 +
   19.38    private:
   19.39      typedef std::allocator<Value> Allocator;
   19.40  
   19.41 @@ -84,31 +84,31 @@
   19.42        Notifier* nf = Parent::notifier();
   19.43        Item it;
   19.44        for (nf->first(it); it != INVALID; nf->next(it)) {
   19.45 -	int id = nf->id(it);;
   19.46 -	allocator.construct(&(values[id]), Value());
   19.47 -      }								
   19.48 +        int id = nf->id(it);;
   19.49 +        allocator.construct(&(values[id]), Value());
   19.50 +      }
   19.51      }
   19.52  
   19.53 -    /// \brief Constructor to use default value to initialize the map. 
   19.54 +    /// \brief Constructor to use default value to initialize the map.
   19.55      ///
   19.56 -    /// It constructs a map and initialize all of the the map. 
   19.57 +    /// It constructs a map and initialize all of the the map.
   19.58      ArrayMap(const Graph& graph, const Value& value) {
   19.59        Parent::attach(graph.notifier(Item()));
   19.60        allocate_memory();
   19.61        Notifier* nf = Parent::notifier();
   19.62        Item it;
   19.63        for (nf->first(it); it != INVALID; nf->next(it)) {
   19.64 -	int id = nf->id(it);;
   19.65 -	allocator.construct(&(values[id]), value);
   19.66 -      }								
   19.67 +        int id = nf->id(it);;
   19.68 +        allocator.construct(&(values[id]), value);
   19.69 +      }
   19.70      }
   19.71  
   19.72      /// \brief Constructor to copy a map of the same map type.
   19.73      ///
   19.74 -    /// Constructor to copy a map of the same map type.     
   19.75 +    /// Constructor to copy a map of the same map type.
   19.76      ArrayMap(const ArrayMap& copy) : Parent() {
   19.77        if (copy.attached()) {
   19.78 -	attach(*copy.notifier());
   19.79 +        attach(*copy.notifier());
   19.80        }
   19.81        capacity = copy.capacity;
   19.82        if (capacity == 0) return;
   19.83 @@ -116,18 +116,18 @@
   19.84        Notifier* nf = Parent::notifier();
   19.85        Item it;
   19.86        for (nf->first(it); it != INVALID; nf->next(it)) {
   19.87 -	int id = nf->id(it);;
   19.88 -	allocator.construct(&(values[id]), copy.values[id]);
   19.89 +        int id = nf->id(it);;
   19.90 +        allocator.construct(&(values[id]), copy.values[id]);
   19.91        }
   19.92      }
   19.93  
   19.94      /// \brief Assign operator.
   19.95      ///
   19.96      /// This operator assigns for each item in the map the
   19.97 -    /// value mapped to the same item in the copied map.  
   19.98 +    /// value mapped to the same item in the copied map.
   19.99      /// The parameter map should be indiced with the same
  19.100      /// itemset because this assign operator does not change
  19.101 -    /// the container of the map. 
  19.102 +    /// the container of the map.
  19.103      ArrayMap& operator=(const ArrayMap& cmap) {
  19.104        return operator=<ArrayMap>(cmap);
  19.105      }
  19.106 @@ -138,7 +138,7 @@
  19.107      /// The given parameter should be conform to the ReadMap
  19.108      /// concecpt and could be indiced by the current item set of
  19.109      /// the NodeMap. In this case the value for each item
  19.110 -    /// is assigned by the value of the given ReadMap. 
  19.111 +    /// is assigned by the value of the given ReadMap.
  19.112      template <typename CMap>
  19.113      ArrayMap& operator=(const CMap& cmap) {
  19.114        checkConcept<concepts::ReadMap<Key, _Value>, CMap>();
  19.115 @@ -151,15 +151,15 @@
  19.116      }
  19.117  
  19.118      /// \brief The destructor of the map.
  19.119 -    ///     
  19.120 +    ///
  19.121      /// The destructor of the map.
  19.122 -    virtual ~ArrayMap() {      
  19.123 +    virtual ~ArrayMap() {
  19.124        if (attached()) {
  19.125 -	clear();
  19.126 -	detach();
  19.127 +        clear();
  19.128 +        detach();
  19.129        }
  19.130      }
  19.131 -		
  19.132 +
  19.133    protected:
  19.134  
  19.135      using Parent::attach;
  19.136 @@ -168,26 +168,26 @@
  19.137  
  19.138    public:
  19.139  
  19.140 -    /// \brief The subscript operator. 
  19.141 +    /// \brief The subscript operator.
  19.142      ///
  19.143      /// The subscript operator. The map can be subscripted by the
  19.144 -    /// actual keys of the graph. 
  19.145 +    /// actual keys of the graph.
  19.146      Value& operator[](const Key& key) {
  19.147        int id = Parent::notifier()->id(key);
  19.148        return values[id];
  19.149 -    } 
  19.150 -		
  19.151 +    }
  19.152 +
  19.153      /// \brief The const subscript operator.
  19.154      ///
  19.155      /// The const subscript operator. The map can be subscripted by the
  19.156 -    /// actual keys of the graph. 
  19.157 +    /// actual keys of the graph.
  19.158      const Value& operator[](const Key& key) const {
  19.159        int id = Parent::notifier()->id(key);
  19.160        return values[id];
  19.161      }
  19.162  
  19.163      /// \brief Setter function of the map.
  19.164 -    ///	
  19.165 +    ///
  19.166      /// Setter function of the map. Equivalent with map[key] = val.
  19.167      /// This is a compatibility feature with the not dereferable maps.
  19.168      void set(const Key& key, const Value& val) {
  19.169 @@ -197,81 +197,81 @@
  19.170    protected:
  19.171  
  19.172      /// \brief Adds a new key to the map.
  19.173 -    ///		
  19.174 +    ///
  19.175      /// It adds a new key to the map. It called by the observer notifier
  19.176 -    /// and it overrides the add() member function of the observer base.     
  19.177 +    /// and it overrides the add() member function of the observer base.
  19.178      virtual void add(const Key& key) {
  19.179        Notifier* nf = Parent::notifier();
  19.180        int id = nf->id(key);
  19.181        if (id >= capacity) {
  19.182 -	int new_capacity = (capacity == 0 ? 1 : capacity);
  19.183 -	while (new_capacity <= id) {
  19.184 -	  new_capacity <<= 1;
  19.185 -	}
  19.186 -	Value* new_values = allocator.allocate(new_capacity);
  19.187 -	Item it;
  19.188 -	for (nf->first(it); it != INVALID; nf->next(it)) {
  19.189 -	  int jd = nf->id(it);;
  19.190 -	  if (id != jd) {
  19.191 -	    allocator.construct(&(new_values[jd]), values[jd]);
  19.192 -	    allocator.destroy(&(values[jd]));
  19.193 -	  }
  19.194 -	}
  19.195 -	if (capacity != 0) allocator.deallocate(values, capacity);
  19.196 -	values = new_values;
  19.197 -	capacity = new_capacity;
  19.198 +        int new_capacity = (capacity == 0 ? 1 : capacity);
  19.199 +        while (new_capacity <= id) {
  19.200 +          new_capacity <<= 1;
  19.201 +        }
  19.202 +        Value* new_values = allocator.allocate(new_capacity);
  19.203 +        Item it;
  19.204 +        for (nf->first(it); it != INVALID; nf->next(it)) {
  19.205 +          int jd = nf->id(it);;
  19.206 +          if (id != jd) {
  19.207 +            allocator.construct(&(new_values[jd]), values[jd]);
  19.208 +            allocator.destroy(&(values[jd]));
  19.209 +          }
  19.210 +        }
  19.211 +        if (capacity != 0) allocator.deallocate(values, capacity);
  19.212 +        values = new_values;
  19.213 +        capacity = new_capacity;
  19.214        }
  19.215        allocator.construct(&(values[id]), Value());
  19.216      }
  19.217  
  19.218      /// \brief Adds more new keys to the map.
  19.219 -    ///		
  19.220 +    ///
  19.221      /// It adds more new keys to the map. It called by the observer notifier
  19.222 -    /// and it overrides the add() member function of the observer base.     
  19.223 +    /// and it overrides the add() member function of the observer base.
  19.224      virtual void add(const std::vector<Key>& keys) {
  19.225        Notifier* nf = Parent::notifier();
  19.226        int max_id = -1;
  19.227        for (int i = 0; i < int(keys.size()); ++i) {
  19.228 -	int id = nf->id(keys[i]);
  19.229 -	if (id > max_id) {
  19.230 -	  max_id = id;
  19.231 -	}
  19.232 +        int id = nf->id(keys[i]);
  19.233 +        if (id > max_id) {
  19.234 +          max_id = id;
  19.235 +        }
  19.236        }
  19.237        if (max_id >= capacity) {
  19.238 -	int new_capacity = (capacity == 0 ? 1 : capacity);
  19.239 -	while (new_capacity <= max_id) {
  19.240 -	  new_capacity <<= 1;
  19.241 -	}
  19.242 -	Value* new_values = allocator.allocate(new_capacity);
  19.243 -	Item it;
  19.244 -	for (nf->first(it); it != INVALID; nf->next(it)) {
  19.245 -	  int id = nf->id(it);
  19.246 -	  bool found = false;
  19.247 -	  for (int i = 0; i < int(keys.size()); ++i) {
  19.248 -	    int jd = nf->id(keys[i]);
  19.249 -	    if (id == jd) {
  19.250 -	      found = true;
  19.251 -	      break;
  19.252 -	    }
  19.253 -	  }
  19.254 -	  if (found) continue;
  19.255 -	  allocator.construct(&(new_values[id]), values[id]);
  19.256 -	  allocator.destroy(&(values[id]));
  19.257 -	}
  19.258 -	if (capacity != 0) allocator.deallocate(values, capacity);
  19.259 -	values = new_values;
  19.260 -	capacity = new_capacity;
  19.261 +        int new_capacity = (capacity == 0 ? 1 : capacity);
  19.262 +        while (new_capacity <= max_id) {
  19.263 +          new_capacity <<= 1;
  19.264 +        }
  19.265 +        Value* new_values = allocator.allocate(new_capacity);
  19.266 +        Item it;
  19.267 +        for (nf->first(it); it != INVALID; nf->next(it)) {
  19.268 +          int id = nf->id(it);
  19.269 +          bool found = false;
  19.270 +          for (int i = 0; i < int(keys.size()); ++i) {
  19.271 +            int jd = nf->id(keys[i]);
  19.272 +            if (id == jd) {
  19.273 +              found = true;
  19.274 +              break;
  19.275 +            }
  19.276 +          }
  19.277 +          if (found) continue;
  19.278 +          allocator.construct(&(new_values[id]), values[id]);
  19.279 +          allocator.destroy(&(values[id]));
  19.280 +        }
  19.281 +        if (capacity != 0) allocator.deallocate(values, capacity);
  19.282 +        values = new_values;
  19.283 +        capacity = new_capacity;
  19.284        }
  19.285        for (int i = 0; i < int(keys.size()); ++i) {
  19.286 -	int id = nf->id(keys[i]);
  19.287 -	allocator.construct(&(values[id]), Value());
  19.288 +        int id = nf->id(keys[i]);
  19.289 +        allocator.construct(&(values[id]), Value());
  19.290        }
  19.291      }
  19.292 -		
  19.293 +
  19.294      /// \brief Erase a key from the map.
  19.295      ///
  19.296      /// Erase a key from the map. It called by the observer notifier
  19.297 -    /// and it overrides the erase() member function of the observer base.     
  19.298 +    /// and it overrides the erase() member function of the observer base.
  19.299      virtual void erase(const Key& key) {
  19.300        int id = Parent::notifier()->id(key);
  19.301        allocator.destroy(&(values[id]));
  19.302 @@ -280,67 +280,67 @@
  19.303      /// \brief Erase more keys from the map.
  19.304      ///
  19.305      /// Erase more keys from the map. It called by the observer notifier
  19.306 -    /// and it overrides the erase() member function of the observer base.     
  19.307 +    /// and it overrides the erase() member function of the observer base.
  19.308      virtual void erase(const std::vector<Key>& keys) {
  19.309        for (int i = 0; i < int(keys.size()); ++i) {
  19.310 -	int id = Parent::notifier()->id(keys[i]);
  19.311 -	allocator.destroy(&(values[id]));
  19.312 +        int id = Parent::notifier()->id(keys[i]);
  19.313 +        allocator.destroy(&(values[id]));
  19.314        }
  19.315      }
  19.316  
  19.317      /// \brief Buildes the map.
  19.318 -    ///	
  19.319 +    ///
  19.320      /// It buildes the map. It called by the observer notifier
  19.321 -    /// and it overrides the build() member function of the observer base. 
  19.322 +    /// and it overrides the build() member function of the observer base.
  19.323      virtual void build() {
  19.324        Notifier* nf = Parent::notifier();
  19.325        allocate_memory();
  19.326        Item it;
  19.327        for (nf->first(it); it != INVALID; nf->next(it)) {
  19.328 -	int id = nf->id(it);;
  19.329 -	allocator.construct(&(values[id]), Value());
  19.330 -      }								
  19.331 +        int id = nf->id(it);;
  19.332 +        allocator.construct(&(values[id]), Value());
  19.333 +      }
  19.334      }
  19.335  
  19.336      /// \brief Clear the map.
  19.337      ///
  19.338      /// It erase all items from the map. It called by the observer notifier
  19.339 -    /// and it overrides the clear() member function of the observer base.     
  19.340 -    virtual void clear() {	
  19.341 +    /// and it overrides the clear() member function of the observer base.
  19.342 +    virtual void clear() {
  19.343        Notifier* nf = Parent::notifier();
  19.344        if (capacity != 0) {
  19.345 -	Item it;
  19.346 -	for (nf->first(it); it != INVALID; nf->next(it)) {
  19.347 -	  int id = nf->id(it);
  19.348 -	  allocator.destroy(&(values[id]));
  19.349 -	}								
  19.350 -	allocator.deallocate(values, capacity);
  19.351 -	capacity = 0;
  19.352 +        Item it;
  19.353 +        for (nf->first(it); it != INVALID; nf->next(it)) {
  19.354 +          int id = nf->id(it);
  19.355 +          allocator.destroy(&(values[id]));
  19.356 +        }
  19.357 +        allocator.deallocate(values, capacity);
  19.358 +        capacity = 0;
  19.359        }
  19.360      }
  19.361  
  19.362    private:
  19.363 -      
  19.364 +
  19.365      void allocate_memory() {
  19.366        int max_id = Parent::notifier()->maxId();
  19.367        if (max_id == -1) {
  19.368 -	capacity = 0;
  19.369 -	values = 0;
  19.370 -	return;
  19.371 +        capacity = 0;
  19.372 +        values = 0;
  19.373 +        return;
  19.374        }
  19.375        capacity = 1;
  19.376        while (capacity <= max_id) {
  19.377 -	capacity <<= 1;
  19.378 +        capacity <<= 1;
  19.379        }
  19.380 -      values = allocator.allocate(capacity);	
  19.381 -    }      
  19.382 +      values = allocator.allocate(capacity);
  19.383 +    }
  19.384  
  19.385      int capacity;
  19.386      Value* values;
  19.387      Allocator allocator;
  19.388  
  19.389 -  };		
  19.390 +  };
  19.391  
  19.392  }
  19.393  
  19.394 -#endif 
  19.395 +#endif
    20.1 --- a/lemon/bits/base_extender.h	Sun Jul 13 16:46:56 2008 +0100
    20.2 +++ b/lemon/bits/base_extender.h	Sun Jul 13 19:51:02 2008 +0100
    20.3 @@ -1,6 +1,6 @@
    20.4 -/* -*- C++ -*-
    20.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    20.6   *
    20.7 - * This file is a part of LEMON, a generic C++ optimization library
    20.8 + * This file is a part of LEMON, a generic C++ optimization library.
    20.9   *
   20.10   * Copyright (C) 2003-2008
   20.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   20.12 @@ -63,14 +63,14 @@
   20.13        Arc(Invalid i) : Edge(i), forward(true) {}
   20.14  
   20.15        bool operator==(const Arc &that) const {
   20.16 -	return forward==that.forward && Edge(*this)==Edge(that);
   20.17 +        return forward==that.forward && Edge(*this)==Edge(that);
   20.18        }
   20.19        bool operator!=(const Arc &that) const {
   20.20 -	return forward!=that.forward || Edge(*this)!=Edge(that);
   20.21 +        return forward!=that.forward || Edge(*this)!=Edge(that);
   20.22        }
   20.23        bool operator<(const Arc &that) const {
   20.24 -	return forward<that.forward ||
   20.25 -	  (!(that.forward<forward) && Edge(*this)<Edge(that));
   20.26 +        return forward<that.forward ||
   20.27 +          (!(that.forward<forward) && Edge(*this)<Edge(that));
   20.28        }
   20.29      };
   20.30  
   20.31 @@ -117,59 +117,59 @@
   20.32  
   20.33      void next(Arc &e) const {
   20.34        if( e.forward ) {
   20.35 -	e.forward = false;
   20.36 +        e.forward = false;
   20.37        }
   20.38        else {
   20.39 -	Parent::next(e);
   20.40 -	e.forward = true;
   20.41 +        Parent::next(e);
   20.42 +        e.forward = true;
   20.43        }
   20.44      }
   20.45  
   20.46      void firstOut(Arc &e, const Node &n) const {
   20.47        Parent::firstIn(e,n);
   20.48        if( Edge(e) != INVALID ) {
   20.49 -	e.forward = false;
   20.50 +        e.forward = false;
   20.51        }
   20.52        else {
   20.53 -	Parent::firstOut(e,n);
   20.54 -	e.forward = true;
   20.55 +        Parent::firstOut(e,n);
   20.56 +        e.forward = true;
   20.57        }
   20.58      }
   20.59      void nextOut(Arc &e) const {
   20.60        if( ! e.forward ) {
   20.61 -	Node n = Parent::target(e);
   20.62 -	Parent::nextIn(e);
   20.63 -	if( Edge(e) == INVALID ) {
   20.64 -	  Parent::firstOut(e, n);
   20.65 -	  e.forward = true;
   20.66 -	}
   20.67 +        Node n = Parent::target(e);
   20.68 +        Parent::nextIn(e);
   20.69 +        if( Edge(e) == INVALID ) {
   20.70 +          Parent::firstOut(e, n);
   20.71 +          e.forward = true;
   20.72 +        }
   20.73        }
   20.74        else {
   20.75 -	Parent::nextOut(e);
   20.76 +        Parent::nextOut(e);
   20.77        }
   20.78      }
   20.79  
   20.80      void firstIn(Arc &e, const Node &n) const {
   20.81        Parent::firstOut(e,n);
   20.82        if( Edge(e) != INVALID ) {
   20.83 -	e.forward = false;
   20.84 +        e.forward = false;
   20.85        }
   20.86        else {
   20.87 -	Parent::firstIn(e,n);
   20.88 -	e.forward = true;
   20.89 +        Parent::firstIn(e,n);
   20.90 +        e.forward = true;
   20.91        }
   20.92      }
   20.93      void nextIn(Arc &e) const {
   20.94        if( ! e.forward ) {
   20.95 -	Node n = Parent::source(e);
   20.96 -	Parent::nextOut(e);
   20.97 -	if( Edge(e) == INVALID ) {
   20.98 -	  Parent::firstIn(e, n);
   20.99 -	  e.forward = true;
  20.100 -	}
  20.101 +        Node n = Parent::source(e);
  20.102 +        Parent::nextOut(e);
  20.103 +        if( Edge(e) == INVALID ) {
  20.104 +          Parent::firstIn(e, n);
  20.105 +          e.forward = true;
  20.106 +        }
  20.107        }
  20.108        else {
  20.109 -	Parent::nextIn(e);
  20.110 +        Parent::nextIn(e);
  20.111        }
  20.112      }
  20.113  
  20.114 @@ -183,13 +183,13 @@
  20.115  
  20.116      void nextInc(Edge &e, bool &d) const {
  20.117        if (d) {
  20.118 -	Node s = Parent::source(e);
  20.119 -	Parent::nextOut(e);
  20.120 -	if (e != INVALID) return;
  20.121 -	d = false;
  20.122 -	Parent::firstIn(e, s);
  20.123 +        Node s = Parent::source(e);
  20.124 +        Parent::nextOut(e);
  20.125 +        if (e != INVALID) return;
  20.126 +        d = false;
  20.127 +        Parent::firstIn(e, s);
  20.128        } else {
  20.129 -	Parent::nextIn(e);
  20.130 +        Parent::nextIn(e);
  20.131        }
  20.132      }
  20.133  
  20.134 @@ -240,18 +240,18 @@
  20.135  
  20.136      Arc findArc(Node s, Node t, Arc p = INVALID) const {
  20.137        if (p == INVALID) {
  20.138 -	Edge arc = Parent::findArc(s, t);
  20.139 -	if (arc != INVALID) return direct(arc, true);
  20.140 -	arc = Parent::findArc(t, s);
  20.141 -	if (arc != INVALID) return direct(arc, false);
  20.142 +        Edge arc = Parent::findArc(s, t);
  20.143 +        if (arc != INVALID) return direct(arc, true);
  20.144 +        arc = Parent::findArc(t, s);
  20.145 +        if (arc != INVALID) return direct(arc, false);
  20.146        } else if (direction(p)) {
  20.147 -	Edge arc = Parent::findArc(s, t, p);
  20.148 -	if (arc != INVALID) return direct(arc, true);
  20.149 -	arc = Parent::findArc(t, s);
  20.150 -	if (arc != INVALID) return direct(arc, false);	
  20.151 +        Edge arc = Parent::findArc(s, t, p);
  20.152 +        if (arc != INVALID) return direct(arc, true);
  20.153 +        arc = Parent::findArc(t, s);
  20.154 +        if (arc != INVALID) return direct(arc, false);
  20.155        } else {
  20.156 -	Edge arc = Parent::findArc(t, s, p);
  20.157 -	if (arc != INVALID) return direct(arc, false);	      
  20.158 +        Edge arc = Parent::findArc(t, s, p);
  20.159 +        if (arc != INVALID) return direct(arc, false);
  20.160        }
  20.161        return INVALID;
  20.162      }
  20.163 @@ -267,10 +267,10 @@
  20.164            Edge arc = Parent::findArc(s, t, p);
  20.165            if (arc != INVALID) return arc;
  20.166            arc = Parent::findArc(t, s);
  20.167 -          if (arc != INVALID) return arc;	
  20.168 +          if (arc != INVALID) return arc;
  20.169          } else {
  20.170            Edge arc = Parent::findArc(t, s, p);
  20.171 -          if (arc != INVALID) return arc;	      
  20.172 +          if (arc != INVALID) return arc;
  20.173          }
  20.174        } else {
  20.175          return Parent::findArc(s, t, p);
  20.176 @@ -299,12 +299,12 @@
  20.177      public:
  20.178        Red() {}
  20.179        Red(const Node& node) : Node(node) {
  20.180 -	LEMON_ASSERT(Parent::red(node) || node == INVALID, 
  20.181 -		     typename Parent::NodeSetError());
  20.182 +        LEMON_ASSERT(Parent::red(node) || node == INVALID,
  20.183 +                     typename Parent::NodeSetError());
  20.184        }
  20.185        Red& operator=(const Node& node) {
  20.186 -	LEMON_ASSERT(Parent::red(node) || node == INVALID, 
  20.187 -		     typename Parent::NodeSetError());
  20.188 +        LEMON_ASSERT(Parent::red(node) || node == INVALID,
  20.189 +                     typename Parent::NodeSetError());
  20.190          Node::operator=(node);
  20.191          return *this;
  20.192        }
  20.193 @@ -331,12 +331,12 @@
  20.194      public:
  20.195        Blue() {}
  20.196        Blue(const Node& node) : Node(node) {
  20.197 -	LEMON_ASSERT(Parent::blue(node) || node == INVALID,
  20.198 -		     typename Parent::NodeSetError());
  20.199 +        LEMON_ASSERT(Parent::blue(node) || node == INVALID,
  20.200 +                     typename Parent::NodeSetError());
  20.201        }
  20.202        Blue& operator=(const Node& node) {
  20.203 -	LEMON_ASSERT(Parent::blue(node) || node == INVALID, 
  20.204 -		     typename Parent::NodeSetError());
  20.205 +        LEMON_ASSERT(Parent::blue(node) || node == INVALID,
  20.206 +                     typename Parent::NodeSetError());
  20.207          Node::operator=(node);
  20.208          return *this;
  20.209        }
  20.210 @@ -353,7 +353,7 @@
  20.211      void next(Blue& node) const {
  20.212        Parent::nextBlue(static_cast<Node&>(node));
  20.213      }
  20.214 -  
  20.215 +
  20.216      int id(const Blue& node) const {
  20.217        return Parent::redId(node);
  20.218      }
  20.219 @@ -367,19 +367,19 @@
  20.220  
  20.221      void firstInc(Edge& arc, bool& dir, const Node& node) const {
  20.222        if (Parent::red(node)) {
  20.223 -	Parent::firstFromRed(arc, node);
  20.224 -	dir = true;
  20.225 +        Parent::firstFromRed(arc, node);
  20.226 +        dir = true;
  20.227        } else {
  20.228 -	Parent::firstFromBlue(arc, node);
  20.229 -	dir = static_cast<Edge&>(arc) == INVALID;
  20.230 +        Parent::firstFromBlue(arc, node);
  20.231 +        dir = static_cast<Edge&>(arc) == INVALID;
  20.232        }
  20.233      }
  20.234      void nextInc(Edge& arc, bool& dir) const {
  20.235        if (dir) {
  20.236 -	Parent::nextFromRed(arc);
  20.237 +        Parent::nextFromRed(arc);
  20.238        } else {
  20.239 -	Parent::nextFromBlue(arc);
  20.240 -	if (arc == INVALID) dir = true;
  20.241 +        Parent::nextFromBlue(arc);
  20.242 +        if (arc == INVALID) dir = true;
  20.243        }
  20.244      }
  20.245  
  20.246 @@ -389,20 +389,20 @@
  20.247        bool forward;
  20.248  
  20.249        Arc(const Edge& arc, bool _forward)
  20.250 -	: Edge(arc), forward(_forward) {}
  20.251 +        : Edge(arc), forward(_forward) {}
  20.252  
  20.253      public:
  20.254        Arc() {}
  20.255        Arc (Invalid) : Edge(INVALID), forward(true) {}
  20.256        bool operator==(const Arc& i) const {
  20.257 -	return Edge::operator==(i) && forward == i.forward;
  20.258 +        return Edge::operator==(i) && forward == i.forward;
  20.259        }
  20.260        bool operator!=(const Arc& i) const {
  20.261 -	return Edge::operator!=(i) || forward != i.forward;
  20.262 +        return Edge::operator!=(i) || forward != i.forward;
  20.263        }
  20.264        bool operator<(const Arc& i) const {
  20.265 -	return Edge::operator<(i) || 
  20.266 -	  (!(i.forward<forward) && Edge(*this)<Edge(i));
  20.267 +        return Edge::operator<(i) ||
  20.268 +          (!(i.forward<forward) && Edge(*this)<Edge(i));
  20.269        }
  20.270      };
  20.271  
  20.272 @@ -413,44 +413,44 @@
  20.273  
  20.274      void next(Arc& arc) const {
  20.275        if (!arc.forward) {
  20.276 -	Parent::next(static_cast<Edge&>(arc));
  20.277 +        Parent::next(static_cast<Edge&>(arc));
  20.278        }
  20.279        arc.forward = !arc.forward;
  20.280      }
  20.281  
  20.282      void firstOut(Arc& arc, const Node& node) const {
  20.283        if (Parent::red(node)) {
  20.284 -	Parent::firstFromRed(arc, node);
  20.285 -	arc.forward = true;
  20.286 +        Parent::firstFromRed(arc, node);
  20.287 +        arc.forward = true;
  20.288        } else {
  20.289 -	Parent::firstFromBlue(arc, node);
  20.290 -	arc.forward = static_cast<Edge&>(arc) == INVALID;
  20.291 +        Parent::firstFromBlue(arc, node);
  20.292 +        arc.forward = static_cast<Edge&>(arc) == INVALID;
  20.293        }
  20.294      }
  20.295      void nextOut(Arc& arc) const {
  20.296        if (arc.forward) {
  20.297 -	Parent::nextFromRed(arc);
  20.298 +        Parent::nextFromRed(arc);
  20.299        } else {
  20.300 -	Parent::nextFromBlue(arc);
  20.301 +        Parent::nextFromBlue(arc);
  20.302          arc.forward = static_cast<Edge&>(arc) == INVALID;
  20.303        }
  20.304      }
  20.305  
  20.306      void firstIn(Arc& arc, const Node& node) const {
  20.307        if (Parent::blue(node)) {
  20.308 -	Parent::firstFromBlue(arc, node);
  20.309 -	arc.forward = true;	
  20.310 +        Parent::firstFromBlue(arc, node);
  20.311 +        arc.forward = true;
  20.312        } else {
  20.313 -	Parent::firstFromRed(arc, node);
  20.314 -	arc.forward = static_cast<Edge&>(arc) == INVALID;
  20.315 +        Parent::firstFromRed(arc, node);
  20.316 +        arc.forward = static_cast<Edge&>(arc) == INVALID;
  20.317        }
  20.318      }
  20.319      void nextIn(Arc& arc) const {
  20.320        if (arc.forward) {
  20.321 -	Parent::nextFromBlue(arc);
  20.322 +        Parent::nextFromBlue(arc);
  20.323        } else {
  20.324 -	Parent::nextFromRed(arc);
  20.325 -	arc.forward = static_cast<Edge&>(arc) == INVALID;
  20.326 +        Parent::nextFromRed(arc);
  20.327 +        arc.forward = static_cast<Edge&>(arc) == INVALID;
  20.328        }
  20.329      }
  20.330  
  20.331 @@ -462,7 +462,7 @@
  20.332      }
  20.333  
  20.334      int id(const Arc& arc) const {
  20.335 -      return (Parent::id(static_cast<const Edge&>(arc)) << 1) + 
  20.336 +      return (Parent::id(static_cast<const Edge&>(arc)) << 1) +
  20.337          (arc.forward ? 0 : 1);
  20.338      }
  20.339      Arc arcFromId(int ix) const {
    21.1 --- a/lemon/bits/bezier.h	Sun Jul 13 16:46:56 2008 +0100
    21.2 +++ b/lemon/bits/bezier.h	Sun Jul 13 19:51:02 2008 +0100
    21.3 @@ -1,6 +1,6 @@
    21.4 -/* -*- C++ -*-
    21.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    21.6   *
    21.7 - * This file is a part of LEMON, a generic C++ optimization library
    21.8 + * This file is a part of LEMON, a generic C++ optimization library.
    21.9   *
   21.10   * Copyright (C) 2003-2008
   21.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   21.12 @@ -44,7 +44,7 @@
   21.13  
   21.14    Bezier1() {}
   21.15    Bezier1(Point _p1, Point _p2) :p1(_p1), p2(_p2) {}
   21.16 -  
   21.17 +
   21.18    Point operator()(double t) const
   21.19    {
   21.20      //    return conv(conv(p1,p2,t),conv(p2,p3,t),t);
   21.21 @@ -54,7 +54,7 @@
   21.22    {
   21.23      return Bezier1(p1,conv(p1,p2,t));
   21.24    }
   21.25 -  
   21.26 +
   21.27    Bezier1 after(double t) const
   21.28    {
   21.29      return Bezier1(conv(p1,p2,t),p2);
   21.30 @@ -87,7 +87,7 @@
   21.31      Point r(conv(p2,p3,t));
   21.32      return Bezier2(p1,q,conv(q,r,t));
   21.33    }
   21.34 -  
   21.35 +
   21.36    Bezier2 after(double t) const
   21.37    {
   21.38      Point q(conv(p1,p2,t));
   21.39 @@ -110,16 +110,16 @@
   21.40    Bezier3() {}
   21.41    Bezier3(Point _p1, Point _p2, Point _p3, Point _p4)
   21.42      : p1(_p1), p2(_p2), p3(_p3), p4(_p4) {}
   21.43 -  Bezier3(const Bezier1 &b) : p1(b.p1), p2(conv(b.p1,b.p2,1.0/3.0)), 
   21.44 -			      p3(conv(b.p1,b.p2,2.0/3.0)), p4(b.p2) {}
   21.45 +  Bezier3(const Bezier1 &b) : p1(b.p1), p2(conv(b.p1,b.p2,1.0/3.0)),
   21.46 +                              p3(conv(b.p1,b.p2,2.0/3.0)), p4(b.p2) {}
   21.47    Bezier3(const Bezier2 &b) : p1(b.p1), p2(conv(b.p1,b.p2,2.0/3.0)),
   21.48 -			      p3(conv(b.p2,b.p3,1.0/3.0)), p4(b.p3) {}
   21.49 -  
   21.50 -  Point operator()(double t) const 
   21.51 +                              p3(conv(b.p2,b.p3,1.0/3.0)), p4(b.p3) {}
   21.52 +
   21.53 +  Point operator()(double t) const
   21.54      {
   21.55        //    return Bezier2(conv(p1,p2,t),conv(p2,p3,t),conv(p3,p4,t))(t);
   21.56        return ((1-t)*(1-t)*(1-t))*p1+(3*t*(1-t)*(1-t))*p2+
   21.57 -	(3*t*t*(1-t))*p3+(t*t*t)*p4;
   21.58 +        (3*t*t*(1-t))*p3+(t*t*t)*p4;
   21.59      }
   21.60    Bezier3 before(double t) const
   21.61      {
   21.62 @@ -131,7 +131,7 @@
   21.63        Point c(conv(a,b,t));
   21.64        return Bezier3(p1,p,a,c);
   21.65      }
   21.66 -  
   21.67 +
   21.68    Bezier3 after(double t) const
   21.69      {
   21.70        Point p(conv(p1,p2,t));
   21.71 @@ -146,13 +146,13 @@
   21.72    Bezier3 operator()(double a,double b) const { return before(b).after(a/b); }
   21.73    Bezier2 grad() const { return Bezier2(3.0*(p2-p1),3.0*(p3-p2),3.0*(p4-p3)); }
   21.74    Bezier2 norm() const { return Bezier2(3.0*rot90(p2-p1),
   21.75 -				  3.0*rot90(p3-p2),
   21.76 -				  3.0*rot90(p4-p3)); }
   21.77 +                                  3.0*rot90(p3-p2),
   21.78 +                                  3.0*rot90(p4-p3)); }
   21.79    Point grad(double t) const { return grad()(t); }
   21.80    Point norm(double t) const { return rot90(grad(t)); }
   21.81  
   21.82    template<class R,class F,class S,class D>
   21.83 -  R recSplit(F &_f,const S &_s,D _d) const 
   21.84 +  R recSplit(F &_f,const S &_s,D _d) const
   21.85    {
   21.86      const Point a=(p1+p2)/2;
   21.87      const Point b=(p2+p3)/2;
   21.88 @@ -164,7 +164,7 @@
   21.89      R f2=_f(Bezier3(e,d,c,p4),_d);
   21.90      return _s(f1,f2);
   21.91    }
   21.92 -  
   21.93 +
   21.94  };
   21.95  
   21.96  
    22.1 --- a/lemon/bits/default_map.h	Sun Jul 13 16:46:56 2008 +0100
    22.2 +++ b/lemon/bits/default_map.h	Sun Jul 13 19:51:02 2008 +0100
    22.3 @@ -1,6 +1,6 @@
    22.4 -/* -*- C++ -*-
    22.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    22.6   *
    22.7 - * This file is a part of LEMON, a generic C++ optimization library
    22.8 + * This file is a part of LEMON, a generic C++ optimization library.
    22.9   *
   22.10   * Copyright (C) 2003-2008
   22.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   22.12 @@ -29,8 +29,8 @@
   22.13  ///\brief Graph maps that construct and destruct their elements dynamically.
   22.14  
   22.15  namespace lemon {
   22.16 -  
   22.17 -  
   22.18 +
   22.19 +
   22.20    //#ifndef LEMON_USE_DEBUG_MAP
   22.21  
   22.22    template <typename _Graph, typename _Item, typename _Value>
   22.23 @@ -140,28 +140,28 @@
   22.24      typedef VectorMap<_Graph, _Item, _Ptr*> Map;
   22.25    };
   22.26  
   22.27 -// #else 
   22.28 +// #else
   22.29  
   22.30  //   template <typename _Graph, typename _Item, typename _Value>
   22.31  //   struct DefaultMapSelector {
   22.32  //     typedef DebugMap<_Graph, _Item, _Value> Map;
   22.33  //   };
   22.34  
   22.35 -// #endif  
   22.36 +// #endif
   22.37  
   22.38    /// \e
   22.39    template <typename _Graph, typename _Item, typename _Value>
   22.40 -  class DefaultMap 
   22.41 +  class DefaultMap
   22.42      : public DefaultMapSelector<_Graph, _Item, _Value>::Map {
   22.43    public:
   22.44      typedef typename DefaultMapSelector<_Graph, _Item, _Value>::Map Parent;
   22.45      typedef DefaultMap<_Graph, _Item, _Value> Map;
   22.46 -    
   22.47 +
   22.48      typedef typename Parent::Graph Graph;
   22.49      typedef typename Parent::Value Value;
   22.50  
   22.51      explicit DefaultMap(const Graph& graph) : Parent(graph) {}
   22.52 -    DefaultMap(const Graph& graph, const Value& value) 
   22.53 +    DefaultMap(const Graph& graph, const Value& value)
   22.54        : Parent(graph, value) {}
   22.55  
   22.56      DefaultMap& operator=(const DefaultMap& cmap) {
    23.1 --- a/lemon/bits/graph_extender.h	Sun Jul 13 16:46:56 2008 +0100
    23.2 +++ b/lemon/bits/graph_extender.h	Sun Jul 13 19:51:02 2008 +0100
    23.3 @@ -1,6 +1,6 @@
    23.4 -/* -*- C++ -*-
    23.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    23.6   *
    23.7 - * This file is a part of LEMON, a generic C++ optimization library
    23.8 + * This file is a part of LEMON, a generic C++ optimization library.
    23.9   *
   23.10   * Copyright (C) 2003-2008
   23.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   23.12 @@ -66,11 +66,11 @@
   23.13  
   23.14      Node oppositeNode(const Node &node, const Arc &arc) const {
   23.15        if (node == Parent::source(arc))
   23.16 -	return Parent::target(arc);
   23.17 +        return Parent::target(arc);
   23.18        else if(node == Parent::target(arc))
   23.19 -	return Parent::source(arc);
   23.20 +        return Parent::source(arc);
   23.21        else
   23.22 -	return INVALID;
   23.23 +        return INVALID;
   23.24      }
   23.25  
   23.26      // Alterable extension
   23.27 @@ -89,12 +89,12 @@
   23.28      NodeNotifier& notifier(Node) const {
   23.29        return node_notifier;
   23.30      }
   23.31 -    
   23.32 +
   23.33      ArcNotifier& notifier(Arc) const {
   23.34        return arc_notifier;
   23.35      }
   23.36  
   23.37 -    class NodeIt : public Node { 
   23.38 +    class NodeIt : public Node {
   23.39        const Digraph* _digraph;
   23.40      public:
   23.41  
   23.42 @@ -103,21 +103,21 @@
   23.43        NodeIt(Invalid i) : Node(i) { }
   23.44  
   23.45        explicit NodeIt(const Digraph& digraph) : _digraph(&digraph) {
   23.46 -	_digraph->first(static_cast<Node&>(*this));
   23.47 +        _digraph->first(static_cast<Node&>(*this));
   23.48        }
   23.49  
   23.50 -      NodeIt(const Digraph& digraph, const Node& node) 
   23.51 -	: Node(node), _digraph(&digraph) {}
   23.52 +      NodeIt(const Digraph& digraph, const Node& node)
   23.53 +        : Node(node), _digraph(&digraph) {}
   23.54  
   23.55 -      NodeIt& operator++() { 
   23.56 -	_digraph->next(*this);
   23.57 -	return *this; 
   23.58 +      NodeIt& operator++() {
   23.59 +        _digraph->next(*this);
   23.60 +        return *this;
   23.61        }
   23.62  
   23.63      };
   23.64  
   23.65  
   23.66 -    class ArcIt : public Arc { 
   23.67 +    class ArcIt : public Arc {
   23.68        const Digraph* _digraph;
   23.69      public:
   23.70  
   23.71 @@ -126,21 +126,21 @@
   23.72        ArcIt(Invalid i) : Arc(i) { }
   23.73  
   23.74        explicit ArcIt(const Digraph& digraph) : _digraph(&digraph) {
   23.75 -	_digraph->first(static_cast<Arc&>(*this));
   23.76 +        _digraph->first(static_cast<Arc&>(*this));
   23.77        }
   23.78  
   23.79 -      ArcIt(const Digraph& digraph, const Arc& arc) : 
   23.80 -	Arc(arc), _digraph(&digraph) { }
   23.81 +      ArcIt(const Digraph& digraph, const Arc& arc) :
   23.82 +        Arc(arc), _digraph(&digraph) { }
   23.83  
   23.84 -      ArcIt& operator++() { 
   23.85 -	_digraph->next(*this);
   23.86 -	return *this; 
   23.87 +      ArcIt& operator++() {
   23.88 +        _digraph->next(*this);
   23.89 +        return *this;
   23.90        }
   23.91  
   23.92      };
   23.93  
   23.94  
   23.95 -    class OutArcIt : public Arc { 
   23.96 +    class OutArcIt : public Arc {
   23.97        const Digraph* _digraph;
   23.98      public:
   23.99  
  23.100 @@ -148,23 +148,23 @@
  23.101  
  23.102        OutArcIt(Invalid i) : Arc(i) { }
  23.103  
  23.104 -      OutArcIt(const Digraph& digraph, const Node& node) 
  23.105 -	: _digraph(&digraph) {
  23.106 -	_digraph->firstOut(*this, node);
  23.107 +      OutArcIt(const Digraph& digraph, const Node& node)
  23.108 +        : _digraph(&digraph) {
  23.109 +        _digraph->firstOut(*this, node);
  23.110        }
  23.111  
  23.112 -      OutArcIt(const Digraph& digraph, const Arc& arc) 
  23.113 -	: Arc(arc), _digraph(&digraph) {}
  23.114 +      OutArcIt(const Digraph& digraph, const Arc& arc)
  23.115 +        : Arc(arc), _digraph(&digraph) {}
  23.116  
  23.117 -      OutArcIt& operator++() { 
  23.118 -	_digraph->nextOut(*this);
  23.119 -	return *this; 
  23.120 +      OutArcIt& operator++() {
  23.121 +        _digraph->nextOut(*this);
  23.122 +        return *this;
  23.123        }
  23.124  
  23.125      };
  23.126  
  23.127  
  23.128 -    class InArcIt : public Arc { 
  23.129 +    class InArcIt : public Arc {
  23.130        const Digraph* _digraph;
  23.131      public:
  23.132  
  23.133 @@ -172,17 +172,17 @@
  23.134  
  23.135        InArcIt(Invalid i) : Arc(i) { }
  23.136  
  23.137 -      InArcIt(const Digraph& digraph, const Node& node) 
  23.138 -	: _digraph(&digraph) {
  23.139 -	_digraph->firstIn(*this, node);
  23.140 +      InArcIt(const Digraph& digraph, const Node& node)
  23.141 +        : _digraph(&digraph) {
  23.142 +        _digraph->firstIn(*this, node);
  23.143        }
  23.144  
  23.145 -      InArcIt(const Digraph& digraph, const Arc& arc) : 
  23.146 -	Arc(arc), _digraph(&digraph) {}
  23.147 +      InArcIt(const Digraph& digraph, const Arc& arc) :
  23.148 +        Arc(arc), _digraph(&digraph) {}
  23.149  
  23.150 -      InArcIt& operator++() { 
  23.151 -	_digraph->nextIn(*this);
  23.152 -	return *this; 
  23.153 +      InArcIt& operator++() {
  23.154 +        _digraph->nextIn(*this);
  23.155 +        return *this;
  23.156        }
  23.157  
  23.158      };
  23.159 @@ -215,51 +215,51 @@
  23.160        return Parent::source(arc);
  23.161      }
  23.162  
  23.163 -    
  23.164 +
  23.165      template <typename _Value>
  23.166 -    class NodeMap 
  23.167 +    class NodeMap
  23.168        : public MapExtender<DefaultMap<Digraph, Node, _Value> > {
  23.169      public:
  23.170        typedef DigraphExtender Digraph;
  23.171        typedef MapExtender<DefaultMap<Digraph, Node, _Value> > Parent;
  23.172  
  23.173 -      explicit NodeMap(const Digraph& digraph) 
  23.174 -	: Parent(digraph) {}
  23.175 -      NodeMap(const Digraph& digraph, const _Value& value) 
  23.176 -	: Parent(digraph, value) {}
  23.177 +      explicit NodeMap(const Digraph& digraph)
  23.178 +        : Parent(digraph) {}
  23.179 +      NodeMap(const Digraph& digraph, const _Value& value)
  23.180 +        : Parent(digraph, value) {}
  23.181  
  23.182        NodeMap& operator=(const NodeMap& cmap) {
  23.183 -	return operator=<NodeMap>(cmap);
  23.184 +        return operator=<NodeMap>(cmap);
  23.185        }
  23.186  
  23.187        template <typename CMap>
  23.188        NodeMap& operator=(const CMap& cmap) {
  23.189          Parent::operator=(cmap);
  23.190 -	return *this;
  23.191 +        return *this;
  23.192        }
  23.193  
  23.194      };
  23.195  
  23.196      template <typename _Value>
  23.197 -    class ArcMap 
  23.198 +    class ArcMap
  23.199        : public MapExtender<DefaultMap<Digraph, Arc, _Value> > {
  23.200      public:
  23.201        typedef DigraphExtender Digraph;
  23.202        typedef MapExtender<DefaultMap<Digraph, Arc, _Value> > Parent;
  23.203  
  23.204 -      explicit ArcMap(const Digraph& digraph) 
  23.205 -	: Parent(digraph) {}
  23.206 -      ArcMap(const Digraph& digraph, const _Value& value) 
  23.207 -	: Parent(digraph, value) {}
  23.208 +      explicit ArcMap(const Digraph& digraph)
  23.209 +        : Parent(digraph) {}
  23.210 +      ArcMap(const Digraph& digraph, const _Value& value)
  23.211 +        : Parent(digraph, value) {}
  23.212  
  23.213        ArcMap& operator=(const ArcMap& cmap) {
  23.214 -	return operator=<ArcMap>(cmap);
  23.215 +        return operator=<ArcMap>(cmap);
  23.216        }
  23.217  
  23.218        template <typename CMap>
  23.219        ArcMap& operator=(const CMap& cmap) {
  23.220          Parent::operator=(cmap);
  23.221 -	return *this;
  23.222 +        return *this;
  23.223        }
  23.224      };
  23.225  
  23.226 @@ -269,7 +269,7 @@
  23.227        notifier(Node()).add(node);
  23.228        return node;
  23.229      }
  23.230 -    
  23.231 +
  23.232      Arc addArc(const Node& from, const Node& to) {
  23.233        Arc arc = Parent::addArc(from, to);
  23.234        notifier(Arc()).add(arc);
  23.235 @@ -293,20 +293,20 @@
  23.236        Arc arc;
  23.237        Parent::firstOut(arc, node);
  23.238        while (arc != INVALID ) {
  23.239 -	erase(arc);
  23.240 -	Parent::firstOut(arc, node);
  23.241 -      } 
  23.242 +        erase(arc);
  23.243 +        Parent::firstOut(arc, node);
  23.244 +      }
  23.245  
  23.246        Parent::firstIn(arc, node);
  23.247        while (arc != INVALID ) {
  23.248 -	erase(arc);
  23.249 -	Parent::firstIn(arc, node);
  23.250 +        erase(arc);
  23.251 +        Parent::firstIn(arc, node);
  23.252        }
  23.253  
  23.254        notifier(Node()).erase(node);
  23.255        Parent::erase(node);
  23.256      }
  23.257 -    
  23.258 +
  23.259      void erase(const Arc& arc) {
  23.260        notifier(Arc()).erase(arc);
  23.261        Parent::erase(arc);
  23.262 @@ -315,8 +315,8 @@
  23.263      DigraphExtender() {
  23.264        node_notifier.setContainer(*this);
  23.265        arc_notifier.setContainer(*this);
  23.266 -    } 
  23.267 -    
  23.268 +    }
  23.269 +
  23.270  
  23.271      ~DigraphExtender() {
  23.272        arc_notifier.clear();
  23.273 @@ -327,10 +327,10 @@
  23.274    /// \ingroup _graphbits
  23.275    ///
  23.276    /// \brief Extender for the Graphs
  23.277 -  template <typename Base> 
  23.278 +  template <typename Base>
  23.279    class GraphExtender : public Base {
  23.280    public:
  23.281 -    
  23.282 +
  23.283      typedef Base Parent;
  23.284      typedef GraphExtender Graph;
  23.285  
  23.286 @@ -340,7 +340,7 @@
  23.287      typedef typename Parent::Arc Arc;
  23.288      typedef typename Parent::Edge Edge;
  23.289  
  23.290 -    // Graph extension    
  23.291 +    // Graph extension
  23.292  
  23.293      int maxId(Node) const {
  23.294        return Parent::maxNodeId();
  23.295 @@ -368,11 +368,11 @@
  23.296  
  23.297      Node oppositeNode(const Node &n, const Edge &e) const {
  23.298        if( n == Parent::u(e))
  23.299 -	return Parent::v(e);
  23.300 +        return Parent::v(e);
  23.301        else if( n == Parent::v(e))
  23.302 -	return Parent::u(e);
  23.303 +        return Parent::u(e);
  23.304        else
  23.305 -	return INVALID;
  23.306 +        return INVALID;
  23.307      }
  23.308  
  23.309      Arc oppositeArc(const Arc &arc) const {
  23.310 @@ -402,7 +402,7 @@
  23.311      NodeNotifier& notifier(Node) const {
  23.312        return node_notifier;
  23.313      }
  23.314 -    
  23.315 +
  23.316      ArcNotifier& notifier(Arc) const {
  23.317        return arc_notifier;
  23.318      }
  23.319 @@ -413,7 +413,7 @@
  23.320  
  23.321  
  23.322  
  23.323 -    class NodeIt : public Node { 
  23.324 +    class NodeIt : public Node {
  23.325        const Graph* _graph;
  23.326      public:
  23.327  
  23.328 @@ -422,21 +422,21 @@
  23.329        NodeIt(Invalid i) : Node(i) { }
  23.330  
  23.331        explicit NodeIt(const Graph& graph) : _graph(&graph) {
  23.332 -	_graph->first(static_cast<Node&>(*this));
  23.333 +        _graph->first(static_cast<Node&>(*this));
  23.334        }
  23.335  
  23.336 -      NodeIt(const Graph& graph, const Node& node) 
  23.337 -	: Node(node), _graph(&graph) {}
  23.338 +      NodeIt(const Graph& graph, const Node& node)
  23.339 +        : Node(node), _graph(&graph) {}
  23.340  
  23.341 -      NodeIt& operator++() { 
  23.342 -	_graph->next(*this);
  23.343 -	return *this; 
  23.344 +      NodeIt& operator++() {
  23.345 +        _graph->next(*this);
  23.346 +        return *this;
  23.347        }
  23.348  
  23.349      };
  23.350  
  23.351  
  23.352 -    class ArcIt : public Arc { 
  23.353 +    class ArcIt : public Arc {
  23.354        const Graph* _graph;
  23.355      public:
  23.356  
  23.357 @@ -445,21 +445,21 @@
  23.358        ArcIt(Invalid i) : Arc(i) { }
  23.359  
  23.360        explicit ArcIt(const Graph& graph) : _graph(&graph) {
  23.361 -	_graph->first(static_cast<Arc&>(*this));
  23.362 +        _graph->first(static_cast<Arc&>(*this));
  23.363        }
  23.364  
  23.365 -      ArcIt(const Graph& graph, const Arc& arc) : 
  23.366 -	Arc(arc), _graph(&graph) { }
  23.367 +      ArcIt(const Graph& graph, const Arc& arc) :
  23.368 +        Arc(arc), _graph(&graph) { }
  23.369  
  23.370 -      ArcIt& operator++() { 
  23.371 -	_graph->next(*this);
  23.372 -	return *this; 
  23.373 +      ArcIt& operator++() {
  23.374 +        _graph->next(*this);
  23.375 +        return *this;
  23.376        }
  23.377  
  23.378      };
  23.379  
  23.380  
  23.381 -    class OutArcIt : public Arc { 
  23.382 +    class OutArcIt : public Arc {
  23.383        const Graph* _graph;
  23.384      public:
  23.385  
  23.386 @@ -467,23 +467,23 @@
  23.387  
  23.388        OutArcIt(Invalid i) : Arc(i) { }
  23.389  
  23.390 -      OutArcIt(const Graph& graph, const Node& node) 
  23.391 -	: _graph(&graph) {
  23.392 -	_graph->firstOut(*this, node);
  23.393 +      OutArcIt(const Graph& graph, const Node& node)
  23.394 +        : _graph(&graph) {
  23.395 +        _graph->firstOut(*this, node);
  23.396        }
  23.397  
  23.398 -      OutArcIt(const Graph& graph, const Arc& arc) 
  23.399 -	: Arc(arc), _graph(&graph) {}
  23.400 +      OutArcIt(const Graph& graph, const Arc& arc)
  23.401 +        : Arc(arc), _graph(&graph) {}
  23.402  
  23.403 -      OutArcIt& operator++() { 
  23.404 -	_graph->nextOut(*this);
  23.405 -	return *this; 
  23.406 +      OutArcIt& operator++() {
  23.407 +        _graph->nextOut(*this);
  23.408 +        return *this;
  23.409        }
  23.410  
  23.411      };
  23.412  
  23.413  
  23.414 -    class InArcIt : public Arc { 
  23.415 +    class InArcIt : public Arc {
  23.416        const Graph* _graph;
  23.417      public:
  23.418  
  23.419 @@ -491,23 +491,23 @@
  23.420  
  23.421        InArcIt(Invalid i) : Arc(i) { }
  23.422  
  23.423 -      InArcIt(const Graph& graph, const Node& node) 
  23.424 -	: _graph(&graph) {
  23.425 -	_graph->firstIn(*this, node);
  23.426 +      InArcIt(const Graph& graph, const Node& node)
  23.427 +        : _graph(&graph) {
  23.428 +        _graph->firstIn(*this, node);
  23.429        }
  23.430  
  23.431 -      InArcIt(const Graph& graph, const Arc& arc) : 
  23.432 -	Arc(arc), _graph(&graph) {}
  23.433 +      InArcIt(const Graph& graph, const Arc& arc) :
  23.434 +        Arc(arc), _graph(&graph) {}
  23.435  
  23.436 -      InArcIt& operator++() { 
  23.437 -	_graph->nextIn(*this);
  23.438 -	return *this; 
  23.439 +      InArcIt& operator++() {
  23.440 +        _graph->nextIn(*this);
  23.441 +        return *this;
  23.442        }
  23.443  
  23.444      };
  23.445  
  23.446  
  23.447 -    class EdgeIt : public Parent::Edge { 
  23.448 +    class EdgeIt : public Parent::Edge {
  23.449        const Graph* _graph;
  23.450      public:
  23.451  
  23.452 @@ -516,15 +516,15 @@
  23.453        EdgeIt(Invalid i) : Edge(i) { }
  23.454  
  23.455        explicit EdgeIt(const Graph& graph) : _graph(&graph) {
  23.456 -	_graph->first(static_cast<Edge&>(*this));
  23.457 +        _graph->first(static_cast<Edge&>(*this));
  23.458        }
  23.459  
  23.460 -      EdgeIt(const Graph& graph, const Edge& edge) : 
  23.461 -	Edge(edge), _graph(&graph) { }
  23.462 +      EdgeIt(const Graph& graph, const Edge& edge) :
  23.463 +        Edge(edge), _graph(&graph) { }
  23.464  
  23.465 -      EdgeIt& operator++() { 
  23.466 -	_graph->next(*this);
  23.467 -	return *this; 
  23.468 +      EdgeIt& operator++() {
  23.469 +        _graph->next(*this);
  23.470 +        return *this;
  23.471        }
  23.472  
  23.473      };
  23.474 @@ -540,17 +540,17 @@
  23.475        IncEdgeIt(Invalid i) : Edge(i), _direction(false) { }
  23.476  
  23.477        IncEdgeIt(const Graph& graph, const Node &node) : _graph(&graph) {
  23.478 -	_graph->firstInc(*this, _direction, node);
  23.479 +        _graph->firstInc(*this, _direction, node);
  23.480        }
  23.481  
  23.482        IncEdgeIt(const Graph& graph, const Edge &edge, const Node &node)
  23.483 -	: _graph(&graph), Edge(edge) {
  23.484 -	_direction = (_graph->source(edge) == node);
  23.485 +        : _graph(&graph), Edge(edge) {
  23.486 +        _direction = (_graph->source(edge) == node);
  23.487        }
  23.488  
  23.489        IncEdgeIt& operator++() {
  23.490 -	_graph->nextInc(*this, _direction);
  23.491 -	return *this; 
  23.492 +        _graph->nextInc(*this, _direction);
  23.493 +        return *this;
  23.494        }
  23.495      };
  23.496  
  23.497 @@ -598,74 +598,74 @@
  23.498      // Mappable extension
  23.499  
  23.500      template <typename _Value>
  23.501 -    class NodeMap 
  23.502 +    class NodeMap
  23.503        : public MapExtender<DefaultMap<Graph, Node, _Value> > {
  23.504      public:
  23.505        typedef GraphExtender Graph;
  23.506        typedef MapExtender<DefaultMap<Graph, Node, _Value> > Parent;
  23.507  
  23.508 -      NodeMap(const Graph& graph) 
  23.509 -	: Parent(graph) {}
  23.510 -      NodeMap(const Graph& graph, const _Value& value) 
  23.511 -	: Parent(graph, value) {}
  23.512 +      NodeMap(const Graph& graph)
  23.513 +        : Parent(graph) {}
  23.514 +      NodeMap(const Graph& graph, const _Value& value)
  23.515 +        : Parent(graph, value) {}
  23.516  
  23.517        NodeMap& operator=(const NodeMap& cmap) {
  23.518 -	return operator=<NodeMap>(cmap);
  23.519 +        return operator=<NodeMap>(cmap);
  23.520        }
  23.521  
  23.522        template <typename CMap>
  23.523        NodeMap& operator=(const CMap& cmap) {
  23.524          Parent::operator=(cmap);
  23.525 -	return *this;
  23.526 +        return *this;
  23.527        }
  23.528  
  23.529      };
  23.530  
  23.531      template <typename _Value>
  23.532 -    class ArcMap 
  23.533 +    class ArcMap
  23.534        : public MapExtender<DefaultMap<Graph, Arc, _Value> > {
  23.535      public:
  23.536        typedef GraphExtender Graph;
  23.537        typedef MapExtender<DefaultMap<Graph, Arc, _Value> > Parent;
  23.538  
  23.539 -      ArcMap(const Graph& graph) 
  23.540 -	: Parent(graph) {}
  23.541 -      ArcMap(const Graph& graph, const _Value& value) 
  23.542 -	: Parent(graph, value) {}
  23.543 +      ArcMap(const Graph& graph)
  23.544 +        : Parent(graph) {}
  23.545 +      ArcMap(const Graph& graph, const _Value& value)
  23.546 +        : Parent(graph, value) {}
  23.547  
  23.548        ArcMap& operator=(const ArcMap& cmap) {
  23.549 -	return operator=<ArcMap>(cmap);
  23.550 +        return operator=<ArcMap>(cmap);
  23.551        }
  23.552  
  23.553        template <typename CMap>
  23.554        ArcMap& operator=(const CMap& cmap) {
  23.555          Parent::operator=(cmap);
  23.556 -	return *this;
  23.557 +        return *this;
  23.558        }
  23.559      };
  23.560  
  23.561  
  23.562      template <typename _Value>
  23.563 -    class EdgeMap 
  23.564 +    class EdgeMap
  23.565        : public MapExtender<DefaultMap<Graph, Edge, _Value> > {
  23.566      public:
  23.567        typedef GraphExtender Graph;
  23.568        typedef MapExtender<DefaultMap<Graph, Edge, _Value> > Parent;
  23.569  
  23.570 -      EdgeMap(const Graph& graph) 
  23.571 -	: Parent(graph) {}
  23.572 +      EdgeMap(const Graph& graph)
  23.573 +        : Parent(graph) {}
  23.574  
  23.575 -      EdgeMap(const Graph& graph, const _Value& value) 
  23.576 -	: Parent(graph, value) {}
  23.577 +      EdgeMap(const Graph& graph, const _Value& value)
  23.578 +        : Parent(graph, value) {}
  23.579  
  23.580        EdgeMap& operator=(const EdgeMap& cmap) {
  23.581 -	return operator=<EdgeMap>(cmap);
  23.582 +        return operator=<EdgeMap>(cmap);
  23.583        }
  23.584  
  23.585        template <typename CMap>
  23.586        EdgeMap& operator=(const CMap& cmap) {
  23.587          Parent::operator=(cmap);
  23.588 -	return *this;
  23.589 +        return *this;
  23.590        }
  23.591  
  23.592      };
  23.593 @@ -683,11 +683,11 @@
  23.594        notifier(Edge()).add(edge);
  23.595        std::vector<Arc> ev;
  23.596        ev.push_back(Parent::direct(edge, true));
  23.597 -      ev.push_back(Parent::direct(edge, false));      
  23.598 +      ev.push_back(Parent::direct(edge, false));
  23.599        notifier(Arc()).add(ev);
  23.600        return edge;
  23.601      }
  23.602 -    
  23.603 +
  23.604      void clear() {
  23.605        notifier(Arc()).clear();
  23.606        notifier(Edge()).clear();
  23.607 @@ -696,7 +696,7 @@
  23.608      }
  23.609  
  23.610      template <typename Graph, typename NodeRefMap, typename EdgeRefMap>
  23.611 -    void build(const Graph& graph, NodeRefMap& nodeRef, 
  23.612 +    void build(const Graph& graph, NodeRefMap& nodeRef,
  23.613                 EdgeRefMap& edgeRef) {
  23.614        Parent::build(graph, nodeRef, edgeRef);
  23.615        notifier(Node()).build();
  23.616 @@ -708,14 +708,14 @@
  23.617        Arc arc;
  23.618        Parent::firstOut(arc, node);
  23.619        while (arc != INVALID ) {
  23.620 -	erase(arc);
  23.621 -	Parent::firstOut(arc, node);
  23.622 -      } 
  23.623 +        erase(arc);
  23.624 +        Parent::firstOut(arc, node);
  23.625 +      }
  23.626  
  23.627        Parent::firstIn(arc, node);
  23.628        while (arc != INVALID ) {
  23.629 -	erase(arc);
  23.630 -	Parent::firstIn(arc, node);
  23.631 +        erase(arc);
  23.632 +        Parent::firstIn(arc, node);
  23.633        }
  23.634  
  23.635        notifier(Node()).erase(node);
  23.636 @@ -725,23 +725,23 @@
  23.637      void erase(const Edge& edge) {
  23.638        std::vector<Arc> av;
  23.639        av.push_back(Parent::direct(edge, true));
  23.640 -      av.push_back(Parent::direct(edge, false));      
  23.641 +      av.push_back(Parent::direct(edge, false));
  23.642        notifier(Arc()).erase(av);
  23.643        notifier(Edge()).erase(edge);
  23.644        Parent::erase(edge);
  23.645      }
  23.646  
  23.647      GraphExtender() {
  23.648 -      node_notifier.setContainer(*this); 
  23.649 +      node_notifier.setContainer(*this);
  23.650        arc_notifier.setContainer(*this);
  23.651        edge_notifier.setContainer(*this);
  23.652 -    } 
  23.653 +    }
  23.654  
  23.655      ~GraphExtender() {
  23.656        edge_notifier.clear();
  23.657        arc_notifier.clear();
  23.658 -      node_notifier.clear(); 
  23.659 -    } 
  23.660 +      node_notifier.clear();
  23.661 +    }
  23.662  
  23.663    };
  23.664  
    24.1 --- a/lemon/bits/invalid.h	Sun Jul 13 16:46:56 2008 +0100
    24.2 +++ b/lemon/bits/invalid.h	Sun Jul 13 19:51:02 2008 +0100
    24.3 @@ -1,6 +1,6 @@
    24.4 -/* -*- C++ -*-
    24.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    24.6   *
    24.7 - * This file is a part of LEMON, a generic C++ optimization library
    24.8 + * This file is a part of LEMON, a generic C++ optimization library.
    24.9   *
   24.10   * Copyright (C) 2003-2008
   24.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   24.12 @@ -34,7 +34,7 @@
   24.13      bool operator!=(Invalid) { return false; }
   24.14      bool operator< (Invalid) { return false; }
   24.15    };
   24.16 -  
   24.17 +
   24.18    /// \brief Invalid iterators.
   24.19    ///
   24.20    /// \ref Invalid is a global type that converts to each iterator
   24.21 @@ -52,4 +52,4 @@
   24.22  } //namespace lemon
   24.23  
   24.24  #endif
   24.25 -  
   24.26 +
    25.1 --- a/lemon/bits/map_extender.h	Sun Jul 13 16:46:56 2008 +0100
    25.2 +++ b/lemon/bits/map_extender.h	Sun Jul 13 19:51:02 2008 +0100
    25.3 @@ -1,6 +1,6 @@
    25.4 -/* -*- C++ -*-
    25.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    25.6   *
    25.7 - * This file is a part of LEMON, a generic C++ optimization library
    25.8 + * This file is a part of LEMON, a generic C++ optimization library.
    25.9   *
   25.10   * Copyright (C) 2003-2008
   25.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   25.12 @@ -32,7 +32,7 @@
   25.13  namespace lemon {
   25.14  
   25.15    /// \ingroup graphbits
   25.16 -  /// 
   25.17 +  ///
   25.18    /// \brief Extender for maps
   25.19    template <typename _Map>
   25.20    class MapExtender : public _Map {
   25.21 @@ -56,10 +56,10 @@
   25.22  
   25.23    public:
   25.24  
   25.25 -    MapExtender(const Graph& graph) 
   25.26 +    MapExtender(const Graph& graph)
   25.27        : Parent(graph) {}
   25.28  
   25.29 -    MapExtender(const Graph& graph, const Value& value) 
   25.30 +    MapExtender(const Graph& graph, const Value& value)
   25.31        : Parent(graph, value) {}
   25.32  
   25.33      MapExtender& operator=(const MapExtender& cmap) {
   25.34 @@ -70,14 +70,14 @@
   25.35      MapExtender& operator=(const CMap& cmap) {
   25.36        Parent::operator=(cmap);
   25.37        return *this;
   25.38 -    } 
   25.39 +    }
   25.40  
   25.41      class MapIt : public Item {
   25.42      public:
   25.43 -      
   25.44 +
   25.45        typedef Item Parent;
   25.46        typedef typename Map::Value Value;
   25.47 -      
   25.48 +
   25.49        MapIt() {}
   25.50  
   25.51        MapIt(Invalid i) : Parent(i) { }
   25.52 @@ -86,29 +86,29 @@
   25.53          map.notifier()->first(*this);
   25.54        }
   25.55  
   25.56 -      MapIt(const Map& _map, const Item& item) 
   25.57 -	: Parent(item), map(_map) {}
   25.58 +      MapIt(const Map& _map, const Item& item)
   25.59 +        : Parent(item), map(_map) {}
   25.60  
   25.61 -      MapIt& operator++() { 
   25.62 -	map.notifier()->next(*this);
   25.63 -	return *this; 
   25.64 +      MapIt& operator++() {
   25.65 +        map.notifier()->next(*this);
   25.66 +        return *this;
   25.67        }
   25.68 -      
   25.69 +
   25.70        typename MapTraits<Map>::ConstReturnValue operator*() const {
   25.71 -	return map[*this];
   25.72 +        return map[*this];
   25.73        }
   25.74  
   25.75        typename MapTraits<Map>::ReturnValue operator*() {
   25.76 -	return map[*this];
   25.77 +        return map[*this];
   25.78        }
   25.79 -      
   25.80 +
   25.81        void set(const Value& value) {
   25.82 -	map.set(*this, value);
   25.83 +        map.set(*this, value);
   25.84        }
   25.85 -      
   25.86 +
   25.87      protected:
   25.88        Map& map;
   25.89 -      
   25.90 +
   25.91      };
   25.92  
   25.93      class ConstMapIt : public Item {
   25.94 @@ -117,7 +117,7 @@
   25.95        typedef Item Parent;
   25.96  
   25.97        typedef typename Map::Value Value;
   25.98 -      
   25.99 +
  25.100        ConstMapIt() {}
  25.101  
  25.102        ConstMapIt(Invalid i) : Parent(i) { }
  25.103 @@ -126,16 +126,16 @@
  25.104          map.notifier()->first(*this);
  25.105        }
  25.106  
  25.107 -      ConstMapIt(const Map& _map, const Item& item) 
  25.108 -	: Parent(item), map(_map) {}
  25.109 +      ConstMapIt(const Map& _map, const Item& item)
  25.110 +        : Parent(item), map(_map) {}
  25.111  
  25.112 -      ConstMapIt& operator++() { 
  25.113 -	map.notifier()->next(*this);
  25.114 -	return *this; 
  25.115 +      ConstMapIt& operator++() {
  25.116 +        map.notifier()->next(*this);
  25.117 +        return *this;
  25.118        }
  25.119  
  25.120        typename MapTraits<Map>::ConstReturnValue operator*() const {
  25.121 -	return map[*this];
  25.122 +        return map[*this];
  25.123        }
  25.124  
  25.125      protected:
  25.126 @@ -144,9 +144,9 @@
  25.127  
  25.128      class ItemIt : public Item {
  25.129      public:
  25.130 -      
  25.131 +
  25.132        typedef Item Parent;
  25.133 -      
  25.134 +
  25.135        ItemIt() {}
  25.136  
  25.137        ItemIt(Invalid i) : Parent(i) { }
  25.138 @@ -155,22 +155,22 @@
  25.139          map.notifier()->first(*this);
  25.140        }
  25.141  
  25.142 -      ItemIt(const Map& _map, const Item& item) 
  25.143 -	: Parent(item), map(_map) {}
  25.144 +      ItemIt(const Map& _map, const Item& item)
  25.145 +        : Parent(item), map(_map) {}
  25.146  
  25.147 -      ItemIt& operator++() { 
  25.148 -	map.notifier()->next(*this);
  25.149 -	return *this; 
  25.150 +      ItemIt& operator++() {
  25.151 +        map.notifier()->next(*this);
  25.152 +        return *this;
  25.153        }
  25.154  
  25.155      protected:
  25.156        const Map& map;
  25.157 -      
  25.158 +
  25.159      };
  25.160    };
  25.161  
  25.162    /// \ingroup graphbits
  25.163 -  /// 
  25.164 +  ///
  25.165    /// \brief Extender for maps which use a subset of the items.
  25.166    template <typename _Graph, typename _Map>
  25.167    class SubMapExtender : public _Map {
  25.168 @@ -194,10 +194,10 @@
  25.169  
  25.170    public:
  25.171  
  25.172 -    SubMapExtender(const Graph& _graph) 
  25.173 +    SubMapExtender(const Graph& _graph)
  25.174        : Parent(_graph), graph(_graph) {}
  25.175  
  25.176 -    SubMapExtender(const Graph& _graph, const Value& _value) 
  25.177 +    SubMapExtender(const Graph& _graph, const Value& _value)
  25.178        : Parent(_graph, _value), graph(_graph) {}
  25.179  
  25.180      SubMapExtender& operator=(const SubMapExtender& cmap) {
  25.181 @@ -212,14 +212,14 @@
  25.182          Parent::set(it, cmap[it]);
  25.183        }
  25.184        return *this;
  25.185 -    } 
  25.186 +    }
  25.187  
  25.188      class MapIt : public Item {
  25.189      public:
  25.190 -      
  25.191 +
  25.192        typedef Item Parent;
  25.193        typedef typename Map::Value Value;
  25.194 -      
  25.195 +
  25.196        MapIt() {}
  25.197  
  25.198        MapIt(Invalid i) : Parent(i) { }
  25.199 @@ -228,29 +228,29 @@
  25.200          map.graph.first(*this);
  25.201        }
  25.202  
  25.203 -      MapIt(const Map& _map, const Item& item) 
  25.204 -	: Parent(item), map(_map) {}
  25.205 +      MapIt(const Map& _map, const Item& item)
  25.206 +        : Parent(item), map(_map) {}
  25.207  
  25.208 -      MapIt& operator++() { 
  25.209 -	map.graph.next(*this);
  25.210 -	return *this; 
  25.211 +      MapIt& operator++() {
  25.212 +        map.graph.next(*this);
  25.213 +        return *this;
  25.214        }
  25.215 -      
  25.216 +
  25.217        typename MapTraits<Map>::ConstReturnValue operator*() const {
  25.218 -	return map[*this];
  25.219 +        return map[*this];
  25.220        }
  25.221  
  25.222        typename MapTraits<Map>::ReturnValue operator*() {
  25.223 -	return map[*this];
  25.224 +        return map[*this];
  25.225        }
  25.226 -      
  25.227 +
  25.228        void set(const Value& value) {
  25.229 -	map.set(*this, value);
  25.230 +        map.set(*this, value);
  25.231        }
  25.232 -      
  25.233 +
  25.234      protected:
  25.235        Map& map;
  25.236 -      
  25.237 +
  25.238      };
  25.239  
  25.240      class ConstMapIt : public Item {
  25.241 @@ -259,7 +259,7 @@
  25.242        typedef Item Parent;
  25.243  
  25.244        typedef typename Map::Value Value;
  25.245 -      
  25.246 +
  25.247        ConstMapIt() {}
  25.248  
  25.249        ConstMapIt(Invalid i) : Parent(i) { }
  25.250 @@ -268,16 +268,16 @@
  25.251          map.graph.first(*this);
  25.252        }
  25.253  
  25.254 -      ConstMapIt(const Map& _map, const Item& item) 
  25.255 -	: Parent(item), map(_map) {}
  25.256 +      ConstMapIt(const Map& _map, const Item& item)
  25.257 +        : Parent(item), map(_map) {}
  25.258  
  25.259 -      ConstMapIt& operator++() { 
  25.260 -	map.graph.next(*this);
  25.261 -	return *this; 
  25.262 +      ConstMapIt& operator++() {
  25.263 +        map.graph.next(*this);
  25.264 +        return *this;
  25.265        }
  25.266  
  25.267        typename MapTraits<Map>::ConstReturnValue operator*() const {
  25.268 -	return map[*this];
  25.269 +        return map[*this];
  25.270        }
  25.271  
  25.272      protected:
  25.273 @@ -286,9 +286,9 @@
  25.274  
  25.275      class ItemIt : public Item {
  25.276      public:
  25.277 -      
  25.278 +
  25.279        typedef Item Parent;
  25.280 -      
  25.281 +
  25.282        ItemIt() {}
  25.283  
  25.284        ItemIt(Invalid i) : Parent(i) { }
  25.285 @@ -297,23 +297,23 @@
  25.286          map.graph.first(*this);
  25.287        }
  25.288  
  25.289 -      ItemIt(const Map& _map, const Item& item) 
  25.290 -	: Parent(item), map(_map) {}
  25.291 +      ItemIt(const Map& _map, const Item& item)
  25.292 +        : Parent(item), map(_map) {}
  25.293  
  25.294 -      ItemIt& operator++() { 
  25.295 -	map.graph.next(*this);
  25.296 -	return *this; 
  25.297 +      ItemIt& operator++() {
  25.298 +        map.graph.next(*this);
  25.299 +        return *this;
  25.300        }
  25.301  
  25.302      protected:
  25.303        const Map& map;
  25.304 -      
  25.305 +
  25.306      };
  25.307 -    
  25.308 +
  25.309    private:
  25.310  
  25.311      const Graph& graph;
  25.312 -    
  25.313 +
  25.314    };
  25.315  
  25.316  }
    26.1 --- a/lemon/bits/path_dump.h	Sun Jul 13 16:46:56 2008 +0100
    26.2 +++ b/lemon/bits/path_dump.h	Sun Jul 13 19:51:02 2008 +0100
    26.3 @@ -1,6 +1,6 @@
    26.4 -/* -*- C++ -*-
    26.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    26.6   *
    26.7 - * This file is a part of LEMON, a generic C++ optimization library
    26.8 + * This file is a part of LEMON, a generic C++ optimization library.
    26.9   *
   26.10   * Copyright (C) 2003-2008
   26.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   26.12 @@ -53,7 +53,7 @@
   26.13      public:
   26.14        RevArcIt() {}
   26.15        RevArcIt(Invalid) : path(0), current(INVALID) {}
   26.16 -      RevArcIt(const PredMapPath& _path) 
   26.17 +      RevArcIt(const PredMapPath& _path)
   26.18          : path(&_path), current(_path.target) {
   26.19          if (path->predMap[current] == INVALID) current = INVALID;
   26.20        }
   26.21 @@ -68,18 +68,18 @@
   26.22          return *this;
   26.23        }
   26.24  
   26.25 -      bool operator==(const RevArcIt& e) const { 
   26.26 -        return current == e.current; 
   26.27 +      bool operator==(const RevArcIt& e) const {
   26.28 +        return current == e.current;
   26.29        }
   26.30  
   26.31        bool operator!=(const RevArcIt& e) const {
   26.32 -        return current != e.current; 
   26.33 +        return current != e.current;
   26.34        }
   26.35  
   26.36 -      bool operator<(const RevArcIt& e) const { 
   26.37 -        return current < e.current; 
   26.38 +      bool operator<(const RevArcIt& e) const {
   26.39 +        return current < e.current;
   26.40        }
   26.41 -      
   26.42 +
   26.43      private:
   26.44        const PredMapPath* path;
   26.45        typename Digraph::Node current;
   26.46 @@ -101,11 +101,11 @@
   26.47      typedef typename Digraph::Arc Arc;
   26.48      typedef _PredMatrixMap PredMatrixMap;
   26.49  
   26.50 -    PredMatrixMapPath(const Digraph& _digraph, 
   26.51 +    PredMatrixMapPath(const Digraph& _digraph,
   26.52                        const PredMatrixMap& _predMatrixMap,
   26.53 -                      typename Digraph::Node _source, 
   26.54 +                      typename Digraph::Node _source,
   26.55                        typename Digraph::Node _target)
   26.56 -      : digraph(_digraph), predMatrixMap(_predMatrixMap), 
   26.57 +      : digraph(_digraph), predMatrixMap(_predMatrixMap),
   26.58          source(_source), target(_target) {}
   26.59  
   26.60      int length() const {
   26.61 @@ -127,9 +127,9 @@
   26.62      public:
   26.63        RevArcIt() {}
   26.64        RevArcIt(Invalid) : path(0), current(INVALID) {}
   26.65 -      RevArcIt(const PredMatrixMapPath& _path) 
   26.66 +      RevArcIt(const PredMatrixMapPath& _path)
   26.67          : path(&_path), current(_path.target) {
   26.68 -        if (path->predMatrixMap(path->source, current) == INVALID) 
   26.69 +        if (path->predMatrixMap(path->source, current) == INVALID)
   26.70            current = INVALID;
   26.71        }
   26.72  
   26.73 @@ -138,25 +138,25 @@
   26.74        }
   26.75  
   26.76        RevArcIt& operator++() {
   26.77 -        current = 
   26.78 +        current =
   26.79            path->digraph.source(path->predMatrixMap(path->source, current));
   26.80 -        if (path->predMatrixMap(path->source, current) == INVALID) 
   26.81 +        if (path->predMatrixMap(path->source, current) == INVALID)
   26.82            current = INVALID;
   26.83          return *this;
   26.84        }
   26.85  
   26.86 -      bool operator==(const RevArcIt& e) const { 
   26.87 -        return current == e.current; 
   26.88 +      bool operator==(const RevArcIt& e) const {
   26.89 +        return current == e.current;
   26.90        }
   26.91  
   26.92        bool operator!=(const RevArcIt& e) const {
   26.93 -        return current != e.current; 
   26.94 +        return current != e.current;
   26.95        }
   26.96  
   26.97 -      bool operator<(const RevArcIt& e) const { 
   26.98 -        return current < e.current; 
   26.99 +      bool operator<(const RevArcIt& e) const {
  26.100 +        return current < e.current;
  26.101        }
  26.102 -      
  26.103 +
  26.104      private:
  26.105        const PredMatrixMapPath* path;
  26.106        typename Digraph::Node current;
    27.1 --- a/lemon/bits/traits.h	Sun Jul 13 16:46:56 2008 +0100
    27.2 +++ b/lemon/bits/traits.h	Sun Jul 13 19:51:02 2008 +0100
    27.3 @@ -1,7 +1,6 @@
    27.4 -
    27.5 -/* -*- C++ -*-
    27.6 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    27.7   *
    27.8 - * This file is a part of LEMON, a generic C++ optimization library
    27.9 + * This file is a part of LEMON, a generic C++ optimization library.
   27.10   *
   27.11   * Copyright (C) 2003-2008
   27.12   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   27.13 @@ -29,7 +28,7 @@
   27.14  namespace lemon {
   27.15    template <typename _Graph, typename _Item>
   27.16    class ItemSetTraits {};
   27.17 -  
   27.18 +
   27.19  
   27.20    template <typename Graph, typename Enable = void>
   27.21    struct NodeNotifierIndicator {
   27.22 @@ -37,16 +36,16 @@
   27.23    };
   27.24    template <typename Graph>
   27.25    struct NodeNotifierIndicator<
   27.26 -    Graph, 
   27.27 +    Graph,
   27.28      typename enable_if<typename Graph::NodeNotifier::Notifier, void>::type
   27.29 -  > { 
   27.30 +  > {
   27.31      typedef typename Graph::NodeNotifier Type;
   27.32    };
   27.33  
   27.34    template <typename _Graph>
   27.35    class ItemSetTraits<_Graph, typename _Graph::Node> {
   27.36    public:
   27.37 -    
   27.38 +
   27.39      typedef _Graph Graph;
   27.40  
   27.41      typedef typename Graph::Node Item;
   27.42 @@ -57,13 +56,13 @@
   27.43      template <typename _Value>
   27.44      class Map : public Graph::template NodeMap<_Value> {
   27.45      public:
   27.46 -      typedef typename Graph::template NodeMap<_Value> Parent; 
   27.47 -      typedef typename Graph::template NodeMap<_Value> Type; 
   27.48 +      typedef typename Graph::template NodeMap<_Value> Parent;
   27.49 +      typedef typename Graph::template NodeMap<_Value> Type;
   27.50        typedef typename Parent::Value Value;
   27.51  
   27.52        Map(const Graph& _digraph) : Parent(_digraph) {}
   27.53 -      Map(const Graph& _digraph, const Value& _value) 
   27.54 -	: Parent(_digraph, _value) {}
   27.55 +      Map(const Graph& _digraph, const Value& _value)
   27.56 +        : Parent(_digraph, _value) {}
   27.57  
   27.58       };
   27.59  
   27.60 @@ -75,16 +74,16 @@
   27.61    };
   27.62    template <typename Graph>
   27.63    struct ArcNotifierIndicator<
   27.64 -    Graph, 
   27.65 +    Graph,
   27.66      typename enable_if<typename Graph::ArcNotifier::Notifier, void>::type
   27.67 -  > { 
   27.68 +  > {
   27.69      typedef typename Graph::ArcNotifier Type;
   27.70    };
   27.71  
   27.72    template <typename _Graph>
   27.73    class ItemSetTraits<_Graph, typename _Graph::Arc> {
   27.74    public:
   27.75 -    
   27.76 +
   27.77      typedef _Graph Graph;
   27.78  
   27.79      typedef typename Graph::Arc Item;
   27.80 @@ -95,13 +94,13 @@
   27.81      template <typename _Value>
   27.82      class Map : public Graph::template ArcMap<_Value> {
   27.83      public:
   27.84 -      typedef typename Graph::template ArcMap<_Value> Parent; 
   27.85 -      typedef typename Graph::template ArcMap<_Value> Type; 
   27.86 +      typedef typename Graph::template ArcMap<_Value> Parent;
   27.87 +      typedef typename Graph::template ArcMap<_Value> Type;
   27.88        typedef typename Parent::Value Value;
   27.89  
   27.90        Map(const Graph& _digraph) : Parent(_digraph) {}
   27.91 -      Map(const Graph& _digraph, const Value& _value) 
   27.92 -	: Parent(_digraph, _value) {}
   27.93 +      Map(const Graph& _digraph, const Value& _value)
   27.94 +        : Parent(_digraph, _value) {}
   27.95      };
   27.96  
   27.97    };
   27.98 @@ -112,16 +111,16 @@
   27.99    };
  27.100    template <typename Graph>
  27.101    struct EdgeNotifierIndicator<
  27.102 -    Graph, 
  27.103 +    Graph,
  27.104      typename enable_if<typename Graph::EdgeNotifier::Notifier, void>::type
  27.105 -  > { 
  27.106 +  > {
  27.107      typedef typename Graph::EdgeNotifier Type;
  27.108    };
  27.109  
  27.110    template <typename _Graph>
  27.111    class ItemSetTraits<_Graph, typename _Graph::Edge> {
  27.112    public:
  27.113 -    
  27.114 +
  27.115      typedef _Graph Graph;
  27.116  
  27.117      typedef typename Graph::Edge Item;
  27.118 @@ -132,13 +131,13 @@
  27.119      template <typename _Value>
  27.120      class Map : public Graph::template EdgeMap<_Value> {
  27.121      public:
  27.122 -      typedef typename Graph::template EdgeMap<_Value> Parent; 
  27.123 -      typedef typename Graph::template EdgeMap<_Value> Type; 
  27.124 +      typedef typename Graph::template EdgeMap<_Value> Parent;
  27.125 +      typedef typename Graph::template EdgeMap<_Value> Type;
  27.126        typedef typename Parent::Value Value;
  27.127  
  27.128        Map(const Graph& _digraph) : Parent(_digraph) {}
  27.129 -      Map(const Graph& _digraph, const Value& _value) 
  27.130 -	: Parent(_digraph, _value) {}
  27.131 +      Map(const Graph& _digraph, const Value& _value)
  27.132 +        : Parent(_digraph, _value) {}
  27.133      };
  27.134  
  27.135    };
  27.136 @@ -156,17 +155,17 @@
  27.137  
  27.138    template <typename Map>
  27.139    struct MapTraits<
  27.140 -    Map, typename enable_if<typename Map::ReferenceMapTag, void>::type > 
  27.141 +    Map, typename enable_if<typename Map::ReferenceMapTag, void>::type >
  27.142    {
  27.143      typedef True ReferenceMapTag;
  27.144 -    
  27.145 +
  27.146      typedef typename Map::Key Key;
  27.147      typedef typename Map::Value Value;
  27.148  
  27.149      typedef typename Map::ConstReference ConstReturnValue;
  27.150      typedef typename Map::Reference ReturnValue;
  27.151  
  27.152 -    typedef typename Map::ConstReference ConstReference; 
  27.153 +    typedef typename Map::ConstReference ConstReference;
  27.154      typedef typename Map::Reference Reference;
  27.155   };
  27.156  
  27.157 @@ -184,11 +183,11 @@
  27.158  
  27.159    template <typename MatrixMap>
  27.160    struct MatrixMapTraits<
  27.161 -    MatrixMap, typename enable_if<typename MatrixMap::ReferenceMapTag, 
  27.162 -                                  void>::type > 
  27.163 +    MatrixMap, typename enable_if<typename MatrixMap::ReferenceMapTag,
  27.164 +                                  void>::type >
  27.165    {
  27.166      typedef True ReferenceMapTag;
  27.167 -    
  27.168 +
  27.169      typedef typename MatrixMap::FirstKey FirstKey;
  27.170      typedef typename MatrixMap::SecondKey SecondKey;
  27.171      typedef typename MatrixMap::Value Value;
  27.172 @@ -196,7 +195,7 @@
  27.173      typedef typename MatrixMap::ConstReference ConstReturnValue;
  27.174      typedef typename MatrixMap::Reference ReturnValue;
  27.175  
  27.176 -    typedef typename MatrixMap::ConstReference ConstReference; 
  27.177 +    typedef typename MatrixMap::ConstReference ConstReference;
  27.178      typedef typename MatrixMap::Reference Reference;
  27.179   };
  27.180  
  27.181 @@ -209,7 +208,7 @@
  27.182  
  27.183    template <typename Graph>
  27.184    struct NodeNumTagIndicator<
  27.185 -    Graph, 
  27.186 +    Graph,
  27.187      typename enable_if<typename Graph::NodeNumTag, void>::type
  27.188    > {
  27.189      static const bool value = true;
  27.190 @@ -222,7 +221,7 @@
  27.191  
  27.192    template <typename Graph>
  27.193    struct EdgeNumTagIndicator<
  27.194 -    Graph, 
  27.195 +    Graph,
  27.196      typename enable_if<typename Graph::EdgeNumTag, void>::type
  27.197    > {
  27.198      static const bool value = true;
  27.199 @@ -235,7 +234,7 @@
  27.200  
  27.201    template <typename Graph>
  27.202    struct FindEdgeTagIndicator<
  27.203 -    Graph, 
  27.204 +    Graph,
  27.205      typename enable_if<typename Graph::FindEdgeTag, void>::type
  27.206    > {
  27.207      static const bool value = true;
  27.208 @@ -248,7 +247,7 @@
  27.209  
  27.210    template <typename Graph>
  27.211    struct UndirectedTagIndicator<
  27.212 -    Graph, 
  27.213 +    Graph,
  27.214      typename enable_if<typename Graph::UndirectedTag, void>::type
  27.215    > {
  27.216      static const bool value = true;
  27.217 @@ -261,7 +260,7 @@
  27.218  
  27.219    template <typename Graph>
  27.220    struct BuildTagIndicator<
  27.221 -    Graph, 
  27.222 +    Graph,
  27.223      typename enable_if<typename Graph::BuildTag, void>::type
  27.224    > {
  27.225      static const bool value = true;
    28.1 --- a/lemon/bits/utility.h	Sun Jul 13 16:46:56 2008 +0100
    28.2 +++ b/lemon/bits/utility.h	Sun Jul 13 19:51:02 2008 +0100
    28.3 @@ -1,6 +1,6 @@
    28.4 -/* -*- C++ -*-
    28.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    28.6   *
    28.7 - * This file is a part of LEMON, a generic C++ optimization library
    28.8 + * This file is a part of LEMON, a generic C++ optimization library.
    28.9   *
   28.10   * Copyright (C) 2003-2008
   28.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   28.12 @@ -83,13 +83,13 @@
   28.13    template<int T> struct dummy { dummy(int) {} };
   28.14  
   28.15    /**************** enable_if from BOOST ****************/
   28.16 -  
   28.17 +
   28.18    template <typename Type, typename T = void>
   28.19    struct exists {
   28.20      typedef T type;
   28.21    };
   28.22  
   28.23 - 
   28.24 +
   28.25    template <bool B, class T = void>
   28.26    struct enable_if_c {
   28.27      typedef T type;
   28.28 @@ -98,7 +98,7 @@
   28.29    template <class T>
   28.30    struct enable_if_c<false, T> {};
   28.31  
   28.32 -  template <class Cond, class T = void> 
   28.33 +  template <class Cond, class T = void>
   28.34    struct enable_if : public enable_if_c<Cond::value, T> {};
   28.35  
   28.36    template <bool B, class T>
   28.37 @@ -109,7 +109,7 @@
   28.38    template <class T>
   28.39    struct lazy_enable_if_c<false, T> {};
   28.40  
   28.41 -  template <class Cond, class T> 
   28.42 +  template <class Cond, class T>
   28.43    struct lazy_enable_if : public lazy_enable_if_c<Cond::value, T> {};
   28.44  
   28.45  
   28.46 @@ -121,7 +121,7 @@
   28.47    template <class T>
   28.48    struct disable_if_c<true, T> {};
   28.49  
   28.50 -  template <class Cond, class T = void> 
   28.51 +  template <class Cond, class T = void>
   28.52    struct disable_if : public disable_if_c<Cond::value, T> {};
   28.53  
   28.54    template <bool B, class T>
   28.55 @@ -132,7 +132,7 @@
   28.56    template <class T>
   28.57    struct lazy_disable_if_c<true, T> {};
   28.58  
   28.59 -  template <class Cond, class T> 
   28.60 +  template <class Cond, class T>
   28.61    struct lazy_disable_if : public lazy_disable_if_c<Cond::value, T> {};
   28.62  
   28.63  } // namespace lemon
    29.1 --- a/lemon/bits/vector_map.h	Sun Jul 13 16:46:56 2008 +0100
    29.2 +++ b/lemon/bits/vector_map.h	Sun Jul 13 19:51:02 2008 +0100
    29.3 @@ -1,6 +1,6 @@
    29.4 -/* -*- C++ -*-
    29.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    29.6   *
    29.7 - * This file is a part of LEMON, a generic C++ optimization library
    29.8 + * This file is a part of LEMON, a generic C++ optimization library.
    29.9   *
   29.10   * Copyright (C) 2003-2008
   29.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   29.12 @@ -49,16 +49,16 @@
   29.13    /// \tparam _Value The value type of the map.
   29.14    /// \todo Fix the doc: there is _Graph parameter instead of _Notifier.
   29.15    template <typename _Graph, typename _Item, typename _Value>
   29.16 -  class VectorMap 
   29.17 +  class VectorMap
   29.18      : public ItemSetTraits<_Graph, _Item>::ItemNotifier::ObserverBase {
   29.19    private:
   29.20 -		
   29.21 +
   29.22      /// The container type of the map.
   29.23 -    typedef std::vector<_Value> Container;	
   29.24 +    typedef std::vector<_Value> Container;
   29.25  
   29.26    public:
   29.27  
   29.28 -    /// The graph type of the map. 
   29.29 +    /// The graph type of the map.
   29.30      typedef _Graph Graph;
   29.31      /// The item type of the map.
   29.32      typedef _Item Item;
   29.33 @@ -93,9 +93,9 @@
   29.34        container.resize(Parent::notifier()->maxId() + 1);
   29.35      }
   29.36  
   29.37 -    /// \brief Constructor uses given value to initialize the map. 
   29.38 +    /// \brief Constructor uses given value to initialize the map.
   29.39      ///
   29.40 -    /// It constructs a map uses a given value to initialize the map. 
   29.41 +    /// It constructs a map uses a given value to initialize the map.
   29.42      /// It adds all the items of the graph to the map.
   29.43      VectorMap(const Graph& graph, const Value& value) {
   29.44        Parent::attach(graph.notifier(Item()));
   29.45 @@ -107,18 +107,18 @@
   29.46      /// Copy constructor.
   29.47      VectorMap(const VectorMap& _copy) : Parent() {
   29.48        if (_copy.attached()) {
   29.49 -	Parent::attach(*_copy.notifier());
   29.50 -	container = _copy.container;
   29.51 +        Parent::attach(*_copy.notifier());
   29.52 +        container = _copy.container;
   29.53        }
   29.54      }
   29.55  
   29.56      /// \brief Assign operator.
   29.57      ///
   29.58      /// This operator assigns for each item in the map the
   29.59 -    /// value mapped to the same item in the copied map.  
   29.60 +    /// value mapped to the same item in the copied map.
   29.61      /// The parameter map should be indiced with the same
   29.62      /// itemset because this assign operator does not change
   29.63 -    /// the container of the map. 
   29.64 +    /// the container of the map.
   29.65      VectorMap& operator=(const VectorMap& cmap) {
   29.66        return operator=<VectorMap>(cmap);
   29.67      }
   29.68 @@ -129,7 +129,7 @@
   29.69      /// The given parameter should be conform to the ReadMap
   29.70      /// concecpt and could be indiced by the current item set of
   29.71      /// the NodeMap. In this case the value for each item
   29.72 -    /// is assigned by the value of the given ReadMap. 
   29.73 +    /// is assigned by the value of the given ReadMap.
   29.74      template <typename CMap>
   29.75      VectorMap& operator=(const CMap& cmap) {
   29.76        checkConcept<concepts::ReadMap<Key, _Value>, CMap>();
   29.77 @@ -140,21 +140,21 @@
   29.78        }
   29.79        return *this;
   29.80      }
   29.81 -    
   29.82 +
   29.83    public:
   29.84  
   29.85      /// \brief The subcript operator.
   29.86      ///
   29.87      /// The subscript operator. The map can be subscripted by the
   29.88 -    /// actual items of the graph.      
   29.89 +    /// actual items of the graph.
   29.90      Reference operator[](const Key& key) {
   29.91        return container[Parent::notifier()->id(key)];
   29.92 -    } 
   29.93 -		
   29.94 +    }
   29.95 +
   29.96      /// \brief The const subcript operator.
   29.97      ///
   29.98      /// The const subscript operator. The map can be subscripted by the
   29.99 -    /// actual items of the graph. 
  29.100 +    /// actual items of the graph.
  29.101      ConstReference operator[](const Key& key) const {
  29.102        return container[Parent::notifier()->id(key)];
  29.103      }
  29.104 @@ -170,20 +170,20 @@
  29.105    protected:
  29.106  
  29.107      /// \brief Adds a new key to the map.
  29.108 -    ///		
  29.109 +    ///
  29.110      /// It adds a new key to the map. It called by the observer notifier
  29.111 -    /// and it overrides the add() member function of the observer base.     
  29.112 +    /// and it overrides the add() member function of the observer base.
  29.113      virtual void add(const Key& key) {
  29.114        int id = Parent::notifier()->id(key);
  29.115        if (id >= int(container.size())) {
  29.116 -	container.resize(id + 1);
  29.117 +        container.resize(id + 1);
  29.118        }
  29.119      }
  29.120  
  29.121      /// \brief Adds more new keys to the map.
  29.122 -    ///		
  29.123 +    ///
  29.124      /// It adds more new keys to the map. It called by the observer notifier
  29.125 -    /// and it overrides the add() member function of the observer base.     
  29.126 +    /// and it overrides the add() member function of the observer base.
  29.127      virtual void add(const std::vector<Key>& keys) {
  29.128        int max = container.size() - 1;
  29.129        for (int i = 0; i < int(keys.size()); ++i) {
  29.130 @@ -198,7 +198,7 @@
  29.131      /// \brief Erase a key from the map.
  29.132      ///
  29.133      /// Erase a key from the map. It called by the observer notifier
  29.134 -    /// and it overrides the erase() member function of the observer base.     
  29.135 +    /// and it overrides the erase() member function of the observer base.
  29.136      virtual void erase(const Key& key) {
  29.137        container[Parent::notifier()->id(key)] = Value();
  29.138      }
  29.139 @@ -206,18 +206,18 @@
  29.140      /// \brief Erase more keys from the map.
  29.141      ///
  29.142      /// Erase more keys from the map. It called by the observer notifier
  29.143 -    /// and it overrides the erase() member function of the observer base.     
  29.144 +    /// and it overrides the erase() member function of the observer base.
  29.145      virtual void erase(const std::vector<Key>& keys) {
  29.146        for (int i = 0; i < int(keys.size()); ++i) {
  29.147 -	container[Parent::notifier()->id(keys[i])] = Value();
  29.148 +        container[Parent::notifier()->id(keys[i])] = Value();
  29.149        }
  29.150      }
  29.151 -    
  29.152 +
  29.153      /// \brief Buildes the map.
  29.154 -    ///	
  29.155 +    ///
  29.156      /// It buildes the map. It called by the observer notifier
  29.157      /// and it overrides the build() member function of the observer base.
  29.158 -    virtual void build() { 
  29.159 +    virtual void build() {
  29.160        int size = Parent::notifier()->maxId() + 1;
  29.161        container.reserve(size);
  29.162        container.resize(size);
  29.163 @@ -226,13 +226,13 @@
  29.164      /// \brief Clear the map.
  29.165      ///
  29.166      /// It erase all items from the map. It called by the observer notifier
  29.167 -    /// and it overrides the clear() member function of the observer base.     
  29.168 -    virtual void clear() { 
  29.169 +    /// and it overrides the clear() member function of the observer base.
  29.170 +    virtual void clear() {
  29.171        container.clear();
  29.172      }
  29.173 -    
  29.174 +
  29.175    private:
  29.176 -		
  29.177 +
  29.178      Container container;
  29.179  
  29.180    };
    30.1 --- a/lemon/color.cc	Sun Jul 13 16:46:56 2008 +0100
    30.2 +++ b/lemon/color.cc	Sun Jul 13 19:51:02 2008 +0100
    30.3 @@ -1,6 +1,6 @@
    30.4 -/* -*- C++ -*-
    30.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    30.6   *
    30.7 - * This file is a part of LEMON, a generic C++ optimization library
    30.8 + * This file is a part of LEMON, a generic C++ optimization library.
    30.9   *
   30.10   * Copyright (C) 2003-2008
   30.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   30.12 @@ -24,7 +24,7 @@
   30.13  namespace lemon {
   30.14  
   30.15    const Color WHITE(1,1,1);
   30.16 -  
   30.17 +
   30.18    const Color BLACK(0,0,0);
   30.19    const Color RED(1,0,0);
   30.20    const Color GREEN(0,1,0);
   30.21 @@ -40,5 +40,5 @@
   30.22    const Color DARK_YELLOW(.5,.5,0);
   30.23    const Color DARK_MAGENTA(.5,0,.5);
   30.24    const Color DARK_CYAN(0,.5,.5);
   30.25 -    
   30.26 +
   30.27  } //namespace lemon
    31.1 --- a/lemon/color.h	Sun Jul 13 16:46:56 2008 +0100
    31.2 +++ b/lemon/color.h	Sun Jul 13 19:51:02 2008 +0100
    31.3 @@ -1,6 +1,6 @@
    31.4 -/* -*- C++ -*-
    31.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    31.6   *
    31.7 - * This file is a part of LEMON, a generic C++ optimization library
    31.8 + * This file is a part of LEMON, a generic C++ optimization library.
    31.9   *
   31.10   * Copyright (C) 2003-2008
   31.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   31.12 @@ -62,7 +62,7 @@
   31.13    };
   31.14  
   31.15    /// White color constant
   31.16 -  extern const Color WHITE;  
   31.17 +  extern const Color WHITE;
   31.18    /// Black color constant
   31.19    extern const Color BLACK;
   31.20    /// Red color constant
   31.21 @@ -130,14 +130,14 @@
   31.22          colors.push_back(Color(1,1,0));
   31.23          colors.push_back(Color(1,0,1));
   31.24          colors.push_back(Color(0,1,1));
   31.25 -      
   31.26 +
   31.27          colors.push_back(Color(.5,0,0));
   31.28          colors.push_back(Color(0,.5,0));
   31.29          colors.push_back(Color(0,0,.5));
   31.30          colors.push_back(Color(.5,.5,0));
   31.31          colors.push_back(Color(.5,0,.5));
   31.32          colors.push_back(Color(0,.5,.5));
   31.33 -      
   31.34 +
   31.35          colors.push_back(Color(.5,.5,.5));
   31.36          colors.push_back(Color(1,.5,.5));
   31.37          colors.push_back(Color(.5,1,.5));
   31.38 @@ -145,7 +145,7 @@
   31.39          colors.push_back(Color(1,1,.5));
   31.40          colors.push_back(Color(1,.5,1));
   31.41          colors.push_back(Color(.5,1,1));
   31.42 -      
   31.43 +
   31.44          colors.push_back(Color(1,.5,0));
   31.45          colors.push_back(Color(.5,1,0));
   31.46          colors.push_back(Color(1,0,.5));
   31.47 @@ -171,7 +171,7 @@
   31.48        colors[i%colors.size()]=c;
   31.49      }
   31.50      ///Adds a new color to the end of the color list.
   31.51 -    void add(const Color &c) 
   31.52 +    void add(const Color &c)
   31.53      {
   31.54        colors.push_back(c);
   31.55      }
   31.56 @@ -186,7 +186,7 @@
   31.57  
   31.58    ///Returns a \ref Color which is as different from the given parameter
   31.59    ///as it is possible.
   31.60 -  inline Color distantColor(const Color &c) 
   31.61 +  inline Color distantColor(const Color &c)
   31.62    {
   31.63      return Color(c.red()<.5?1:0,c.green()<.5?1:0,c.blue()<.5?1:0);
   31.64    }
    32.1 --- a/lemon/concept_check.h	Sun Jul 13 16:46:56 2008 +0100
    32.2 +++ b/lemon/concept_check.h	Sun Jul 13 19:51:02 2008 +0100
    32.3 @@ -1,6 +1,6 @@
    32.4 -/* -*- C++ -*-
    32.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    32.6   *
    32.7 - * This file is a part of LEMON, a generic C++ optimization library
    32.8 + * This file is a part of LEMON, a generic C++ optimization library.
    32.9   *
   32.10   * Copyright (C) 2003-2008
   32.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   32.12 @@ -36,7 +36,7 @@
   32.13  ///\file
   32.14  ///\brief Basic utilities for concept checking.
   32.15  ///
   32.16 -///\todo Are we still using BOOST concept checking utility? 
   32.17 +///\todo Are we still using BOOST concept checking utility?
   32.18  ///Is the BOOST copyright notice necessary?
   32.19  
   32.20  #ifndef LEMON_CONCEPT_CHECK_H
    33.1 --- a/lemon/concepts/digraph.h	Sun Jul 13 16:46:56 2008 +0100
    33.2 +++ b/lemon/concepts/digraph.h	Sun Jul 13 19:51:02 2008 +0100
    33.3 @@ -1,6 +1,6 @@
    33.4 -/* -*- C++ -*-
    33.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    33.6   *
    33.7 - * This file is a part of LEMON, a generic C++ optimization library
    33.8 + * This file is a part of LEMON, a generic C++ optimization library.
    33.9   *
   33.10   * Copyright (C) 2003-2008
   33.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   33.12 @@ -46,13 +46,13 @@
   33.13      class Digraph {
   33.14      private:
   33.15        ///Digraphs are \e not copy constructible. Use DigraphCopy() instead.
   33.16 -      
   33.17 +
   33.18        ///Digraphs are \e not copy constructible. Use DigraphCopy() instead.
   33.19        ///
   33.20        Digraph(const Digraph &) {};
   33.21        ///\brief Assignment of \ref Digraph "Digraph"s to another ones are
   33.22        ///\e not allowed. Use DigraphCopy() instead.
   33.23 -      
   33.24 +
   33.25        ///Assignment of \ref Digraph "Digraph"s to another ones are
   33.26        ///\e not allowed.  Use DigraphCopy() instead.
   33.27  
   33.28 @@ -95,23 +95,23 @@
   33.29          bool operator==(Node) const { return true; }
   33.30  
   33.31          /// Inequality operator
   33.32 -        
   33.33 +
   33.34          /// \sa operator==(Node n)
   33.35          ///
   33.36          bool operator!=(Node) const { return true; }
   33.37  
   33.38 -	/// Artificial ordering operator.
   33.39 -	
   33.40 -	/// To allow the use of digraph descriptors as key type in std::map or
   33.41 -	/// similar associative container we require this.
   33.42 -	///
   33.43 -	/// \note This operator only have to define some strict ordering of
   33.44 -	/// the items; this order has nothing to do with the iteration
   33.45 -	/// ordering of the items.
   33.46 -	bool operator<(Node) const { return false; }
   33.47 +        /// Artificial ordering operator.
   33.48 +
   33.49 +        /// To allow the use of digraph descriptors as key type in std::map or
   33.50 +        /// similar associative container we require this.
   33.51 +        ///
   33.52 +        /// \note This operator only have to define some strict ordering of
   33.53 +        /// the items; this order has nothing to do with the iteration
   33.54 +        /// ordering of the items.
   33.55 +        bool operator<(Node) const { return false; }
   33.56  
   33.57        };
   33.58 -    
   33.59 +
   33.60        /// This iterator goes through each node.
   33.61  
   33.62        /// This iterator goes through each node.
   33.63 @@ -129,7 +129,7 @@
   33.64          /// to an undefined value.
   33.65          NodeIt() { }
   33.66          /// Copy constructor.
   33.67 -        
   33.68 +
   33.69          /// Copy constructor.
   33.70          ///
   33.71          NodeIt(const NodeIt& n) : Node(n) { }
   33.72 @@ -145,9 +145,9 @@
   33.73          NodeIt(const Digraph&) { }
   33.74          /// Node -> NodeIt conversion.
   33.75  
   33.76 -        /// Sets the iterator to the node of \c the digraph pointed by 
   33.77 -	/// the trivial iterator.
   33.78 -        /// This feature necessitates that each time we 
   33.79 +        /// Sets the iterator to the node of \c the digraph pointed by
   33.80 +        /// the trivial iterator.
   33.81 +        /// This feature necessitates that each time we
   33.82          /// iterate the arc-set, the iteration order is the same.
   33.83          NodeIt(const Digraph&, const Node&) { }
   33.84          /// Next node.
   33.85 @@ -156,8 +156,8 @@
   33.86          ///
   33.87          NodeIt& operator++() { return *this; }
   33.88        };
   33.89 -    
   33.90 -    
   33.91 +
   33.92 +
   33.93        /// Class for identifying an arc of the digraph
   33.94  
   33.95        /// This class identifies an arc of the digraph. It also serves
   33.96 @@ -191,17 +191,17 @@
   33.97          ///
   33.98          bool operator!=(Arc) const { return true; }
   33.99  
  33.100 -	/// Artificial ordering operator.
  33.101 -	
  33.102 -	/// To allow the use of digraph descriptors as key type in std::map or
  33.103 -	/// similar associative container we require this.
  33.104 -	///
  33.105 -	/// \note This operator only have to define some strict ordering of
  33.106 -	/// the items; this order has nothing to do with the iteration
  33.107 -	/// ordering of the items.
  33.108 -	bool operator<(Arc) const { return false; }
  33.109 +        /// Artificial ordering operator.
  33.110 +
  33.111 +        /// To allow the use of digraph descriptors as key type in std::map or
  33.112 +        /// similar associative container we require this.
  33.113 +        ///
  33.114 +        /// \note This operator only have to define some strict ordering of
  33.115 +        /// the items; this order has nothing to do with the iteration
  33.116 +        /// ordering of the items.
  33.117 +        bool operator<(Arc) const { return false; }
  33.118        };
  33.119 -    
  33.120 +
  33.121        /// This iterator goes trough the outgoing arcs of a node.
  33.122  
  33.123        /// This iterator goes trough the \e outgoing arcs of a certain node
  33.124 @@ -213,7 +213,7 @@
  33.125        /// int count=0;
  33.126        /// for (Digraph::OutArcIt e(g, n); e!=INVALID; ++e) ++count;
  33.127        ///\endcode
  33.128 -    
  33.129 +
  33.130        class OutArcIt : public Arc {
  33.131        public:
  33.132          /// Default constructor
  33.133 @@ -232,19 +232,19 @@
  33.134          ///
  33.135          OutArcIt(Invalid) { }
  33.136          /// This constructor sets the iterator to the first outgoing arc.
  33.137 -    
  33.138 +
  33.139          /// This constructor sets the iterator to the first outgoing arc of
  33.140          /// the node.
  33.141          OutArcIt(const Digraph&, const Node&) { }
  33.142          /// Arc -> OutArcIt conversion
  33.143  
  33.144          /// Sets the iterator to the value of the trivial iterator.
  33.145 -	/// This feature necessitates that each time we 
  33.146 +        /// This feature necessitates that each time we
  33.147          /// iterate the arc-set, the iteration order is the same.
  33.148          OutArcIt(const Digraph&, const Arc&) { }
  33.149          ///Next outgoing arc
  33.150 -        
  33.151 -        /// Assign the iterator to the next 
  33.152 +
  33.153 +        /// Assign the iterator to the next
  33.154          /// outgoing arc of the corresponding node.
  33.155          OutArcIt& operator++() { return *this; }
  33.156        };
  33.157 @@ -279,14 +279,14 @@
  33.158          ///
  33.159          InArcIt(Invalid) { }
  33.160          /// This constructor sets the iterator to first incoming arc.
  33.161 -    
  33.162 +
  33.163          /// This constructor set the iterator to the first incoming arc of
  33.164          /// the node.
  33.165          InArcIt(const Digraph&, const Node&) { }
  33.166          /// Arc -> InArcIt conversion
  33.167  
  33.168          /// Sets the iterator to the value of the trivial iterator \c e.
  33.169 -        /// This feature necessitates that each time we 
  33.170 +        /// This feature necessitates that each time we
  33.171          /// iterate the arc-set, the iteration order is the same.
  33.172          InArcIt(const Digraph&, const Arc&) { }
  33.173          /// Next incoming arc
  33.174 @@ -322,18 +322,18 @@
  33.175          ///
  33.176          ArcIt(Invalid) { }
  33.177          /// This constructor sets the iterator to the first arc.
  33.178 -    
  33.179 +
  33.180          /// This constructor sets the iterator to the first arc of \c g.
  33.181          ///@param g the digraph
  33.182          ArcIt(const Digraph& g) { ignore_unused_variable_warning(g); }
  33.183          /// Arc -> ArcIt conversion
  33.184  
  33.185          /// Sets the iterator to the value of the trivial iterator \c e.
  33.186 -        /// This feature necessitates that each time we 
  33.187 +        /// This feature necessitates that each time we
  33.188          /// iterate the arc-set, the iteration order is the same.
  33.189 -        ArcIt(const Digraph&, const Arc&) { } 
  33.190 +        ArcIt(const Digraph&, const Arc&) { }
  33.191          ///Next arc
  33.192 -        
  33.193 +
  33.194          /// Assign the iterator to the next arc.
  33.195          ArcIt& operator++() { return *this; }
  33.196        };
  33.197 @@ -349,26 +349,26 @@
  33.198        Node source(Arc) const { return INVALID; }
  33.199  
  33.200        /// \brief Returns the ID of the node.
  33.201 -      int id(Node) const { return -1; } 
  33.202 +      int id(Node) const { return -1; }
  33.203  
  33.204        /// \brief Returns the ID of the arc.
  33.205 -      int id(Arc) const { return -1; } 
  33.206 +      int id(Arc) const { return -1; }
  33.207  
  33.208        /// \brief Returns the node with the given ID.
  33.209        ///
  33.210        /// \pre The argument should be a valid node ID in the graph.
  33.211 -      Node nodeFromId(int) const { return INVALID; } 
  33.212 +      Node nodeFromId(int) const { return INVALID; }
  33.213  
  33.214        /// \brief Returns the arc with the given ID.
  33.215        ///
  33.216        /// \pre The argument should be a valid arc ID in the graph.
  33.217 -      Arc arcFromId(int) const { return INVALID; } 
  33.218 +      Arc arcFromId(int) const { return INVALID; }
  33.219  
  33.220        /// \brief Returns an upper bound on the node IDs.
  33.221 -      int maxNodeId() const { return -1; } 
  33.222 +      int maxNodeId() const { return -1; }
  33.223  
  33.224        /// \brief Returns an upper bound on the arc IDs.
  33.225 -      int maxArcId() const { return -1; } 
  33.226 +      int maxArcId() const { return -1; }
  33.227  
  33.228        void first(Node&) const {}
  33.229        void next(Node&) const {}
  33.230 @@ -389,9 +389,9 @@
  33.231        Arc fromId(int, Arc) const { return INVALID; }
  33.232  
  33.233        // Dummy parameter.
  33.234 -      int maxId(Node) const { return -1; } 
  33.235 +      int maxId(Node) const { return -1; }
  33.236        // Dummy parameter.
  33.237 -      int maxId(Arc) const { return -1; } 
  33.238 +      int maxId(Arc) const { return -1; }
  33.239  
  33.240        /// \brief The base node of the iterator.
  33.241        ///
  33.242 @@ -423,10 +423,10 @@
  33.243        Node oppositeNode(const Node&, const Arc&) const { return INVALID; }
  33.244  
  33.245        /// \brief Read write map of the nodes to type \c T.
  33.246 -      /// 
  33.247 +      ///
  33.248        /// ReadWrite map of the nodes to type \c T.
  33.249        /// \sa Reference
  33.250 -      template<class T> 
  33.251 +      template<class T>
  33.252        class NodeMap : public ReadWriteMap< Node, T > {
  33.253        public:
  33.254  
  33.255 @@ -439,9 +439,9 @@
  33.256          NodeMap(const NodeMap& nm) : ReadWriteMap< Node, T >(nm) { }
  33.257          ///Assignment operator
  33.258          template <typename CMap>
  33.259 -        NodeMap& operator=(const CMap&) { 
  33.260 +        NodeMap& operator=(const CMap&) {
  33.261            checkConcept<ReadMap<Node, T>, CMap>();
  33.262 -          return *this; 
  33.263 +          return *this;
  33.264          }
  33.265        };
  33.266  
  33.267 @@ -449,7 +449,7 @@
  33.268        ///
  33.269        /// Reference map of the arcs to type \c T.
  33.270        /// \sa Reference
  33.271 -      template<class T> 
  33.272 +      template<class T>
  33.273        class ArcMap : public ReadWriteMap<Arc,T> {
  33.274        public:
  33.275  
  33.276 @@ -461,9 +461,9 @@
  33.277          ArcMap(const ArcMap& em) : ReadWriteMap<Arc,T>(em) { }
  33.278          ///Assignment operator
  33.279          template <typename CMap>
  33.280 -        ArcMap& operator=(const CMap&) { 
  33.281 +        ArcMap& operator=(const CMap&) {
  33.282            checkConcept<ReadMap<Arc, T>, CMap>();
  33.283 -          return *this; 
  33.284 +          return *this;
  33.285          }
  33.286        };
  33.287  
  33.288 @@ -471,14 +471,14 @@
  33.289        struct Constraints {
  33.290          void constraints() {
  33.291            checkConcept<IterableDigraphComponent<>, _Digraph>();
  33.292 -	  checkConcept<IDableDigraphComponent<>, _Digraph>();
  33.293 +          checkConcept<IDableDigraphComponent<>, _Digraph>();
  33.294            checkConcept<MappableDigraphComponent<>, _Digraph>();
  33.295          }
  33.296        };
  33.297  
  33.298      };
  33.299 -    
  33.300 -  } //namespace concepts  
  33.301 +
  33.302 +  } //namespace concepts
  33.303  } //namespace lemon
  33.304  
  33.305  
    34.1 --- a/lemon/concepts/graph.h	Sun Jul 13 16:46:56 2008 +0100
    34.2 +++ b/lemon/concepts/graph.h	Sun Jul 13 19:51:02 2008 +0100
    34.3 @@ -1,6 +1,6 @@
    34.4 -/* -*- C++ -*-
    34.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    34.6   *
    34.7 - * This file is a part of LEMON, a generic C++ optimization library
    34.8 + * This file is a part of LEMON, a generic C++ optimization library.
    34.9   *
   34.10   * Copyright (C) 2003-2008
   34.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   34.12 @@ -65,23 +65,23 @@
   34.13      /// OutArcIt iterates on the same edges but with opposite
   34.14      /// direction. The IncEdgeIt iterates also on the same edges
   34.15      /// as the OutArcIt and InArcIt but it is not convertible to Arc just
   34.16 -    /// to Edge.  
   34.17 +    /// to Edge.
   34.18      class Graph {
   34.19      public:
   34.20        /// \brief The undirected graph should be tagged by the
   34.21        /// UndirectedTag.
   34.22        ///
   34.23        /// The undirected graph should be tagged by the UndirectedTag. This
   34.24 -      /// tag helps the enable_if technics to make compile time 
   34.25 -      /// specializations for undirected graphs.  
   34.26 +      /// tag helps the enable_if technics to make compile time
   34.27 +      /// specializations for undirected graphs.
   34.28        typedef True UndirectedTag;
   34.29  
   34.30 -      /// \brief The base type of node iterators, 
   34.31 +      /// \brief The base type of node iterators,
   34.32        /// or in other words, the trivial node iterator.
   34.33        ///
   34.34        /// This is the base type of each node iterator,
   34.35        /// thus each kind of node iterator converts to this.
   34.36 -      /// More precisely each kind of node iterator should be inherited 
   34.37 +      /// More precisely each kind of node iterator should be inherited
   34.38        /// from the trivial node iterator.
   34.39        class Node {
   34.40        public:
   34.41 @@ -108,23 +108,23 @@
   34.42          bool operator==(Node) const { return true; }
   34.43  
   34.44          /// Inequality operator
   34.45 -        
   34.46 +
   34.47          /// \sa operator==(Node n)
   34.48          ///
   34.49          bool operator!=(Node) const { return true; }
   34.50  
   34.51 -	/// Artificial ordering operator.
   34.52 -	
   34.53 -	/// To allow the use of graph descriptors as key type in std::map or
   34.54 -	/// similar associative container we require this.
   34.55 -	///
   34.56 -	/// \note This operator only have to define some strict ordering of
   34.57 -	/// the items; this order has nothing to do with the iteration
   34.58 -	/// ordering of the items.
   34.59 -	bool operator<(Node) const { return false; }
   34.60 +        /// Artificial ordering operator.
   34.61 +
   34.62 +        /// To allow the use of graph descriptors as key type in std::map or
   34.63 +        /// similar associative container we require this.
   34.64 +        ///
   34.65 +        /// \note This operator only have to define some strict ordering of
   34.66 +        /// the items; this order has nothing to do with the iteration
   34.67 +        /// ordering of the items.
   34.68 +        bool operator<(Node) const { return false; }
   34.69  
   34.70        };
   34.71 -    
   34.72 +
   34.73        /// This iterator goes through each node.
   34.74  
   34.75        /// This iterator goes through each node.
   34.76 @@ -142,7 +142,7 @@
   34.77          /// to an undefined value.
   34.78          NodeIt() { }
   34.79          /// Copy constructor.
   34.80 -        
   34.81 +
   34.82          /// Copy constructor.
   34.83          ///
   34.84          NodeIt(const NodeIt& n) : Node(n) { }
   34.85 @@ -158,9 +158,9 @@
   34.86          NodeIt(const Graph&) { }
   34.87          /// Node -> NodeIt conversion.
   34.88  
   34.89 -        /// Sets the iterator to the node of \c the graph pointed by 
   34.90 -	/// the trivial iterator.
   34.91 -        /// This feature necessitates that each time we 
   34.92 +        /// Sets the iterator to the node of \c the graph pointed by
   34.93 +        /// the trivial iterator.
   34.94 +        /// This feature necessitates that each time we
   34.95          /// iterate the arc-set, the iteration order is the same.
   34.96          NodeIt(const Graph&, const Node&) { }
   34.97          /// Next node.
   34.98 @@ -169,8 +169,8 @@
   34.99          ///
  34.100          NodeIt& operator++() { return *this; }
  34.101        };
  34.102 -    
  34.103 -    
  34.104 +
  34.105 +
  34.106        /// The base type of the edge iterators.
  34.107  
  34.108        /// The base type of the edge iterators.
  34.109 @@ -203,15 +203,15 @@
  34.110          ///
  34.111          bool operator!=(Edge) const { return true; }
  34.112  
  34.113 -	/// Artificial ordering operator.
  34.114 -	
  34.115 -	/// To allow the use of graph descriptors as key type in std::map or
  34.116 -	/// similar associative container we require this.
  34.117 -	///
  34.118 -	/// \note This operator only have to define some strict ordering of
  34.119 -	/// the items; this order has nothing to do with the iteration
  34.120 -	/// ordering of the items.
  34.121 -	bool operator<(Edge) const { return false; }
  34.122 +        /// Artificial ordering operator.
  34.123 +
  34.124 +        /// To allow the use of graph descriptors as key type in std::map or
  34.125 +        /// similar associative container we require this.
  34.126 +        ///
  34.127 +        /// \note This operator only have to define some strict ordering of
  34.128 +        /// the items; this order has nothing to do with the iteration
  34.129 +        /// ordering of the items.
  34.130 +        bool operator<(Edge) const { return false; }
  34.131        };
  34.132  
  34.133        /// This iterator goes through each edge.
  34.134 @@ -241,32 +241,32 @@
  34.135          ///
  34.136          EdgeIt(Invalid) { }
  34.137          /// This constructor sets the iterator to the first edge.
  34.138 -    
  34.139 +
  34.140          /// This constructor sets the iterator to the first edge.
  34.141          EdgeIt(const Graph&) { }
  34.142          /// Edge -> EdgeIt conversion
  34.143  
  34.144          /// Sets the iterator to the value of the trivial iterator.
  34.145          /// This feature necessitates that each time we
  34.146 -        /// iterate the edge-set, the iteration order is the 
  34.147 -	/// same.
  34.148 -        EdgeIt(const Graph&, const Edge&) { } 
  34.149 +        /// iterate the edge-set, the iteration order is the
  34.150 +        /// same.
  34.151 +        EdgeIt(const Graph&, const Edge&) { }
  34.152          /// Next edge
  34.153 -        
  34.154 +
  34.155          /// Assign the iterator to the next edge.
  34.156          EdgeIt& operator++() { return *this; }
  34.157        };
  34.158  
  34.159 -      /// \brief This iterator goes trough the incident undirected 
  34.160 +      /// \brief This iterator goes trough the incident undirected
  34.161        /// arcs of a node.
  34.162        ///
  34.163        /// This iterator goes trough the incident edges
  34.164 -      /// of a certain node of a graph. You should assume that the 
  34.165 +      /// of a certain node of a graph. You should assume that the
  34.166        /// loop arcs will be iterated twice.
  34.167 -      /// 
  34.168 +      ///
  34.169        /// Its usage is quite simple, for example you can compute the
  34.170        /// degree (i.e. count the number of incident arcs of a node \c n
  34.171 -      /// in graph \c g of type \c Graph as follows. 
  34.172 +      /// in graph \c g of type \c Graph as follows.
  34.173        ///
  34.174        ///\code
  34.175        /// int count=0;
  34.176 @@ -290,20 +290,20 @@
  34.177          ///
  34.178          IncEdgeIt(Invalid) { }
  34.179          /// This constructor sets the iterator to first incident arc.
  34.180 -    
  34.181 +
  34.182          /// This constructor set the iterator to the first incident arc of
  34.183          /// the node.
  34.184          IncEdgeIt(const Graph&, const Node&) { }
  34.185          /// Edge -> IncEdgeIt conversion
  34.186  
  34.187          /// Sets the iterator to the value of the trivial iterator \c e.
  34.188 -        /// This feature necessitates that each time we 
  34.189 +        /// This feature necessitates that each time we
  34.190          /// iterate the arc-set, the iteration order is the same.
  34.191          IncEdgeIt(const Graph&, const Edge&) { }
  34.192          /// Next incident arc
  34.193  
  34.194          /// Assign the iterator to the next incident arc
  34.195 -	/// of the corresponding node.
  34.196 +        /// of the corresponding node.
  34.197          IncEdgeIt& operator++() { return *this; }
  34.198        };
  34.199  
  34.200 @@ -340,17 +340,17 @@
  34.201          ///
  34.202          bool operator!=(Arc) const { return true; }
  34.203  
  34.204 -	/// Artificial ordering operator.
  34.205 -	
  34.206 -	/// To allow the use of graph descriptors as key type in std::map or
  34.207 -	/// similar associative container we require this.
  34.208 -	///
  34.209 -	/// \note This operator only have to define some strict ordering of
  34.210 -	/// the items; this order has nothing to do with the iteration
  34.211 -	/// ordering of the items.
  34.212 -	bool operator<(Arc) const { return false; }
  34.213 -	
  34.214 -      }; 
  34.215 +        /// Artificial ordering operator.
  34.216 +
  34.217 +        /// To allow the use of graph descriptors as key type in std::map or
  34.218 +        /// similar associative container we require this.
  34.219 +        ///
  34.220 +        /// \note This operator only have to define some strict ordering of
  34.221 +        /// the items; this order has nothing to do with the iteration
  34.222 +        /// ordering of the items.
  34.223 +        bool operator<(Arc) const { return false; }
  34.224 +
  34.225 +      };
  34.226        /// This iterator goes through each directed arc.
  34.227  
  34.228        /// This iterator goes through each arc of a graph.
  34.229 @@ -378,22 +378,22 @@
  34.230          ///
  34.231          ArcIt(Invalid) { }
  34.232          /// This constructor sets the iterator to the first arc.
  34.233 -    
  34.234 +
  34.235          /// This constructor sets the iterator to the first arc of \c g.
  34.236          ///@param g the graph
  34.237          ArcIt(const Graph &g) { ignore_unused_variable_warning(g); }
  34.238          /// Arc -> ArcIt conversion
  34.239  
  34.240          /// Sets the iterator to the value of the trivial iterator \c e.
  34.241 -        /// This feature necessitates that each time we 
  34.242 +        /// This feature necessitates that each time we
  34.243          /// iterate the arc-set, the iteration order is the same.
  34.244 -        ArcIt(const Graph&, const Arc&) { } 
  34.245 +        ArcIt(const Graph&, const Arc&) { }
  34.246          ///Next arc
  34.247 -        
  34.248 +
  34.249          /// Assign the iterator to the next arc.
  34.250          ArcIt& operator++() { return *this; }
  34.251        };
  34.252 -   
  34.253 +
  34.254        /// This iterator goes trough the outgoing directed arcs of a node.
  34.255  
  34.256        /// This iterator goes trough the \e outgoing arcs of a certain node
  34.257 @@ -405,7 +405,7 @@
  34.258        /// int count=0;
  34.259        /// for (Graph::OutArcIt e(g, n); e!=INVALID; ++e) ++count;
  34.260        ///\endcode
  34.261 -    
  34.262 +
  34.263        class OutArcIt : public Arc {
  34.264        public:
  34.265          /// Default constructor
  34.266 @@ -424,24 +424,24 @@
  34.267          ///
  34.268          OutArcIt(Invalid) { }
  34.269          /// This constructor sets the iterator to the first outgoing arc.
  34.270 -    
  34.271 +
  34.272          /// This constructor sets the iterator to the first outgoing arc of
  34.273          /// the node.
  34.274          ///@param n the node
  34.275          ///@param g the graph
  34.276          OutArcIt(const Graph& n, const Node& g) {
  34.277 -	  ignore_unused_variable_warning(n);
  34.278 -	  ignore_unused_variable_warning(g);
  34.279 -	}
  34.280 +          ignore_unused_variable_warning(n);
  34.281 +          ignore_unused_variable_warning(g);
  34.282 +        }
  34.283          /// Arc -> OutArcIt conversion
  34.284  
  34.285          /// Sets the iterator to the value of the trivial iterator.
  34.286 -	/// This feature necessitates that each time we 
  34.287 +        /// This feature necessitates that each time we
  34.288          /// iterate the arc-set, the iteration order is the same.
  34.289          OutArcIt(const Graph&, const Arc&) { }
  34.290          ///Next outgoing arc
  34.291 -        
  34.292 -        /// Assign the iterator to the next 
  34.293 +
  34.294 +        /// Assign the iterator to the next
  34.295          /// outgoing arc of the corresponding node.
  34.296          OutArcIt& operator++() { return *this; }
  34.297        };
  34.298 @@ -476,19 +476,19 @@
  34.299          ///
  34.300          InArcIt(Invalid) { }
  34.301          /// This constructor sets the iterator to first incoming arc.
  34.302 -    
  34.303 +
  34.304          /// This constructor set the iterator to the first incoming arc of
  34.305          /// the node.
  34.306          ///@param n the node
  34.307          ///@param g the graph
  34.308 -        InArcIt(const Graph& g, const Node& n) { 
  34.309 -	  ignore_unused_variable_warning(n);
  34.310 -	  ignore_unused_variable_warning(g);
  34.311 -	}
  34.312 +        InArcIt(const Graph& g, const Node& n) {
  34.313 +          ignore_unused_variable_warning(n);
  34.314 +          ignore_unused_variable_warning(g);
  34.315 +        }
  34.316          /// Arc -> InArcIt conversion
  34.317  
  34.318          /// Sets the iterator to the value of the trivial iterator \c e.
  34.319 -        /// This feature necessitates that each time we 
  34.320 +        /// This feature necessitates that each time we
  34.321          /// iterate the arc-set, the iteration order is the same.
  34.322          InArcIt(const Graph&, const Arc&) { }
  34.323          /// Next incoming arc
  34.324 @@ -499,10 +499,10 @@
  34.325        };
  34.326  
  34.327        /// \brief Read write map of the nodes to type \c T.
  34.328 -      /// 
  34.329 +      ///
  34.330        /// ReadWrite map of the nodes to type \c T.
  34.331        /// \sa Reference
  34.332 -      template<class T> 
  34.333 +      template<class T>
  34.334        class NodeMap : public ReadWriteMap< Node, T >
  34.335        {
  34.336        public:
  34.337 @@ -516,9 +516,9 @@
  34.338          NodeMap(const NodeMap& nm) : ReadWriteMap< Node, T >(nm) { }
  34.339          ///Assignment operator
  34.340          template <typename CMap>
  34.341 -        NodeMap& operator=(const CMap&) { 
  34.342 +        NodeMap& operator=(const CMap&) {
  34.343            checkConcept<ReadMap<Node, T>, CMap>();
  34.344 -          return *this; 
  34.345 +          return *this;
  34.346          }
  34.347        };
  34.348  
  34.349 @@ -526,7 +526,7 @@
  34.350        ///
  34.351        /// Reference map of the directed arcs to type \c T.
  34.352        /// \sa Reference
  34.353 -      template<class T> 
  34.354 +      template<class T>
  34.355        class ArcMap : public ReadWriteMap<Arc,T>
  34.356        {
  34.357        public:
  34.358 @@ -539,9 +539,9 @@
  34.359          ArcMap(const ArcMap& em) : ReadWriteMap<Arc,T>(em) { }
  34.360          ///Assignment operator
  34.361          template <typename CMap>
  34.362 -        ArcMap& operator=(const CMap&) { 
  34.363 +        ArcMap& operator=(const CMap&) {
  34.364            checkConcept<ReadMap<Arc, T>, CMap>();
  34.365 -          return *this; 
  34.366 +          return *this;
  34.367          }
  34.368        };
  34.369  
  34.370 @@ -549,7 +549,7 @@
  34.371  
  34.372        /// Reference map of the arcs to type \c T.
  34.373        /// \sa Reference
  34.374 -      template<class T> 
  34.375 +      template<class T>
  34.376        class EdgeMap : public ReadWriteMap<Edge,T>
  34.377        {
  34.378        public:
  34.379 @@ -562,9 +562,9 @@
  34.380          EdgeMap(const EdgeMap& em) : ReadWriteMap<Edge,T>(em) {}
  34.381          ///Assignment operator
  34.382          template <typename CMap>
  34.383 -        EdgeMap& operator=(const CMap&) { 
  34.384 +        EdgeMap& operator=(const CMap&) {
  34.385            checkConcept<ReadMap<Edge, T>, CMap>();
  34.386 -          return *this; 
  34.387 +          return *this;
  34.388          }
  34.389        };
  34.390  
  34.391 @@ -573,7 +573,7 @@
  34.392        /// Direct the given edge. The returned arc source
  34.393        /// will be the given node.
  34.394        Arc direct(const Edge&, const Node&) const {
  34.395 -	return INVALID;
  34.396 +        return INVALID;
  34.397        }
  34.398  
  34.399        /// \brief Direct the given edge.
  34.400 @@ -583,7 +583,7 @@
  34.401        /// from the bool parameter. The source of the edge and
  34.402        /// the directed arc is the same when the given bool is true.
  34.403        Arc direct(const Edge&, bool) const {
  34.404 -	return INVALID;
  34.405 +        return INVALID;
  34.406        }
  34.407  
  34.408        /// \brief Returns true if the arc has default orientation.
  34.409 @@ -625,37 +625,37 @@
  34.410        Node target(Arc) const { return INVALID; }
  34.411  
  34.412        /// \brief Returns the id of the node.
  34.413 -      int id(Node) const { return -1; } 
  34.414 +      int id(Node) const { return -1; }
  34.415  
  34.416        /// \brief Returns the id of the edge.
  34.417 -      int id(Edge) const { return -1; } 
  34.418 +      int id(Edge) const { return -1; }
  34.419  
  34.420        /// \brief Returns the id of the arc.
  34.421 -      int id(Arc) const { return -1; } 
  34.422 +      int id(Arc) const { return -1; }
  34.423  
  34.424        /// \brief Returns the node with the given id.
  34.425        ///
  34.426        /// \pre The argument should be a valid node id in the graph.
  34.427 -      Node nodeFromId(int) const { return INVALID; } 
  34.428 +      Node nodeFromId(int) const { return INVALID; }
  34.429  
  34.430        /// \brief Returns the edge with the given id.
  34.431        ///
  34.432        /// \pre The argument should be a valid edge id in the graph.
  34.433 -      Edge edgeFromId(int) const { return INVALID; } 
  34.434 +      Edge edgeFromId(int) const { return INVALID; }
  34.435  
  34.436        /// \brief Returns the arc with the given id.
  34.437        ///
  34.438        /// \pre The argument should be a valid arc id in the graph.
  34.439 -      Arc arcFromId(int) const { return INVALID; } 
  34.440 +      Arc arcFromId(int) const { return INVALID; }
  34.441  
  34.442        /// \brief Returns an upper bound on the node IDs.
  34.443 -      int maxNodeId() const { return -1; } 
  34.444 +      int maxNodeId() const { return -1; }
  34.445  
  34.446        /// \brief Returns an upper bound on the edge IDs.
  34.447 -      int maxEdgeId() const { return -1; } 
  34.448 +      int maxEdgeId() const { return -1; }
  34.449  
  34.450        /// \brief Returns an upper bound on the arc IDs.
  34.451 -      int maxArcId() const { return -1; } 
  34.452 +      int maxArcId() const { return -1; }
  34.453  
  34.454        void first(Node&) const {}
  34.455        void next(Node&) const {}
  34.456 @@ -683,61 +683,61 @@
  34.457        Arc fromId(int, Arc) const { return INVALID; }
  34.458  
  34.459        // Dummy parameter.
  34.460 -      int maxId(Node) const { return -1; } 
  34.461 +      int maxId(Node) const { return -1; }
  34.462        // Dummy parameter.
  34.463 -      int maxId(Edge) const { return -1; } 
  34.464 +      int maxId(Edge) const { return -1; }
  34.465        // Dummy parameter.
  34.466 -      int maxId(Arc) const { return -1; } 
  34.467 +      int maxId(Arc) const { return -1; }
  34.468  
  34.469        /// \brief Base node of the iterator
  34.470        ///
  34.471        /// Returns the base node (the source in this case) of the iterator
  34.472        Node baseNode(OutArcIt e) const {
  34.473 -	return source(e);
  34.474 +        return source(e);
  34.475        }
  34.476        /// \brief Running node of the iterator
  34.477        ///
  34.478        /// Returns the running node (the target in this case) of the
  34.479        /// iterator
  34.480        Node runningNode(OutArcIt e) const {
  34.481 -	return target(e);
  34.482 +        return target(e);
  34.483        }
  34.484  
  34.485        /// \brief Base node of the iterator
  34.486        ///
  34.487        /// Returns the base node (the target in this case) of the iterator
  34.488        Node baseNode(InArcIt e) const {
  34.489 -	return target(e);
  34.490 +        return target(e);
  34.491        }
  34.492        /// \brief Running node of the iterator
  34.493        ///
  34.494        /// Returns the running node (the source in this case) of the
  34.495        /// iterator
  34.496        Node runningNode(InArcIt e) const {
  34.497 -	return source(e);
  34.498 +        return source(e);
  34.499        }
  34.500  
  34.501        /// \brief Base node of the iterator
  34.502        ///
  34.503        /// Returns the base node of the iterator
  34.504        Node baseNode(IncEdgeIt) const {
  34.505 -	return INVALID;
  34.506 +        return INVALID;
  34.507        }
  34.508 -      
  34.509 +
  34.510        /// \brief Running node of the iterator
  34.511        ///
  34.512        /// Returns the running node of the iterator
  34.513        Node runningNode(IncEdgeIt) const {
  34.514 -	return INVALID;
  34.515 +        return INVALID;
  34.516        }
  34.517  
  34.518        template <typename _Graph>
  34.519        struct Constraints {
  34.520 -	void constraints() {
  34.521 -	  checkConcept<IterableGraphComponent<>, _Graph>();
  34.522 -	  checkConcept<IDableGraphComponent<>, _Graph>();
  34.523 -	  checkConcept<MappableGraphComponent<>, _Graph>();
  34.524 -	}
  34.525 +        void constraints() {
  34.526 +          checkConcept<IterableGraphComponent<>, _Graph>();
  34.527 +          checkConcept<IDableGraphComponent<>, _Graph>();
  34.528 +          checkConcept<MappableGraphComponent<>, _Graph>();
  34.529 +        }
  34.530        };
  34.531  
  34.532      };
    35.1 --- a/lemon/concepts/graph_components.h	Sun Jul 13 16:46:56 2008 +0100
    35.2 +++ b/lemon/concepts/graph_components.h	Sun Jul 13 19:51:02 2008 +0100
    35.3 @@ -1,6 +1,6 @@
    35.4 -/* -*- C++ -*-
    35.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    35.6   *
    35.7 - * This file is a part of LEMON, a generic C++ optimization library
    35.8 + * This file is a part of LEMON, a generic C++ optimization library.
    35.9   *
   35.10   * Copyright (C) 2003-2008
   35.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   35.12 @@ -49,7 +49,7 @@
   35.13      class GraphItem {
   35.14      public:
   35.15        /// \brief Default constructor.
   35.16 -      ///      
   35.17 +      ///
   35.18        /// \warning The default constructor is not required to set
   35.19        /// the item to some well-defined value. So you should consider it
   35.20        /// as uninitialized.
   35.21 @@ -66,7 +66,7 @@
   35.22        GraphItem(Invalid) {}
   35.23        /// \brief Assign operator for nodes.
   35.24        ///
   35.25 -      /// The nodes are assignable. 
   35.26 +      /// The nodes are assignable.
   35.27        ///
   35.28        GraphItem& operator=(GraphItem const&) { return *this; }
   35.29        /// \brief Equality operator.
   35.30 @@ -92,27 +92,27 @@
   35.31  
   35.32        template<typename _GraphItem>
   35.33        struct Constraints {
   35.34 -	void constraints() {
   35.35 -	  _GraphItem i1;
   35.36 -	  _GraphItem i2 = i1;
   35.37 -	  _GraphItem i3 = INVALID;
   35.38 -	  
   35.39 -	  i1 = i2 = i3;
   35.40 +        void constraints() {
   35.41 +          _GraphItem i1;
   35.42 +          _GraphItem i2 = i1;
   35.43 +          _GraphItem i3 = INVALID;
   35.44  
   35.45 -	  bool b;
   35.46 -	  //	  b = (ia == ib) && (ia != ib) && (ia < ib);
   35.47 -	  b = (ia == ib) && (ia != ib);
   35.48 -	  b = (ia == INVALID) && (ib != INVALID);
   35.49 +          i1 = i2 = i3;
   35.50 +
   35.51 +          bool b;
   35.52 +          //          b = (ia == ib) && (ia != ib) && (ia < ib);
   35.53 +          b = (ia == ib) && (ia != ib);
   35.54 +          b = (ia == INVALID) && (ib != INVALID);
   35.55            b = (ia < ib);
   35.56 -	}
   35.57 +        }
   35.58  
   35.59 -	const _GraphItem &ia;
   35.60 -	const _GraphItem &ib;
   35.61 +        const _GraphItem &ia;
   35.62 +        const _GraphItem &ib;
   35.63        };
   35.64      };
   35.65  
   35.66      /// \brief An empty base directed graph class.
   35.67 -    ///  
   35.68 +    ///
   35.69      /// This class provides the minimal set of features needed for a
   35.70      /// directed graph structure. All digraph concepts have to be
   35.71      /// conform to this base directed graph. It just provides types
   35.72 @@ -122,16 +122,16 @@
   35.73      public:
   35.74  
   35.75        typedef BaseDigraphComponent Digraph;
   35.76 -      
   35.77 +
   35.78        /// \brief Node class of the digraph.
   35.79        ///
   35.80 -      /// This class represents the Nodes of the digraph. 
   35.81 +      /// This class represents the Nodes of the digraph.
   35.82        ///
   35.83        typedef GraphItem<'n'> Node;
   35.84  
   35.85        /// \brief Arc class of the digraph.
   35.86        ///
   35.87 -      /// This class represents the Arcs of the digraph. 
   35.88 +      /// This class represents the Arcs of the digraph.
   35.89        ///
   35.90        typedef GraphItem<'e'> Arc;
   35.91  
   35.92 @@ -156,27 +156,27 @@
   35.93  
   35.94        template <typename _Digraph>
   35.95        struct Constraints {
   35.96 -	typedef typename _Digraph::Node Node;
   35.97 -	typedef typename _Digraph::Arc Arc;
   35.98 -      
   35.99 -	void constraints() {
  35.100 -	  checkConcept<GraphItem<'n'>, Node>();
  35.101 -	  checkConcept<GraphItem<'a'>, Arc>();
  35.102 -	  {
  35.103 -	    Node n;
  35.104 -	    Arc e(INVALID);
  35.105 -	    n = digraph.source(e);
  35.106 -	    n = digraph.target(e);
  35.107 +        typedef typename _Digraph::Node Node;
  35.108 +        typedef typename _Digraph::Arc Arc;
  35.109 +
  35.110 +        void constraints() {
  35.111 +          checkConcept<GraphItem<'n'>, Node>();
  35.112 +          checkConcept<GraphItem<'a'>, Arc>();
  35.113 +          {
  35.114 +            Node n;
  35.115 +            Arc e(INVALID);
  35.116 +            n = digraph.source(e);
  35.117 +            n = digraph.target(e);
  35.118              n = digraph.oppositeNode(n, e);
  35.119 -	  }      
  35.120 -	}
  35.121 -      
  35.122 -	const _Digraph& digraph;
  35.123 +          }
  35.124 +        }
  35.125 +
  35.126 +        const _Digraph& digraph;
  35.127        };
  35.128      };
  35.129  
  35.130      /// \brief An empty base undirected graph class.
  35.131 -    ///  
  35.132 +    ///
  35.133      /// This class provides the minimal set of features needed for an
  35.134      /// undirected graph structure. All undirected graph concepts have
  35.135      /// to be conform to this base graph. It just provides types for
  35.136 @@ -199,7 +199,7 @@
  35.137        public:
  35.138          typedef GraphItem<'u'> Parent;
  35.139          /// \brief Default constructor.
  35.140 -        ///      
  35.141 +        ///
  35.142          /// \warning The default constructor is not required to set
  35.143          /// the item to some well-defined value. So you should consider it
  35.144          /// as uninitialized.
  35.145 @@ -217,12 +217,12 @@
  35.146          /// \brief Converter from arc to edge.
  35.147          ///
  35.148          /// Besides the core graph item functionality each arc should
  35.149 -        /// be convertible to the represented edge. 
  35.150 +        /// be convertible to the represented edge.
  35.151          Edge(const Arc&) {}
  35.152          /// \brief Assign arc to edge.
  35.153          ///
  35.154          /// Besides the core graph item functionality each arc should
  35.155 -        /// be convertible to the represented edge. 
  35.156 +        /// be convertible to the represented edge.
  35.157          Edge& operator=(const Arc&) { return *this; }
  35.158        };
  35.159  
  35.160 @@ -237,13 +237,13 @@
  35.161        ///
  35.162        /// Returns the directed arc from its direction and the
  35.163        /// represented edge.
  35.164 -      Arc direct(const Edge&, bool) const { return INVALID;} 
  35.165 +      Arc direct(const Edge&, bool) const { return INVALID;}
  35.166  
  35.167        /// \brief Returns the directed arc.
  35.168        ///
  35.169        /// Returns the directed arc from its source and the
  35.170        /// represented edge.
  35.171 -      Arc direct(const Edge&, const Node&) const { return INVALID;} 
  35.172 +      Arc direct(const Edge&, const Node&) const { return INVALID;}
  35.173  
  35.174        /// \brief Returns the opposite arc.
  35.175        ///
  35.176 @@ -260,38 +260,38 @@
  35.177        ///
  35.178        /// Gives back the other ending of an edge.
  35.179        Node v(const Edge&) const { return INVALID;}
  35.180 -      
  35.181 +
  35.182        template <typename _Graph>
  35.183        struct Constraints {
  35.184 -	typedef typename _Graph::Node Node;
  35.185 -	typedef typename _Graph::Arc Arc;
  35.186 -	typedef typename _Graph::Edge Edge;
  35.187 -      
  35.188 -	void constraints() {
  35.189 +        typedef typename _Graph::Node Node;
  35.190 +        typedef typename _Graph::Arc Arc;
  35.191 +        typedef typename _Graph::Edge Edge;
  35.192 +
  35.193 +        void constraints() {
  35.194            checkConcept<BaseDigraphComponent, _Graph>();
  35.195 -	  checkConcept<GraphItem<'u'>, Edge>();
  35.196 -	  {
  35.197 -	    Node n;
  35.198 -	    Edge ue(INVALID);
  35.199 +          checkConcept<GraphItem<'u'>, Edge>();
  35.200 +          {
  35.201 +            Node n;
  35.202 +            Edge ue(INVALID);
  35.203              Arc e;
  35.204 -	    n = graph.u(ue);
  35.205 -	    n = graph.v(ue);
  35.206 +            n = graph.u(ue);
  35.207 +            n = graph.v(ue);
  35.208              e = graph.direct(ue, true);
  35.209              e = graph.direct(ue, n);
  35.210              e = graph.oppositeArc(e);
  35.211              ue = e;
  35.212              bool d = graph.direction(e);
  35.213              ignore_unused_variable_warning(d);
  35.214 -	  }      
  35.215 -	}
  35.216 -      
  35.217 -	const _Graph& graph;
  35.218 +          }
  35.219 +        }
  35.220 +
  35.221 +        const _Graph& graph;
  35.222        };
  35.223  
  35.224      };
  35.225  
  35.226      /// \brief An empty idable base digraph class.
  35.227 -    ///  
  35.228 +    ///
  35.229      /// This class provides beside the core digraph features
  35.230      /// core id functions for the digraph structure.
  35.231      /// The most of the base digraphs should be conform to this concept.
  35.232 @@ -304,9 +304,9 @@
  35.233        typedef typename Base::Node Node;
  35.234        typedef typename Base::Arc Arc;
  35.235  
  35.236 -      /// \brief Gives back an unique integer id for the Node. 
  35.237 +      /// \brief Gives back an unique integer id for the Node.
  35.238        ///
  35.239 -      /// Gives back an unique integer id for the Node. 
  35.240 +      /// Gives back an unique integer id for the Node.
  35.241        ///
  35.242        int id(const Node&) const { return -1;}
  35.243  
  35.244 @@ -314,12 +314,12 @@
  35.245        ///
  35.246        /// Gives back the node by the unique id.
  35.247        /// If the digraph does not contain node with the given id
  35.248 -      /// then the result of the function is undetermined. 
  35.249 +      /// then the result of the function is undetermined.
  35.250        Node nodeFromId(int) const { return INVALID;}
  35.251  
  35.252 -      /// \brief Gives back an unique integer id for the Arc. 
  35.253 +      /// \brief Gives back an unique integer id for the Arc.
  35.254        ///
  35.255 -      /// Gives back an unique integer id for the Arc. 
  35.256 +      /// Gives back an unique integer id for the Arc.
  35.257        ///
  35.258        int id(const Arc&) const { return -1;}
  35.259  
  35.260 @@ -327,7 +327,7 @@
  35.261        ///
  35.262        /// Gives back the arc by the unique id.
  35.263        /// If the digraph does not contain arc with the given id
  35.264 -      /// then the result of the function is undetermined. 
  35.265 +      /// then the result of the function is undetermined.
  35.266        Arc arcFromId(int) const { return INVALID;}
  35.267  
  35.268        /// \brief Gives back an integer greater or equal to the maximum
  35.269 @@ -347,29 +347,29 @@
  35.270        template <typename _Digraph>
  35.271        struct Constraints {
  35.272  
  35.273 -	void constraints() {
  35.274 -	  checkConcept<Base, _Digraph >();
  35.275 -	  typename _Digraph::Node node;
  35.276 -	  int nid = digraph.id(node);
  35.277 -	  nid = digraph.id(node);
  35.278 -	  node = digraph.nodeFromId(nid);
  35.279 -	  typename _Digraph::Arc arc;
  35.280 -	  int eid = digraph.id(arc);
  35.281 -	  eid = digraph.id(arc);
  35.282 -	  arc = digraph.arcFromId(eid);
  35.283 +        void constraints() {
  35.284 +          checkConcept<Base, _Digraph >();
  35.285 +          typename _Digraph::Node node;
  35.286 +          int nid = digraph.id(node);
  35.287 +          nid = digraph.id(node);
  35.288 +          node = digraph.nodeFromId(nid);
  35.289 +          typename _Digraph::Arc arc;
  35.290 +          int eid = digraph.id(arc);
  35.291 +          eid = digraph.id(arc);
  35.292 +          arc = digraph.arcFromId(eid);
  35.293  
  35.294 -	  nid = digraph.maxNodeId();
  35.295 -	  ignore_unused_variable_warning(nid);
  35.296 -	  eid = digraph.maxArcId();
  35.297 -	  ignore_unused_variable_warning(eid);
  35.298 -	}
  35.299 +          nid = digraph.maxNodeId();
  35.300 +          ignore_unused_variable_warning(nid);
  35.301 +          eid = digraph.maxArcId();
  35.302 +          ignore_unused_variable_warning(eid);
  35.303 +        }
  35.304  
  35.305 -	const _Digraph& digraph;
  35.306 +        const _Digraph& digraph;
  35.307        };
  35.308      };
  35.309  
  35.310      /// \brief An empty idable base undirected graph class.
  35.311 -    ///  
  35.312 +    ///
  35.313      /// This class provides beside the core undirected graph features
  35.314      /// core id functions for the undirected graph structure.  The
  35.315      /// most of the base undirected graphs should be conform to this
  35.316 @@ -383,9 +383,9 @@
  35.317  
  35.318        using IDableDigraphComponent<_Base>::id;
  35.319  
  35.320 -      /// \brief Gives back an unique integer id for the Edge. 
  35.321 +      /// \brief Gives back an unique integer id for the Edge.
  35.322        ///
  35.323 -      /// Gives back an unique integer id for the Edge. 
  35.324 +      /// Gives back an unique integer id for the Edge.
  35.325        ///
  35.326        int id(const Edge&) const { return -1;}
  35.327  
  35.328 @@ -406,18 +406,18 @@
  35.329        template <typename _Graph>
  35.330        struct Constraints {
  35.331  
  35.332 -	void constraints() {
  35.333 -	  checkConcept<Base, _Graph >();
  35.334 -	  checkConcept<IDableDigraphComponent<Base>, _Graph >();
  35.335 -	  typename _Graph::Edge edge;
  35.336 -	  int ueid = graph.id(edge);
  35.337 -	  ueid = graph.id(edge);
  35.338 -	  edge = graph.edgeFromId(ueid);
  35.339 -	  ueid = graph.maxEdgeId();
  35.340 -	  ignore_unused_variable_warning(ueid);
  35.341 -	}
  35.342 +        void constraints() {
  35.343 +          checkConcept<Base, _Graph >();
  35.344 +          checkConcept<IDableDigraphComponent<Base>, _Graph >();
  35.345 +          typename _Graph::Edge edge;
  35.346 +          int ueid = graph.id(edge);
  35.347 +          ueid = graph.id(edge);
  35.348 +          edge = graph.edgeFromId(ueid);
  35.349 +          ueid = graph.maxEdgeId();
  35.350 +          ignore_unused_variable_warning(ueid);
  35.351 +        }
  35.352  
  35.353 -	const _Graph& graph;
  35.354 +        const _Graph& graph;
  35.355        };
  35.356      };
  35.357  
  35.358 @@ -450,52 +450,52 @@
  35.359        GraphItemIt(Invalid) {}
  35.360        /// \brief Assign operator for items.
  35.361        ///
  35.362 -      /// The items are assignable. 
  35.363 +      /// The items are assignable.
  35.364        ///
  35.365 -      GraphItemIt& operator=(const GraphItemIt&) { return *this; }      
  35.366 +      GraphItemIt& operator=(const GraphItemIt&) { return *this; }
  35.367        /// \brief Next item.
  35.368 -      /// 
  35.369 +      ///
  35.370        /// Assign the iterator to the next item.
  35.371        ///
  35.372        GraphItemIt& operator++() { return *this; }
  35.373        /// \brief Equality operator
  35.374 -      /// 
  35.375 +      ///
  35.376        /// Two iterators are equal if and only if they point to the
  35.377        /// same object or both are invalid.
  35.378        bool operator==(const GraphItemIt&) const { return true;}
  35.379        /// \brief Inequality operator
  35.380 -      ///	
  35.381 +      ///
  35.382        /// \sa operator==(Node n)
  35.383        ///
  35.384        bool operator!=(const GraphItemIt&) const { return true;}
  35.385 -      
  35.386 +
  35.387        template<typename _GraphItemIt>
  35.388        struct Constraints {
  35.389 -	void constraints() {
  35.390 -	  _GraphItemIt it1(g);	
  35.391 -	  _GraphItemIt it2;
  35.392 +        void constraints() {
  35.393 +          _GraphItemIt it1(g);
  35.394 +          _GraphItemIt it2;
  35.395  
  35.396 -	  it2 = ++it1;
  35.397 -	  ++it2 = it1;
  35.398 -	  ++(++it1);
  35.399 +          it2 = ++it1;
  35.400 +          ++it2 = it1;
  35.401 +          ++(++it1);
  35.402  
  35.403 -	  _Item bi = it1;
  35.404 -	  bi = it2;
  35.405 -	}
  35.406 -	_Graph& g;
  35.407 +          _Item bi = it1;
  35.408 +          bi = it2;
  35.409 +        }
  35.410 +        _Graph& g;
  35.411        };
  35.412      };
  35.413  
  35.414      /// \brief Skeleton class for graph InArcIt and OutArcIt
  35.415      ///
  35.416      /// \note Because InArcIt and OutArcIt may not inherit from the same
  35.417 -    /// base class, the _selector is a additional template parameter. For 
  35.418 -    /// InArcIt you should instantiate it with character 'i' and for 
  35.419 +    /// base class, the _selector is a additional template parameter. For
  35.420 +    /// InArcIt you should instantiate it with character 'i' and for
  35.421      /// OutArcIt with 'o'.
  35.422      template <typename _Graph,
  35.423 -	      typename _Item = typename _Graph::Arc,
  35.424 -              typename _Base = typename _Graph::Node, 
  35.425 -	      char _selector = '0'>
  35.426 +              typename _Item = typename _Graph::Arc,
  35.427 +              typename _Base = typename _Graph::Node,
  35.428 +              char _selector = '0'>
  35.429      class GraphIncIt : public _Item {
  35.430      public:
  35.431        /// \brief Default constructor.
  35.432 @@ -508,10 +508,10 @@
  35.433        /// Copy constructor.
  35.434        ///
  35.435        GraphIncIt(GraphIncIt const& gi) : _Item(gi) {}
  35.436 -      /// \brief Sets the iterator to the first arc incoming into or outgoing 
  35.437 +      /// \brief Sets the iterator to the first arc incoming into or outgoing
  35.438        /// from the node.
  35.439        ///
  35.440 -      /// Sets the iterator to the first arc incoming into or outgoing 
  35.441 +      /// Sets the iterator to the first arc incoming into or outgoing
  35.442        /// from the node.
  35.443        ///
  35.444        explicit GraphIncIt(const _Graph&, const _Base&) {}
  35.445 @@ -522,9 +522,9 @@
  35.446        GraphIncIt(Invalid) {}
  35.447        /// \brief Assign operator for iterators.
  35.448        ///
  35.449 -      /// The iterators are assignable. 
  35.450 +      /// The iterators are assignable.
  35.451        ///
  35.452 -      GraphIncIt& operator=(GraphIncIt const&) { return *this; }      
  35.453 +      GraphIncIt& operator=(GraphIncIt const&) { return *this; }
  35.454        /// \brief Next item.
  35.455        ///
  35.456        /// Assign the iterator to the next item.
  35.457 @@ -545,23 +545,23 @@
  35.458  
  35.459        template <typename _GraphIncIt>
  35.460        struct Constraints {
  35.461 -	void constraints() {
  35.462 -	  checkConcept<GraphItem<_selector>, _GraphIncIt>();
  35.463 -	  _GraphIncIt it1(graph, node);
  35.464 -	  _GraphIncIt it2;
  35.465 +        void constraints() {
  35.466 +          checkConcept<GraphItem<_selector>, _GraphIncIt>();
  35.467 +          _GraphIncIt it1(graph, node);
  35.468 +          _GraphIncIt it2;
  35.469  
  35.470 -	  it2 = ++it1;
  35.471 -	  ++it2 = it1;
  35.472 -	  ++(++it1);
  35.473 -	  _Item e = it1;
  35.474 -	  e = it2;
  35.475 +          it2 = ++it1;
  35.476 +          ++it2 = it1;
  35.477 +          ++(++it1);
  35.478 +          _Item e = it1;
  35.479 +          e = it2;
  35.480  
  35.481 -	}
  35.482 +        }
  35.483  
  35.484 -	_Item arc;
  35.485 -	_Base node;
  35.486 -	_Graph graph;
  35.487 -	_GraphIncIt it;
  35.488 +        _Item arc;
  35.489 +        _Base node;
  35.490 +        _Graph graph;
  35.491 +        _GraphIncIt it;
  35.492        };
  35.493      };
  35.494  
  35.495 @@ -575,7 +575,7 @@
  35.496      class IterableDigraphComponent : public _Base {
  35.497  
  35.498      public:
  35.499 -    
  35.500 +
  35.501        typedef _Base Base;
  35.502        typedef typename Base::Node Node;
  35.503        typedef typename Base::Arc Arc;
  35.504 @@ -583,33 +583,33 @@
  35.505        typedef IterableDigraphComponent Digraph;
  35.506  
  35.507        /// \name Base iteration
  35.508 -      /// 
  35.509 +      ///
  35.510        /// This interface provides functions for iteration on digraph items
  35.511        ///
  35.512 -      /// @{  
  35.513 +      /// @{
  35.514  
  35.515        /// \brief Gives back the first node in the iterating order.
  35.516 -      ///      
  35.517 +      ///
  35.518        /// Gives back the first node in the iterating order.
  35.519 -      ///     
  35.520 +      ///
  35.521        void first(Node&) const {}
  35.522  
  35.523        /// \brief Gives back the next node in the iterating order.
  35.524        ///
  35.525        /// Gives back the next node in the iterating order.
  35.526 -      ///     
  35.527 +      ///
  35.528        void next(Node&) const {}
  35.529  
  35.530        /// \brief Gives back the first arc in the iterating order.
  35.531        ///
  35.532        /// Gives back the first arc in the iterating order.
  35.533 -      ///     
  35.534 +      ///
  35.535        void first(Arc&) const {}
  35.536  
  35.537        /// \brief Gives back the next arc in the iterating order.
  35.538        ///
  35.539        /// Gives back the next arc in the iterating order.
  35.540 -      ///     
  35.541 +      ///
  35.542        void next(Arc&) const {}
  35.543  
  35.544  
  35.545 @@ -617,7 +617,7 @@
  35.546        /// node.
  35.547        ///
  35.548        /// Gives back the first of the arcs point to the given node.
  35.549 -      ///     
  35.550 +      ///
  35.551        void firstIn(Arc&, const Node&) const {}
  35.552  
  35.553        /// \brief Gives back the next of the arcs points to the given
  35.554 @@ -629,22 +629,22 @@
  35.555  
  35.556        /// \brief Gives back the first of the arcs start from the
  35.557        /// given node.
  35.558 -      ///      
  35.559 +      ///
  35.560        /// Gives back the first of the arcs start from the given node.
  35.561 -      ///     
  35.562 +      ///
  35.563        void firstOut(Arc&, const Node&) const {}
  35.564  
  35.565        /// \brief Gives back the next of the arcs start from the given
  35.566        /// node.
  35.567        ///
  35.568        /// Gives back the next of the arcs start from the given node.
  35.569 -      ///     
  35.570 +      ///
  35.571        void nextOut(Arc&) const {}
  35.572  
  35.573        /// @}
  35.574  
  35.575        /// \name Class based iteration
  35.576 -      /// 
  35.577 +      ///
  35.578        /// This interface provides functions for iteration on digraph items
  35.579        ///
  35.580        /// @{
  35.581 @@ -699,13 +699,13 @@
  35.582  
  35.583        /// @}
  35.584  
  35.585 -      template <typename _Digraph> 
  35.586 +      template <typename _Digraph>
  35.587        struct Constraints {
  35.588 -	void constraints() {
  35.589 -	  checkConcept<Base, _Digraph>();
  35.590 +        void constraints() {
  35.591 +          checkConcept<Base, _Digraph>();
  35.592  
  35.593            {
  35.594 -            typename _Digraph::Node node(INVALID);      
  35.595 +            typename _Digraph::Node node(INVALID);
  35.596              typename _Digraph::Arc arc(INVALID);
  35.597              {
  35.598                digraph.first(node);
  35.599 @@ -723,16 +723,16 @@
  35.600                digraph.firstOut(arc, node);
  35.601                digraph.nextOut(arc);
  35.602              }
  35.603 -          }           
  35.604 +          }
  35.605  
  35.606            {
  35.607              checkConcept<GraphItemIt<_Digraph, typename _Digraph::Arc>,
  35.608                typename _Digraph::ArcIt >();
  35.609              checkConcept<GraphItemIt<_Digraph, typename _Digraph::Node>,
  35.610                typename _Digraph::NodeIt >();
  35.611 -            checkConcept<GraphIncIt<_Digraph, typename _Digraph::Arc, 
  35.612 +            checkConcept<GraphIncIt<_Digraph, typename _Digraph::Arc,
  35.613                typename _Digraph::Node, 'i'>, typename _Digraph::InArcIt>();
  35.614 -            checkConcept<GraphIncIt<_Digraph, typename _Digraph::Arc, 
  35.615 +            checkConcept<GraphIncIt<_Digraph, typename _Digraph::Arc,
  35.616                typename _Digraph::Node, 'o'>, typename _Digraph::OutArcIt>();
  35.617  
  35.618              typename _Digraph::Node n;
  35.619 @@ -745,9 +745,9 @@
  35.620              ignore_unused_variable_warning(n);
  35.621            }
  35.622          }
  35.623 -	
  35.624 -	const _Digraph& digraph;
  35.625 -	
  35.626 +
  35.627 +        const _Digraph& digraph;
  35.628 +
  35.629        };
  35.630      };
  35.631  
  35.632 @@ -765,13 +765,13 @@
  35.633        typedef typename Base::Arc Arc;
  35.634        typedef typename Base::Edge Edge;
  35.635  
  35.636 -    
  35.637 +
  35.638        typedef IterableGraphComponent Graph;
  35.639  
  35.640        /// \name Base iteration
  35.641 -      /// 
  35.642 +      ///
  35.643        /// This interface provides functions for iteration on graph items
  35.644 -      /// @{  
  35.645 +      /// @{
  35.646  
  35.647        using IterableDigraphComponent<_Base>::first;
  35.648        using IterableDigraphComponent<_Base>::next;
  35.649 @@ -780,14 +780,14 @@
  35.650        /// order.
  35.651        ///
  35.652        /// Gives back the first edge in the iterating order.
  35.653 -      ///     
  35.654 +      ///
  35.655        void first(Edge&) const {}
  35.656  
  35.657        /// \brief Gives back the next edge in the iterating
  35.658        /// order.
  35.659        ///
  35.660        /// Gives back the next edge in the iterating order.
  35.661 -      ///     
  35.662 +      ///
  35.663        void next(Edge&) const {}
  35.664  
  35.665  
  35.666 @@ -814,7 +814,7 @@
  35.667        /// @}
  35.668  
  35.669        /// \name Class based iteration
  35.670 -      /// 
  35.671 +      ///
  35.672        /// This interface provides functions for iteration on graph items
  35.673        ///
  35.674        /// @{
  35.675 @@ -841,10 +841,10 @@
  35.676  
  35.677        /// @}
  35.678  
  35.679 -      template <typename _Graph> 
  35.680 +      template <typename _Graph>
  35.681        struct Constraints {
  35.682 -	void constraints() {
  35.683 -	  checkConcept<IterableDigraphComponent<Base>, _Graph>();
  35.684 +        void constraints() {
  35.685 +          checkConcept<IterableDigraphComponent<Base>, _Graph>();
  35.686  
  35.687            {
  35.688              typename _Graph::Node node(INVALID);
  35.689 @@ -858,29 +858,29 @@
  35.690                graph.firstInc(edge, dir, node);
  35.691                graph.nextInc(edge, dir);
  35.692              }
  35.693 -            
  35.694 -          }	
  35.695 -  
  35.696 +
  35.697 +          }
  35.698 +
  35.699            {
  35.700              checkConcept<GraphItemIt<_Graph, typename _Graph::Edge>,
  35.701                typename _Graph::EdgeIt >();
  35.702 -            checkConcept<GraphIncIt<_Graph, typename _Graph::Edge, 
  35.703 +            checkConcept<GraphIncIt<_Graph, typename _Graph::Edge,
  35.704                typename _Graph::Node, 'u'>, typename _Graph::IncEdgeIt>();
  35.705 -            
  35.706 +
  35.707              typename _Graph::Node n;
  35.708              typename _Graph::IncEdgeIt ueit(INVALID);
  35.709              n = graph.baseNode(ueit);
  35.710              n = graph.runningNode(ueit);
  35.711            }
  35.712          }
  35.713 -	
  35.714 -	const _Graph& graph;
  35.715 -	
  35.716 +
  35.717 +        const _Graph& graph;
  35.718 +
  35.719        };
  35.720      };
  35.721  
  35.722      /// \brief An empty alteration notifier digraph class.
  35.723 -    ///  
  35.724 +    ///
  35.725      /// This class provides beside the core digraph features alteration
  35.726      /// notifier interface for the digraph structure.  This implements
  35.727      /// an observer-notifier pattern for each digraph item. More
  35.728 @@ -897,48 +897,48 @@
  35.729  
  35.730  
  35.731        /// The node observer registry.
  35.732 -      typedef AlterationNotifier<AlterableDigraphComponent, Node> 
  35.733 +      typedef AlterationNotifier<AlterableDigraphComponent, Node>
  35.734        NodeNotifier;
  35.735        /// The arc observer registry.
  35.736 -      typedef AlterationNotifier<AlterableDigraphComponent, Arc> 
  35.737 +      typedef AlterationNotifier<AlterableDigraphComponent, Arc>
  35.738        ArcNotifier;
  35.739 -      
  35.740 +
  35.741        /// \brief Gives back the node alteration notifier.
  35.742        ///
  35.743        /// Gives back the node alteration notifier.
  35.744        NodeNotifier& notifier(Node) const {
  35.745 -	return NodeNotifier();
  35.746 +        return NodeNotifier();
  35.747        }
  35.748 -      
  35.749 +
  35.750        /// \brief Gives back the arc alteration notifier.
  35.751        ///
  35.752        /// Gives back the arc alteration notifier.
  35.753        ArcNotifier& notifier(Arc) const {
  35.754 -	return ArcNotifier();
  35.755 +        return ArcNotifier();
  35.756        }
  35.757  
  35.758 -      template <typename _Digraph> 
  35.759 +      template <typename _Digraph>
  35.760        struct Constraints {
  35.761 -	void constraints() {
  35.762 -	  checkConcept<Base, _Digraph>();
  35.763 -          typename _Digraph::NodeNotifier& nn 
  35.764 +        void constraints() {
  35.765 +          checkConcept<Base, _Digraph>();
  35.766 +          typename _Digraph::NodeNotifier& nn
  35.767              = digraph.notifier(typename _Digraph::Node());
  35.768  
  35.769 -          typename _Digraph::ArcNotifier& en 
  35.770 +          typename _Digraph::ArcNotifier& en
  35.771              = digraph.notifier(typename _Digraph::Arc());
  35.772 -          
  35.773 +
  35.774            ignore_unused_variable_warning(nn);
  35.775            ignore_unused_variable_warning(en);
  35.776 -	}
  35.777 -	
  35.778 -	const _Digraph& digraph;
  35.779 -	
  35.780 +        }
  35.781 +
  35.782 +        const _Digraph& digraph;
  35.783 +
  35.784        };
  35.785 -      
  35.786 +
  35.787      };
  35.788  
  35.789      /// \brief An empty alteration notifier undirected graph class.
  35.790 -    ///  
  35.791 +    ///
  35.792      /// This class provides beside the core graph features alteration
  35.793      /// notifier interface for the graph structure.  This implements
  35.794      /// an observer-notifier pattern for each graph item. More
  35.795 @@ -954,33 +954,33 @@
  35.796  
  35.797  
  35.798        /// The arc observer registry.
  35.799 -      typedef AlterationNotifier<AlterableGraphComponent, Edge> 
  35.800 +      typedef AlterationNotifier<AlterableGraphComponent, Edge>
  35.801        EdgeNotifier;
  35.802 -      
  35.803 +
  35.804        /// \brief Gives back the arc alteration notifier.
  35.805        ///
  35.806        /// Gives back the arc alteration notifier.
  35.807        EdgeNotifier& notifier(Edge) const {
  35.808 -	return EdgeNotifier();
  35.809 +        return EdgeNotifier();
  35.810        }
  35.811  
  35.812 -      template <typename _Graph> 
  35.813 +      template <typename _Graph>
  35.814        struct Constraints {
  35.815 -	void constraints() {
  35.816 -	  checkConcept<AlterableGraphComponent<Base>, _Graph>();
  35.817 -          typename _Graph::EdgeNotifier& uen 
  35.818 +        void constraints() {
  35.819 +          checkConcept<AlterableGraphComponent<Base>, _Graph>();
  35.820 +          typename _Graph::EdgeNotifier& uen
  35.821              = graph.notifier(typename _Graph::Edge());
  35.822            ignore_unused_variable_warning(uen);
  35.823 -	}
  35.824 -	
  35.825 -	const _Graph& graph;
  35.826 -	
  35.827 +        }
  35.828 +
  35.829 +        const _Graph& graph;
  35.830 +
  35.831        };
  35.832 -      
  35.833 +
  35.834      };
  35.835  
  35.836      /// \brief Class describing the concept of graph maps
  35.837 -    /// 
  35.838 +    ///
  35.839      /// This class describes the common interface of the graph maps
  35.840      /// (NodeMap, ArcMap), that is \ref maps-page "maps" which can be used to
  35.841      /// associate data to graph descriptors (nodes or arcs).
  35.842 @@ -1009,39 +1009,39 @@
  35.843        ///
  35.844        /// Copy Constructor.
  35.845        GraphMap(const GraphMap&) : Parent() {}
  35.846 -      
  35.847 +
  35.848        /// \brief Assign operator.
  35.849        ///
  35.850        /// Assign operator. It does not mofify the underlying graph,
  35.851        /// it just iterates on the current item set and set the  map
  35.852 -      /// with the value returned by the assigned map. 
  35.853 +      /// with the value returned by the assigned map.
  35.854        template <typename CMap>
  35.855 -      GraphMap& operator=(const CMap&) { 
  35.856 +      GraphMap& operator=(const CMap&) {
  35.857          checkConcept<ReadMap<Key, Value>, CMap>();
  35.858          return *this;
  35.859        }
  35.860  
  35.861        template<typename _Map>
  35.862        struct Constraints {
  35.863 -	void constraints() {
  35.864 -	  checkConcept<ReadWriteMap<Key, Value>, _Map >();
  35.865 -	  // Construction with a graph parameter
  35.866 -	  _Map a(g);
  35.867 -	  // Constructor with a graph and a default value parameter
  35.868 -	  _Map a2(g,t);
  35.869 -	  // Copy constructor.
  35.870 -	  _Map b(c);
  35.871 -          
  35.872 +        void constraints() {
  35.873 +          checkConcept<ReadWriteMap<Key, Value>, _Map >();
  35.874 +          // Construction with a graph parameter
  35.875 +          _Map a(g);
  35.876 +          // Constructor with a graph and a default value parameter
  35.877 +          _Map a2(g,t);
  35.878 +          // Copy constructor.
  35.879 +          _Map b(c);
  35.880 +
  35.881            ReadMap<Key, Value> cmap;
  35.882            b = cmap;
  35.883  
  35.884 -	  ignore_unused_variable_warning(a2);
  35.885 -	  ignore_unused_variable_warning(b);
  35.886 -	}
  35.887 +          ignore_unused_variable_warning(a2);
  35.888 +          ignore_unused_variable_warning(b);
  35.889 +        }
  35.890  
  35.891 -	const _Map &c;
  35.892 -	const Graph &g;
  35.893 -	const typename GraphMap::Value &t;
  35.894 +        const _Map &c;
  35.895 +        const Graph &g;
  35.896 +        const typename GraphMap::Value &t;
  35.897        };
  35.898  
  35.899      };
  35.900 @@ -1070,28 +1070,28 @@
  35.901        public:
  35.902          typedef GraphMap<MappableDigraphComponent, Node, _Value> Parent;
  35.903  
  35.904 -	/// \brief Construct a new map.
  35.905 -	///
  35.906 -	/// Construct a new map for the digraph.
  35.907 -	explicit NodeMap(const MappableDigraphComponent& digraph) 
  35.908 +        /// \brief Construct a new map.
  35.909 +        ///
  35.910 +        /// Construct a new map for the digraph.
  35.911 +        explicit NodeMap(const MappableDigraphComponent& digraph)
  35.912            : Parent(digraph) {}
  35.913  
  35.914 -	/// \brief Construct a new map with default value.
  35.915 -	///
  35.916 -	/// Construct a new map for the digraph and initalise the values.
  35.917 -	NodeMap(const MappableDigraphComponent& digraph, const _Value& value)
  35.918 +        /// \brief Construct a new map with default value.
  35.919 +        ///
  35.920 +        /// Construct a new map for the digraph and initalise the values.
  35.921 +        NodeMap(const MappableDigraphComponent& digraph, const _Value& value)
  35.922            : Parent(digraph, value) {}
  35.923  
  35.924 -	/// \brief Copy constructor.
  35.925 -	///
  35.926 -	/// Copy Constructor.
  35.927 -	NodeMap(const NodeMap& nm) : Parent(nm) {}
  35.928 +        /// \brief Copy constructor.
  35.929 +        ///
  35.930 +        /// Copy Constructor.
  35.931 +        NodeMap(const NodeMap& nm) : Parent(nm) {}
  35.932  
  35.933 -	/// \brief Assign operator.
  35.934 -	///
  35.935 -	/// Assign operator.
  35.936 +        /// \brief Assign operator.
  35.937 +        ///
  35.938 +        /// Assign operator.
  35.939          template <typename CMap>
  35.940 -        NodeMap& operator=(const CMap&) { 
  35.941 +        NodeMap& operator=(const CMap&) {
  35.942            checkConcept<ReadMap<Node, _Value>, CMap>();
  35.943            return *this;
  35.944          }
  35.945 @@ -1107,28 +1107,28 @@
  35.946        public:
  35.947          typedef GraphMap<MappableDigraphComponent, Arc, _Value> Parent;
  35.948  
  35.949 -	/// \brief Construct a new map.
  35.950 -	///
  35.951 -	/// Construct a new map for the digraph.
  35.952 -	explicit ArcMap(const MappableDigraphComponent& digraph) 
  35.953 +        /// \brief Construct a new map.
  35.954 +        ///
  35.955 +        /// Construct a new map for the digraph.
  35.956 +        explicit ArcMap(const MappableDigraphComponent& digraph)
  35.957            : Parent(digraph) {}
  35.958  
  35.959 -	/// \brief Construct a new map with default value.
  35.960 -	///
  35.961 -	/// Construct a new map for the digraph and initalise the values.
  35.962 -	ArcMap(const MappableDigraphComponent& digraph, const _Value& value)
  35.963 +        /// \brief Construct a new map with default value.
  35.964 +        ///
  35.965 +        /// Construct a new map for the digraph and initalise the values.
  35.966 +        ArcMap(const MappableDigraphComponent& digraph, const _Value& value)
  35.967            : Parent(digraph, value) {}
  35.968  
  35.969 -	/// \brief Copy constructor.
  35.970 -	///
  35.971 -	/// Copy Constructor.
  35.972 -	ArcMap(const ArcMap& nm) : Parent(nm) {}
  35.973 +        /// \brief Copy constructor.
  35.974 +        ///
  35.975 +        /// Copy Constructor.
  35.976 +        ArcMap(const ArcMap& nm) : Parent(nm) {}
  35.977  
  35.978 -	/// \brief Assign operator.
  35.979 -	///
  35.980 -	/// Assign operator.
  35.981 +        /// \brief Assign operator.
  35.982 +        ///
  35.983 +        /// Assign operator.
  35.984          template <typename CMap>
  35.985 -        ArcMap& operator=(const CMap&) { 
  35.986 +        ArcMap& operator=(const CMap&) {
  35.987            checkConcept<ReadMap<Arc, _Value>, CMap>();
  35.988            return *this;
  35.989          }
  35.990 @@ -1139,44 +1139,44 @@
  35.991        template <typename _Digraph>
  35.992        struct Constraints {
  35.993  
  35.994 -	struct Dummy {
  35.995 -	  int value;
  35.996 -	  Dummy() : value(0) {}
  35.997 -	  Dummy(int _v) : value(_v) {}
  35.998 -	};
  35.999 +        struct Dummy {
 35.1000 +          int value;
 35.1001 +          Dummy() : value(0) {}
 35.1002 +          Dummy(int _v) : value(_v) {}
 35.1003 +        };
 35.1004  
 35.1005 -	void constraints() {
 35.1006 -	  checkConcept<Base, _Digraph>();
 35.1007 -	  { // int map test
 35.1008 -	    typedef typename _Digraph::template NodeMap<int> IntNodeMap;
 35.1009 -	    checkConcept<GraphMap<_Digraph, typename _Digraph::Node, int>, 
 35.1010 -	      IntNodeMap >();
 35.1011 -	  } { // bool map test
 35.1012 -	    typedef typename _Digraph::template NodeMap<bool> BoolNodeMap;
 35.1013 -	    checkConcept<GraphMap<_Digraph, typename _Digraph::Node, bool>,
 35.1014 -	      BoolNodeMap >();
 35.1015 -	  } { // Dummy map test
 35.1016 -	    typedef typename _Digraph::template NodeMap<Dummy> DummyNodeMap;
 35.1017 -	    checkConcept<GraphMap<_Digraph, typename _Digraph::Node, Dummy>,
 35.1018 -	      DummyNodeMap >();
 35.1019 -	  } 
 35.1020 +        void constraints() {
 35.1021 +          checkConcept<Base, _Digraph>();
 35.1022 +          { // int map test
 35.1023 +            typedef typename _Digraph::template NodeMap<int> IntNodeMap;
 35.1024 +            checkConcept<GraphMap<_Digraph, typename _Digraph::Node, int>,
 35.1025 +              IntNodeMap >();
 35.1026 +          } { // bool map test
 35.1027 +            typedef typename _Digraph::template NodeMap<bool> BoolNodeMap;
 35.1028 +            checkConcept<GraphMap<_Digraph, typename _Digraph::Node, bool>,
 35.1029 +              BoolNodeMap >();
 35.1030 +          } { // Dummy map test
 35.1031 +            typedef typename _Digraph::template NodeMap<Dummy> DummyNodeMap;
 35.1032 +            checkConcept<GraphMap<_Digraph, typename _Digraph::Node, Dummy>,
 35.1033 +              DummyNodeMap >();
 35.1034 +          }
 35.1035  
 35.1036 -	  { // int map test
 35.1037 -	    typedef typename _Digraph::template ArcMap<int> IntArcMap;
 35.1038 -	    checkConcept<GraphMap<_Digraph, typename _Digraph::Arc, int>,
 35.1039 -	      IntArcMap >();
 35.1040 -	  } { // bool map test
 35.1041 -	    typedef typename _Digraph::template ArcMap<bool> BoolArcMap;
 35.1042 -	    checkConcept<GraphMap<_Digraph, typename _Digraph::Arc, bool>,
 35.1043 -	      BoolArcMap >();
 35.1044 -	  } { // Dummy map test
 35.1045 -	    typedef typename _Digraph::template ArcMap<Dummy> DummyArcMap;
 35.1046 -	    checkConcept<GraphMap<_Digraph, typename _Digraph::Arc, Dummy>, 
 35.1047 -	      DummyArcMap >();
 35.1048 -	  } 
 35.1049 -	}
 35.1050 +          { // int map test
 35.1051 +            typedef typename _Digraph::template ArcMap<int> IntArcMap;
 35.1052 +            checkConcept<GraphMap<_Digraph, typename _Digraph::Arc, int>,
 35.1053 +              IntArcMap >();
 35.1054 +          } { // bool map test
 35.1055 +            typedef typename _Digraph::template ArcMap<bool> BoolArcMap;
 35.1056 +            checkConcept<GraphMap<_Digraph, typename _Digraph::Arc, bool>,
 35.1057 +              BoolArcMap >();
 35.1058 +          } { // Dummy map test
 35.1059 +            typedef typename _Digraph::template ArcMap<Dummy> DummyArcMap;
 35.1060 +            checkConcept<GraphMap<_Digraph, typename _Digraph::Arc, Dummy>,
 35.1061 +              DummyArcMap >();
 35.1062 +          }
 35.1063 +        }
 35.1064  
 35.1065 -	_Digraph& digraph;
 35.1066 +        _Digraph& digraph;
 35.1067        };
 35.1068      };
 35.1069  
 35.1070 @@ -1199,32 +1199,32 @@
 35.1071        /// ReadWrite map of the edges.
 35.1072        ///
 35.1073        template <typename _Value>
 35.1074 -      class EdgeMap : public GraphMap<Graph, Edge, _Value> {  
 35.1075 +      class EdgeMap : public GraphMap<Graph, Edge, _Value> {
 35.1076        public:
 35.1077          typedef GraphMap<MappableGraphComponent, Edge, _Value> Parent;
 35.1078  
 35.1079 -	/// \brief Construct a new map.
 35.1080 -	///
 35.1081 -	/// Construct a new map for the graph.
 35.1082 -	explicit EdgeMap(const MappableGraphComponent& graph) 
 35.1083 +        /// \brief Construct a new map.
 35.1084 +        ///
 35.1085 +        /// Construct a new map for the graph.
 35.1086 +        explicit EdgeMap(const MappableGraphComponent& graph)
 35.1087            : Parent(graph) {}
 35.1088  
 35.1089 -	/// \brief Construct a new map with default value.
 35.1090 -	///
 35.1091 -	/// Construct a new map for the graph and initalise the values.
 35.1092 -	EdgeMap(const MappableGraphComponent& graph, const _Value& value)
 35.1093 +        /// \brief Construct a new map with default value.
 35.1094 +        ///
 35.1095 +        /// Construct a new map for the graph and initalise the values.
 35.1096 +        EdgeMap(const MappableGraphComponent& graph, const _Value& value)
 35.1097            : Parent(graph, value) {}
 35.1098  
 35.1099 -	/// \brief Copy constructor.
 35.1100 -	///
 35.1101 -	/// Copy Constructor.
 35.1102 -	EdgeMap(const EdgeMap& nm) : Parent(nm) {}
 35.1103 +        /// \brief Copy constructor.
 35.1104 +        ///
 35.1105 +        /// Copy Constructor.
 35.1106 +        EdgeMap(const EdgeMap& nm) : Parent(nm) {}
 35.1107  
 35.1108 -	/// \brief Assign operator.
 35.1109 -	///
 35.1110 -	/// Assign operator.
 35.1111 +        /// \brief Assign operator.
 35.1112 +        ///
 35.1113 +        /// Assign operator.
 35.1114          template <typename CMap>
 35.1115 -        EdgeMap& operator=(const CMap&) { 
 35.1116 +        EdgeMap& operator=(const CMap&) {
 35.1117            checkConcept<ReadMap<Edge, _Value>, CMap>();
 35.1118            return *this;
 35.1119          }
 35.1120 @@ -1235,31 +1235,31 @@
 35.1121        template <typename _Graph>
 35.1122        struct Constraints {
 35.1123  
 35.1124 -	struct Dummy {
 35.1125 -	  int value;
 35.1126 -	  Dummy() : value(0) {}
 35.1127 -	  Dummy(int _v) : value(_v) {}
 35.1128 -	};
 35.1129 +        struct Dummy {
 35.1130 +          int value;
 35.1131 +          Dummy() : value(0) {}
 35.1132 +          Dummy(int _v) : value(_v) {}
 35.1133 +        };
 35.1134  
 35.1135 -	void constraints() {
 35.1136 -	  checkConcept<MappableGraphComponent<Base>, _Graph>();
 35.1137 +        void constraints() {
 35.1138 +          checkConcept<MappableGraphComponent<Base>, _Graph>();
 35.1139  
 35.1140 -	  { // int map test
 35.1141 -	    typedef typename _Graph::template EdgeMap<int> IntEdgeMap;
 35.1142 -	    checkConcept<GraphMap<_Graph, typename _Graph::Edge, int>,
 35.1143 -	      IntEdgeMap >();
 35.1144 -	  } { // bool map test
 35.1145 -	    typedef typename _Graph::template EdgeMap<bool> BoolEdgeMap;
 35.1146 -	    checkConcept<GraphMap<_Graph, typename _Graph::Edge, bool>,
 35.1147 -	      BoolEdgeMap >();
 35.1148 -	  } { // Dummy map test
 35.1149 -	    typedef typename _Graph::template EdgeMap<Dummy> DummyEdgeMap;
 35.1150 -	    checkConcept<GraphMap<_Graph, typename _Graph::Edge, Dummy>, 
 35.1151 -	      DummyEdgeMap >();
 35.1152 -	  } 
 35.1153 -	}
 35.1154 +          { // int map test
 35.1155 +            typedef typename _Graph::template EdgeMap<int> IntEdgeMap;
 35.1156 +            checkConcept<GraphMap<_Graph, typename _Graph::Edge, int>,
 35.1157 +              IntEdgeMap >();
 35.1158 +          } { // bool map test
 35.1159 +            typedef typename _Graph::template EdgeMap<bool> BoolEdgeMap;
 35.1160 +            checkConcept<GraphMap<_Graph, typename _Graph::Edge, bool>,
 35.1161 +              BoolEdgeMap >();
 35.1162 +          } { // Dummy map test
 35.1163 +            typedef typename _Graph::template EdgeMap<Dummy> DummyEdgeMap;
 35.1164 +            checkConcept<GraphMap<_Graph, typename _Graph::Edge, Dummy>,
 35.1165 +              DummyEdgeMap >();
 35.1166 +          }
 35.1167 +        }
 35.1168  
 35.1169 -	_Graph& graph;
 35.1170 +        _Graph& graph;
 35.1171        };
 35.1172      };
 35.1173  
 35.1174 @@ -1282,28 +1282,28 @@
 35.1175        /// Adds a new node to the digraph.
 35.1176        ///
 35.1177        Node addNode() {
 35.1178 -	return INVALID;
 35.1179 +        return INVALID;
 35.1180        }
 35.1181 -    
 35.1182 +
 35.1183        /// \brief Adds a new arc connects the given two nodes.
 35.1184        ///
 35.1185        /// Adds a new arc connects the the given two nodes.
 35.1186        Arc addArc(const Node&, const Node&) {
 35.1187 -	return INVALID;
 35.1188 +        return INVALID;
 35.1189        }
 35.1190  
 35.1191        template <typename _Digraph>
 35.1192        struct Constraints {
 35.1193 -	void constraints() {
 35.1194 +        void constraints() {
 35.1195            checkConcept<Base, _Digraph>();
 35.1196 -	  typename _Digraph::Node node_a, node_b;
 35.1197 -	  node_a = digraph.addNode();
 35.1198 -	  node_b = digraph.addNode();
 35.1199 -	  typename _Digraph::Arc arc;
 35.1200 -	  arc = digraph.addArc(node_a, node_b);
 35.1201 -	}
 35.1202 +          typename _Digraph::Node node_a, node_b;
 35.1203 +          node_a = digraph.addNode();
 35.1204 +          node_b = digraph.addNode();
 35.1205 +          typename _Digraph::Arc arc;
 35.1206 +          arc = digraph.addArc(node_a, node_b);
 35.1207 +        }
 35.1208  
 35.1209 -	_Digraph& digraph;
 35.1210 +        _Digraph& digraph;
 35.1211        };
 35.1212      };
 35.1213  
 35.1214 @@ -1327,33 +1327,33 @@
 35.1215        /// Adds a new node to the graph.
 35.1216        ///
 35.1217        Node addNode() {
 35.1218 -	return INVALID;
 35.1219 +        return INVALID;
 35.1220        }
 35.1221 -    
 35.1222 +
 35.1223        /// \brief Adds a new arc connects the given two nodes.
 35.1224        ///
 35.1225        /// Adds a new arc connects the the given two nodes.
 35.1226        Edge addArc(const Node&, const Node&) {
 35.1227 -	return INVALID;
 35.1228 +        return INVALID;
 35.1229        }
 35.1230  
 35.1231        template <typename _Graph>
 35.1232        struct Constraints {
 35.1233 -	void constraints() {
 35.1234 -	  checkConcept<Base, _Graph>();
 35.1235 -	  typename _Graph::Node node_a, node_b;
 35.1236 -	  node_a = graph.addNode();
 35.1237 -	  node_b = graph.addNode();
 35.1238 -	  typename _Graph::Edge edge;
 35.1239 -	  edge = graph.addEdge(node_a, node_b);
 35.1240 -	}
 35.1241 +        void constraints() {
 35.1242 +          checkConcept<Base, _Graph>();
 35.1243 +          typename _Graph::Node node_a, node_b;
 35.1244 +          node_a = graph.addNode();
 35.1245 +          node_b = graph.addNode();
 35.1246 +          typename _Graph::Edge edge;
 35.1247 +          edge = graph.addEdge(node_a, node_b);
 35.1248 +        }
 35.1249  
 35.1250 -	_Graph& graph;
 35.1251 +        _Graph& graph;
 35.1252        };
 35.1253      };
 35.1254  
 35.1255      /// \brief An empty erasable digraph class.
 35.1256 -    ///  
 35.1257 +    ///
 35.1258      /// This class provides beside the core digraph features core erase
 35.1259      /// functions for the digraph structure. The main difference between
 35.1260      /// the base and this interface is that the digraph alterations
 35.1261 @@ -1368,9 +1368,9 @@
 35.1262  
 35.1263        /// \brief Erase a node from the digraph.
 35.1264        ///
 35.1265 -      /// Erase a node from the digraph. This function should 
 35.1266 +      /// Erase a node from the digraph. This function should
 35.1267        /// erase all arcs connecting to the node.
 35.1268 -      void erase(const Node&) {}    
 35.1269 +      void erase(const Node&) {}
 35.1270  
 35.1271        /// \brief Erase an arc from the digraph.
 35.1272        ///
 35.1273 @@ -1380,20 +1380,20 @@
 35.1274  
 35.1275        template <typename _Digraph>
 35.1276        struct Constraints {
 35.1277 -	void constraints() {
 35.1278 +        void constraints() {
 35.1279            checkConcept<Base, _Digraph>();
 35.1280 -	  typename _Digraph::Node node;
 35.1281 -	  digraph.erase(node);
 35.1282 -	  typename _Digraph::Arc arc;
 35.1283 -	  digraph.erase(arc);
 35.1284 -	}
 35.1285 +          typename _Digraph::Node node;
 35.1286 +          digraph.erase(node);
 35.1287 +          typename _Digraph::Arc arc;
 35.1288 +          digraph.erase(arc);
 35.1289 +        }
 35.1290  
 35.1291 -	_Digraph& digraph;
 35.1292 +        _Digraph& digraph;
 35.1293        };
 35.1294      };
 35.1295  
 35.1296      /// \brief An empty erasable base undirected graph class.
 35.1297 -    ///  
 35.1298 +    ///
 35.1299      /// This class provides beside the core undirected graph features
 35.1300      /// core erase functions for the undirceted graph structure. The
 35.1301      /// main difference between the base and this interface is that
 35.1302 @@ -1410,7 +1410,7 @@
 35.1303        ///
 35.1304        /// Erase a node from the graph. This function should erase
 35.1305        /// arcs connecting to the node.
 35.1306 -      void erase(const Node&) {}    
 35.1307 +      void erase(const Node&) {}
 35.1308  
 35.1309        /// \brief Erase an arc from the graph.
 35.1310        ///
 35.1311 @@ -1420,15 +1420,15 @@
 35.1312  
 35.1313        template <typename _Graph>
 35.1314        struct Constraints {
 35.1315 -	void constraints() {
 35.1316 +        void constraints() {
 35.1317            checkConcept<Base, _Graph>();
 35.1318 -	  typename _Graph::Node node;
 35.1319 -	  graph.erase(node);
 35.1320 -	  typename _Graph::Edge edge;
 35.1321 -	  graph.erase(edge);
 35.1322 -	}
 35.1323 +          typename _Graph::Node node;
 35.1324 +          graph.erase(node);
 35.1325 +          typename _Graph::Edge edge;
 35.1326 +          graph.erase(edge);
 35.1327 +        }
 35.1328  
 35.1329 -	_Graph& graph;
 35.1330 +        _Graph& graph;
 35.1331        };
 35.1332      };
 35.1333  
 35.1334 @@ -1448,16 +1448,16 @@
 35.1335        ///
 35.1336        /// Erase all nodes and arcs from the digraph.
 35.1337        ///
 35.1338 -      void clear() {}    
 35.1339 +      void clear() {}
 35.1340  
 35.1341        template <typename _Digraph>
 35.1342        struct Constraints {
 35.1343 -	void constraints() {
 35.1344 +        void constraints() {
 35.1345            checkConcept<Base, _Digraph>();
 35.1346 -	  digraph.clear();
 35.1347 -	}
 35.1348 +          digraph.clear();
 35.1349 +        }
 35.1350  
 35.1351 -	_Digraph digraph;
 35.1352 +        _Digraph digraph;
 35.1353        };
 35.1354      };
 35.1355  
 35.1356 @@ -1475,11 +1475,11 @@
 35.1357  
 35.1358        template <typename _Graph>
 35.1359        struct Constraints {
 35.1360 -	void constraints() {
 35.1361 +        void constraints() {
 35.1362            checkConcept<ClearableGraphComponent<Base>, _Graph>();
 35.1363 -	}
 35.1364 +        }
 35.1365  
 35.1366 -	_Graph graph;
 35.1367 +        _Graph graph;
 35.1368        };
 35.1369      };
 35.1370  
    36.1 --- a/lemon/concepts/heap.h	Sun Jul 13 16:46:56 2008 +0100
    36.2 +++ b/lemon/concepts/heap.h	Sun Jul 13 19:51:02 2008 +0100
    36.3 @@ -1,6 +1,6 @@
    36.4 -/* -*- C++ -*-
    36.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    36.6   *
    36.7 - * This file is a part of LEMON, a generic C++ optimization library
    36.8 + * This file is a part of LEMON, a generic C++ optimization library.
    36.9   *
   36.10   * Copyright (C) 2003-2008
   36.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   36.12 @@ -52,14 +52,14 @@
   36.13        /// from the point of view of the heap, but may be useful for
   36.14        /// the user.
   36.15        ///
   36.16 -      /// The \c ItemIntMap must be initialized in such a way, that it 
   36.17 +      /// The \c ItemIntMap must be initialized in such a way, that it
   36.18        /// assigns \c PRE_HEAP (<tt>-1</tt>) to every item.
   36.19        enum State {
   36.20 -	IN_HEAP = 0,
   36.21 -	PRE_HEAP = -1,
   36.22 -	POST_HEAP = -2
   36.23 +        IN_HEAP = 0,
   36.24 +        PRE_HEAP = -1,
   36.25 +        POST_HEAP = -2
   36.26        };
   36.27 -      
   36.28 +
   36.29        /// \brief The constructor.
   36.30        ///
   36.31        /// The constructor.
   36.32 @@ -85,8 +85,8 @@
   36.33        void clear();
   36.34  
   36.35        /// \brief Inserts an item into the heap with the given priority.
   36.36 -      ///    
   36.37 -      /// Inserts the given item into the heap with the given priority. 
   36.38 +      ///
   36.39 +      /// Inserts the given item into the heap with the given priority.
   36.40        /// \param i The item to insert.
   36.41        /// \param p The priority of the item.
   36.42        void push(const Item &i, const Prio &p) {}
   36.43 @@ -112,12 +112,12 @@
   36.44        /// \brief Removes an item from the heap.
   36.45        ///
   36.46        /// Removes the given item from the heap if it is already stored.
   36.47 -      /// \param i The item to delete. 
   36.48 +      /// \param i The item to delete.
   36.49        void erase(const Item &i) {}
   36.50  
   36.51        /// \brief The priority of an item.
   36.52        ///
   36.53 -      /// Returns the priority of the given item.  
   36.54 +      /// Returns the priority of the given item.
   36.55        /// \pre \c i must be in the heap.
   36.56        /// \param i The item.
   36.57        Prio operator[](const Item &i) const {}
   36.58 @@ -133,7 +133,7 @@
   36.59        /// \param i The item.
   36.60        /// \param p The priority.
   36.61        void set(const Item &i, const Prio &p) {}
   36.62 -      
   36.63 +
   36.64        /// \brief Decreases the priority of an item to the given value.
   36.65        ///
   36.66        /// Decreases the priority of an item to the given value.
   36.67 @@ -174,69 +174,69 @@
   36.68        template <typename _Heap>
   36.69        struct Constraints {
   36.70        public:
   36.71 -	void constraints() {
   36.72 -	  typedef typename _Heap::Item OwnItem;
   36.73 -	  typedef typename _Heap::Prio OwnPrio;
   36.74 -	  typedef typename _Heap::State OwnState;
   36.75 +        void constraints() {
   36.76 +          typedef typename _Heap::Item OwnItem;
   36.77 +          typedef typename _Heap::Prio OwnPrio;
   36.78 +          typedef typename _Heap::State OwnState;
   36.79  
   36.80 -	  Item item;
   36.81 -	  Prio prio;
   36.82 -	  item=Item();
   36.83 -	  prio=Prio();
   36.84 -	  ignore_unused_variable_warning(item);
   36.85 -	  ignore_unused_variable_warning(prio);
   36.86 +          Item item;
   36.87 +          Prio prio;
   36.88 +          item=Item();
   36.89 +          prio=Prio();
   36.90 +          ignore_unused_variable_warning(item);
   36.91 +          ignore_unused_variable_warning(prio);
   36.92  
   36.93 -	  OwnItem own_item;
   36.94 -	  OwnPrio own_prio;
   36.95 -	  OwnState own_state;
   36.96 -	  own_item=Item();
   36.97 -	  own_prio=Prio();
   36.98 -	  ignore_unused_variable_warning(own_item);
   36.99 -	  ignore_unused_variable_warning(own_prio);
  36.100 -	  ignore_unused_variable_warning(own_state);
  36.101 +          OwnItem own_item;
  36.102 +          OwnPrio own_prio;
  36.103 +          OwnState own_state;
  36.104 +          own_item=Item();
  36.105 +          own_prio=Prio();
  36.106 +          ignore_unused_variable_warning(own_item);
  36.107 +          ignore_unused_variable_warning(own_prio);
  36.108 +          ignore_unused_variable_warning(own_state);
  36.109  
  36.110 -	  _Heap heap1(map);
  36.111 -	  _Heap heap2 = heap1;
  36.112 -	  ignore_unused_variable_warning(heap1);
  36.113 -	  ignore_unused_variable_warning(heap2);
  36.114 -	  
  36.115 -	  int s = heap.size();
  36.116 -	  ignore_unused_variable_warning(s);
  36.117 -	  bool e = heap.empty();
  36.118 -	  ignore_unused_variable_warning(e);
  36.119 +          _Heap heap1(map);
  36.120 +          _Heap heap2 = heap1;
  36.121 +          ignore_unused_variable_warning(heap1);
  36.122 +          ignore_unused_variable_warning(heap2);
  36.123  
  36.124 -	  prio = heap.prio();
  36.125 -	  item = heap.top();
  36.126 -	  prio = heap[item];
  36.127 -	  own_prio = heap.prio();
  36.128 -	  own_item = heap.top();
  36.129 -	  own_prio = heap[own_item];
  36.130 +          int s = heap.size();
  36.131 +          ignore_unused_variable_warning(s);
  36.132 +          bool e = heap.empty();
  36.133 +          ignore_unused_variable_warning(e);
  36.134  
  36.135 -	  heap.push(item, prio);
  36.136 -	  heap.push(own_item, own_prio);
  36.137 -	  heap.pop();
  36.138 +          prio = heap.prio();
  36.139 +          item = heap.top();
  36.140 +          prio = heap[item];
  36.141 +          own_prio = heap.prio();
  36.142 +          own_item = heap.top();
  36.143 +          own_prio = heap[own_item];
  36.144  
  36.145 -	  heap.set(item, prio);
  36.146 -	  heap.decrease(item, prio);
  36.147 -	  heap.increase(item, prio);
  36.148 -	  heap.set(own_item, own_prio);
  36.149 -	  heap.decrease(own_item, own_prio);
  36.150 -	  heap.increase(own_item, own_prio);
  36.151 +          heap.push(item, prio);
  36.152 +          heap.push(own_item, own_prio);
  36.153 +          heap.pop();
  36.154  
  36.155 -	  heap.erase(item);
  36.156 -	  heap.erase(own_item);
  36.157 -	  heap.clear();
  36.158 +          heap.set(item, prio);
  36.159 +          heap.decrease(item, prio);
  36.160 +          heap.increase(item, prio);
  36.161 +          heap.set(own_item, own_prio);
  36.162 +          heap.decrease(own_item, own_prio);
  36.163 +          heap.increase(own_item, own_prio);
  36.164  
  36.165 -	  own_state = heap.state(own_item);
  36.166 -	  heap.state(own_item, own_state);
  36.167 +          heap.erase(item);
  36.168 +          heap.erase(own_item);
  36.169 +          heap.clear();
  36.170  
  36.171 -	  own_state = _Heap::PRE_HEAP;
  36.172 -	  own_state = _Heap::IN_HEAP;
  36.173 -	  own_state = _Heap::POST_HEAP;
  36.174 -	}
  36.175 +          own_state = heap.state(own_item);
  36.176 +          heap.state(own_item, own_state);
  36.177  
  36.178 -	_Heap& heap;
  36.179 -	ItemIntMap& map;
  36.180 +          own_state = _Heap::PRE_HEAP;
  36.181 +          own_state = _Heap::IN_HEAP;
  36.182 +          own_state = _Heap::POST_HEAP;
  36.183 +        }
  36.184 +
  36.185 +        _Heap& heap;
  36.186 +        ItemIntMap& map;
  36.187        };
  36.188      };
  36.189  
    37.1 --- a/lemon/concepts/maps.h	Sun Jul 13 16:46:56 2008 +0100
    37.2 +++ b/lemon/concepts/maps.h	Sun Jul 13 19:51:02 2008 +0100
    37.3 @@ -1,6 +1,6 @@
    37.4 -/* -*- C++ -*-
    37.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    37.6   *
    37.7 - * This file is a part of LEMON, a generic C++ optimization library
    37.8 + * This file is a part of LEMON, a generic C++ optimization library.
    37.9   *
   37.10   * Copyright (C) 2003-2008
   37.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   37.12 @@ -47,26 +47,26 @@
   37.13        typedef T Value;
   37.14  
   37.15        /// Returns the value associated with the given key.
   37.16 -      Value operator[](const Key &) const { 
   37.17 +      Value operator[](const Key &) const {
   37.18          return *static_cast<Value *>(0);
   37.19        }
   37.20  
   37.21        template<typename _ReadMap>
   37.22        struct Constraints {
   37.23 -	void constraints() {
   37.24 -	  Value val = m[key];
   37.25 -	  val = m[key];
   37.26 -	  typename _ReadMap::Value own_val = m[own_key];
   37.27 -	  own_val = m[own_key];
   37.28 +        void constraints() {
   37.29 +          Value val = m[key];
   37.30 +          val = m[key];
   37.31 +          typename _ReadMap::Value own_val = m[own_key];
   37.32 +          own_val = m[own_key];
   37.33  
   37.34 -	  ignore_unused_variable_warning(key);
   37.35 -	  ignore_unused_variable_warning(val);
   37.36 -	  ignore_unused_variable_warning(own_key);
   37.37 -	  ignore_unused_variable_warning(own_val);
   37.38 -	}
   37.39 -	const Key& key;
   37.40 -	const typename _ReadMap::Key& own_key;
   37.41 -	const _ReadMap& m;
   37.42 +          ignore_unused_variable_warning(key);
   37.43 +          ignore_unused_variable_warning(val);
   37.44 +          ignore_unused_variable_warning(own_key);
   37.45 +          ignore_unused_variable_warning(own_val);
   37.46 +        }
   37.47 +        const Key& key;
   37.48 +        const typename _ReadMap::Key& own_key;
   37.49 +        const _ReadMap& m;
   37.50        };
   37.51  
   37.52      };
   37.53 @@ -93,20 +93,20 @@
   37.54  
   37.55        template <typename _WriteMap>
   37.56        struct Constraints {
   37.57 -	void constraints() {
   37.58 -	  m.set(key, val);
   37.59 -	  m.set(own_key, own_val);
   37.60 +        void constraints() {
   37.61 +          m.set(key, val);
   37.62 +          m.set(own_key, own_val);
   37.63  
   37.64 -	  ignore_unused_variable_warning(key);
   37.65 -	  ignore_unused_variable_warning(val);
   37.66 -	  ignore_unused_variable_warning(own_key);
   37.67 -	  ignore_unused_variable_warning(own_val);
   37.68 -	}
   37.69 -	const Key& key;
   37.70 -	const Value& val;
   37.71 -	const typename _WriteMap::Key& own_key;
   37.72 -	const typename _WriteMap::Value& own_val;
   37.73 -	_WriteMap& m;
   37.74 +          ignore_unused_variable_warning(key);
   37.75 +          ignore_unused_variable_warning(val);
   37.76 +          ignore_unused_variable_warning(own_key);
   37.77 +          ignore_unused_variable_warning(own_val);
   37.78 +        }
   37.79 +        const Key& key;
   37.80 +        const Value& val;
   37.81 +        const typename _WriteMap::Key& own_key;
   37.82 +        const typename _WriteMap::Value& own_val;
   37.83 +        _WriteMap& m;
   37.84        };
   37.85      };
   37.86  
   37.87 @@ -116,7 +116,7 @@
   37.88      ///
   37.89      template<typename K, typename T>
   37.90      class ReadWriteMap : public ReadMap<K,T>,
   37.91 -			 public WriteMap<K,T>
   37.92 +                         public WriteMap<K,T>
   37.93      {
   37.94      public:
   37.95        /// The key type of the map.
   37.96 @@ -125,7 +125,7 @@
   37.97        typedef T Value;
   37.98  
   37.99        /// Returns the value associated with the given key.
  37.100 -      Value operator[](const Key &) const { 
  37.101 +      Value operator[](const Key &) const {
  37.102          return *static_cast<Value *>(0);
  37.103        }
  37.104  
  37.105 @@ -134,10 +134,10 @@
  37.106  
  37.107        template<typename _ReadWriteMap>
  37.108        struct Constraints {
  37.109 -	void constraints() {
  37.110 -	  checkConcept<ReadMap<K, T>, _ReadWriteMap >();
  37.111 -	  checkConcept<WriteMap<K, T>, _ReadWriteMap >();
  37.112 -	}
  37.113 +        void constraints() {
  37.114 +          checkConcept<ReadMap<K, T>, _ReadWriteMap >();
  37.115 +          checkConcept<WriteMap<K, T>, _ReadWriteMap >();
  37.116 +        }
  37.117        };
  37.118      };
  37.119  
  37.120 @@ -164,7 +164,7 @@
  37.121      public:
  37.122  
  37.123        /// Returns a reference to the value associated with the given key.
  37.124 -      Reference operator[](const Key &) { 
  37.125 +      Reference operator[](const Key &) {
  37.126          return *static_cast<Value *>(0);
  37.127        }
  37.128  
  37.129 @@ -178,28 +178,28 @@
  37.130  
  37.131        template<typename _ReferenceMap>
  37.132        struct Constraints {
  37.133 -	void constraints() {
  37.134 -	  checkConcept<ReadWriteMap<K, T>, _ReferenceMap >();
  37.135 -	  ref = m[key];
  37.136 -	  m[key] = val;
  37.137 -	  m[key] = ref;
  37.138 -	  m[key] = cref;
  37.139 -	  own_ref = m[own_key];
  37.140 -	  m[own_key] = own_val;
  37.141 -	  m[own_key] = own_ref;
  37.142 -	  m[own_key] = own_cref;
  37.143 -	  m[key] = m[own_key];
  37.144 -	  m[own_key] = m[key];
  37.145 -	}
  37.146 -	const Key& key;
  37.147 -	Value& val;
  37.148 -	Reference ref;
  37.149 -	ConstReference cref;
  37.150 -	const typename _ReferenceMap::Key& own_key;
  37.151 -	typename _ReferenceMap::Value& own_val;
  37.152 -	typename _ReferenceMap::Reference own_ref;
  37.153 -	typename _ReferenceMap::ConstReference own_cref;
  37.154 -	_ReferenceMap& m;
  37.155 +        void constraints() {
  37.156 +          checkConcept<ReadWriteMap<K, T>, _ReferenceMap >();
  37.157 +          ref = m[key];
  37.158 +          m[key] = val;
  37.159 +          m[key] = ref;
  37.160 +          m[key] = cref;
  37.161 +          own_ref = m[own_key];
  37.162 +          m[own_key] = own_val;
  37.163 +          m[own_key] = own_ref;
  37.164 +          m[own_key] = own_cref;
  37.165 +          m[key] = m[own_key];
  37.166 +          m[own_key] = m[key];
  37.167 +        }
  37.168 +        const Key& key;
  37.169 +        Value& val;
  37.170 +        Reference ref;
  37.171 +        ConstReference cref;
  37.172 +        const typename _ReferenceMap::Key& own_key;
  37.173 +        typename _ReferenceMap::Value& own_val;
  37.174 +        typename _ReferenceMap::Reference own_ref;
  37.175 +        typename _ReferenceMap::ConstReference own_cref;
  37.176 +        _ReferenceMap& m;
  37.177        };
  37.178      };
  37.179  
    38.1 --- a/lemon/concepts/path.h	Sun Jul 13 16:46:56 2008 +0100
    38.2 +++ b/lemon/concepts/path.h	Sun Jul 13 19:51:02 2008 +0100
    38.3 @@ -1,6 +1,6 @@
    38.4 -/* -*- C++ -*-
    38.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
    38.6   *
    38.7 - * This file is a part of LEMON, a generic C++ optimization library
    38.8 + * This file is a part of LEMON, a generic C++ optimization library.
    38.9   *
   38.10   * Copyright (C) 2003-2008
   38.11   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
   38.12 @@ -39,7 +39,7 @@
   38.13      /// a digraph.
   38.14      ///
   38.15      /// A skeleton structure for representing directed paths in a
   38.16 -    /// digraph.  
   38.17 +    /// digraph.
   38.18      /// \tparam _Digraph The digraph type in which the path is.
   38.19      ///
   38.20      /// In a sense, the path can be treated as a list of arcs. The
   38.21 @@ -83,25 +83,25 @@
   38.22        /// This class is used to iterate on the arcs of the paths.
   38.23        class ArcIt {
   38.24        public:
   38.25 -	/// Default constructor
   38.26 -	ArcIt() {}
   38.27 -	/// Invalid constructor
   38.28 -	ArcIt(Invalid) {}
   38.29 -	/// Constructor for first arc
   38.30 -	ArcIt(const Path &) {}
   38.31 +        /// Default constructor
   38.32 +        ArcIt() {}
   38.33 +        /// Invalid constructor
   38.34 +        ArcIt(Invalid) {}
   38.35 +        /// Constructor for first arc
   38.36 +        ArcIt(const Path &) {}
   38.37  
   38.38          /// Conversion to Arc
   38.39 -	operator Arc() const { return INVALID; }
   38.40 +        operator Arc() const { return INVALID; }
   38.41  
   38.42 -	/// Next arc
   38.43 -	ArcIt& operator++() {return *this;}
   38.44 +        /// Next arc
   38.45 +        ArcIt& operator++() {return *this;}
   38.46  
   38.47 -	/// Comparison operator
   38.48 -	bool operator==(const ArcIt&) const {return true;}
   38.49 -	/// Comparison operator
   38.50 -	bool operator!=(const ArcIt&) const {return true;}
   38.51 - 	/// Comparison operator
   38.52 - 	bool operator<(const ArcIt&) const {return false;}
   38.53 +        /// Comparison operator
   38.54 +        bool operator==(const ArcIt&) const {return true;}
   38.55 +        /// Comparison operator
   38.56 +        bool operator!=(const ArcIt&) const {return true;}
   38.57 +         /// Comparison operator
   38.58 +         bool operator<(const ArcIt&) const {return false;}
   38.59  
   38.60        };
   38.61  
   38.62 @@ -137,7 +137,7 @@
   38.63      };
   38.64  
   38.65      namespace _path_bits {
   38.66 -      
   38.67 +
   38.68        template <typename _Digraph, typename _Path, typename RevPathTag = void>
   38.69        struct PathDumperConstraints {
   38.70          void constraints() {
   38.71 @@ -162,7 +162,7 @@
   38.72  
   38.73        template <typename _Digraph, typename _Path>
   38.74        struct PathDumperConstraints<
   38.75 -        _Digraph, _Path, 
   38.76 +        _Digraph, _Path,
   38.77          typename enable_if<typename _Path::RevPathTag, void>::type
   38.78        > {
   38.79          void constraints() {
   38.80 @@ -184,7 +184,7 @@
   38.81          }
   38.82          _Path& p;
   38.83        };
   38.84 -    
   38.85 +
   38.86      }
   38.87  
   38.88  
   38.89 @@ -209,7 +209,7 @@
   38.90      ///