Index: gtags
===================================================================
--- .hgtags	(revision 936)
+++ 	(revision )
@@ -1,4 +1,0 @@
-3ed8f7c8bed8f51aecdc8395aa11af2f1fa12d9f r1.2
-ffc2d2559fc916e90c3f000582a2d4761d229d44 r1.2.1
-d303bfa8b1edf141856665fb73fddcc6abc33fef r1.2.2
-9e587caed9537aeb01a855749b5919ee3e005911 r1.2.3
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt	(revision 954)
+++ CMakeLists.txt	(revision 942)
@@ -67,5 +67,5 @@
     # C4996: 'function': was declared deprecated
   ELSE()
-    SET(CXX_WARNING "-Wall")
+    SET(CXX_WARNING "-Wall -W")
   ENDIF()
 ENDIF()
@@ -74,8 +74,8 @@
 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LEMON_CXX_WARNING_FLAGS}")
 
-SET( CMAKE_CXX_FLAGS_MAINTAINER "-Werror -ggdb -O0" CACHE STRING
+SET( CMAKE_CXX_FLAGS_MAINTAINER "-Werror -ggdb" CACHE STRING
     "Flags used by the C++ compiler during maintainer builds."
     FORCE )
-SET( CMAKE_C_FLAGS_MAINTAINER "-Werror -O0" CACHE STRING
+SET( CMAKE_C_FLAGS_MAINTAINER "-Werror" CACHE STRING
     "Flags used by the C compiler during maintainer builds."
     FORCE )
Index: NEWS
===================================================================
--- NEWS	(revision 934)
+++ NEWS	(revision 883)
@@ -1,38 +1,2 @@
-2011-11-09 Version 1.2.3 released
-
-        Bugfix release.
-
-        #428: Add missing lemon/lemon.pc.cmake to the release tarball
-        #429: Fix VS warnings
-        #430: Fix LpBase::Constr two-side limit bug
-
-2011-08-08 Version 1.2.2 released
-
-        Bugfix release.
-
-        #392: Bug fix in Dfs::start(s,t)
-        #414: Fix wrong initialization in Preflow
-        #404: Update Doxygen configuration
-        #416: Support tests with valgrind
-        #418: Better Win CodeBlock/MinGW support
-        #419: Backport build environment improvements from the main branch
-              - Build of mip_test and lp_test precede the running of the tests
-              - Also search for coin libs under ${COIN_ROOT_DIR}/lib/coin
-              - Do not look for COIN_VOL libraries
-        #382: Allow lgf file without Arc maps
-        #417: Bug fix in CostScaling
-
-2010-10-21 Version 1.2.1 released
-
-        Bugfix release.
-
-        #366: Fix Pred[Matrix]MapPath::empty()
-        #371: Bug fix in (di)graphCopy()
-              The target graph is cleared before adding nodes and arcs/edges.
-
-        #364: Add missing UndirectedTags
-        #368: Fix the usage of std::numeric_limits<>::min() in Network Simplex
-        #372: Fix a critical bug in preflow
-
 2010-03-19 Version 1.2 released
 
Index: cmake/FindCOIN.cmake
===================================================================
--- cmake/FindCOIN.cmake	(revision 951)
+++ cmake/FindCOIN.cmake	(revision 920)
@@ -55,15 +55,4 @@
 )
 
-FIND_LIBRARY(COIN_ZLIB_LIBRARY
-  NAMES z libz
-  HINTS ${COIN_ROOT_DIR}/lib/coin
-  HINTS ${COIN_ROOT_DIR}/lib
-)
-FIND_LIBRARY(COIN_BZ2_LIBRARY
-  NAMES bz2 libbz2
-  HINTS ${COIN_ROOT_DIR}/lib/coin
-  HINTS ${COIN_ROOT_DIR}/lib
-)
-
 INCLUDE(FindPackageHandleStandardArgs)
 FIND_PACKAGE_HANDLE_STANDARD_ARGS(COIN DEFAULT_MSG
@@ -83,13 +72,7 @@
 IF(COIN_FOUND)
   SET(COIN_INCLUDE_DIRS ${COIN_INCLUDE_DIR})
-  SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY};${COIN_ZLIB_LIBRARY};${COIN_BZ2_LIBRARY}")
-  IF(COIN_ZLIB_LIBRARY)
-    SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARIES};${COIN_ZLIB_LIBRARY}")
-  ENDIF(COIN_ZLIB_LIBRARY)
-   IF(COIN_BZ2_LIBRARY)
-    SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARIES};${COIN_BZ2_LIBRARY}")
-  ENDIF(COIN_BZ2_LIBRARY)
-  SET(COIN_CBC_LIBRARIES "${COIN_CBC_LIBRARY};${COIN_CBC_SOLVER_LIBRARY};${COIN_CGL_LIBRARY};${COIN_OSI_LIBRARY};${COIN_OSI_CBC_LIBRARY};${COIN_OSI_CLP_LIBRARY};${COIN_ZLIB_LIBRARY};${COIN_BZ2_LIBRARY};${COIN_CLP_LIBRARIES}")
-  SET(COIN_LIBRARIES ${COIN_CBC_LIBRARIES})
+  SET(COIN_LIBRARIES "${COIN_CBC_LIBRARY};${COIN_CBC_SOLVER_LIBRARY};${COIN_CGL_LIBRARY};${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY};${COIN_OSI_LIBRARY};${COIN_OSI_CBC_LIBRARY};${COIN_OSI_CLP_LIBRARY}")
+  SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY}")
+  SET(COIN_CBC_LIBRARIES ${COIN_LIBRARIES})
 ENDIF(COIN_FOUND)
 
@@ -106,6 +89,4 @@
   COIN_OSI_VOL_LIBRARY
   COIN_VOL_LIBRARY
-  COIN_ZLIB_LIBRARY
-  COIN_BZ2_LIBRARY
 )
 
Index: cmake/FindCPLEX.cmake
===================================================================
--- cmake/FindCPLEX.cmake	(revision 950)
+++ cmake/FindCPLEX.cmake	(revision 636)
@@ -3,14 +3,13 @@
 FIND_PATH(CPLEX_INCLUDE_DIR
   ilcplex/cplex.h
-  PATHS "C:/ILOG/CPLEX/include"
-  PATHS "/opt/ilog/cplex/include"
+  PATHS "C:/ILOG/CPLEX91/include"
+  PATHS "/opt/ilog/cplex91/include"
   HINTS ${CPLEX_ROOT_DIR}/include
 )
 FIND_LIBRARY(CPLEX_LIBRARY
-  cplex
-  PATHS "C:/ILOG/CPLEX/lib/msvc7/stat_mda"
-  PATHS "/opt/ilog/cplex/bin"
+  cplex91
+  PATHS "C:/ILOG/CPLEX91/lib/msvc7/stat_mda"
+  PATHS "/opt/ilog/cplex91/bin"
   HINTS ${CPLEX_ROOT_DIR}/bin
-  HINTS ${CPLEX_ROOT_DIR}/lib
 )
 
@@ -19,7 +18,6 @@
 
 FIND_PATH(CPLEX_BIN_DIR
-  cplex.dll
-  PATHS "C:/ILOG/CPLEX/bin/x86_win32"
-  HINTS ${CPLEX_ROOT_DIR}/bin
+  cplex91.dll
+  PATHS "C:/ILOG/CPLEX91/bin/x86_win32"
 )
 
Index: doc/groups.dox
===================================================================
--- doc/groups.dox	(revision 884)
+++ doc/groups.dox	(revision 880)
@@ -287,4 +287,12 @@
 
 /**
+@defgroup matrices Matrices
+@ingroup auxdat
+\brief Two dimensional data storages implemented in LEMON.
+
+This group contains two dimensional data storages implemented in LEMON.
+*/
+
+/**
 @defgroup algs Algorithms
 \brief This group contains the several algorithms
@@ -319,4 +327,8 @@
    but the digraph should not contain directed cycles with negative total
    length.
+ - \ref FloydWarshall "Floyd-Warshall" and \ref Johnson "Johnson" algorithms
+   for solving the \e all-pairs \e shortest \e paths \e problem when arc
+   lenghts can be either positive or negative, but the digraph should
+   not contain directed cycles with negative total length.
  - \ref Suurballe A successive shortest path algorithm for finding
    arc-disjoint paths between two nodes having minimum total length.
@@ -352,8 +364,18 @@
 \f[ 0 \leq f(uv) \leq cap(uv) \quad \forall uv\in A \f]
 
-\ref Preflow is an efficient implementation of Goldberg-Tarjan's
-preflow push-relabel algorithm \ref goldberg88newapproach for finding
-maximum flows. It also provides functions to query the minimum cut,
-which is the dual problem of maximum flow.
+LEMON contains several algorithms for solving maximum flow problems:
+- \ref EdmondsKarp Edmonds-Karp algorithm
+  \ref edmondskarp72theoretical.
+- \ref Preflow Goldberg-Tarjan's preflow push-relabel algorithm
+  \ref goldberg88newapproach.
+- \ref DinitzSleatorTarjan Dinitz's blocking flow algorithm with dynamic trees
+  \ref dinic70algorithm, \ref sleator83dynamic.
+- \ref GoldbergTarjan !Preflow push-relabel algorithm with dynamic trees
+  \ref goldberg88newapproach, \ref sleator83dynamic.
+
+In most cases the \ref Preflow algorithm provides the
+fastest method for computing a maximum flow. All implementations
+also provide functions to query the minimum cut, which is the dual
+problem of maximum flow.
 
 \ref Circulation is a preflow push-relabel algorithm implemented directly
@@ -412,4 +434,6 @@
 - \ref HaoOrlin "Hao-Orlin algorithm" for calculating minimum cut
   in directed graphs.
+- \ref NagamochiIbaraki "Nagamochi-Ibaraki algorithm" for
+  calculating minimum cut in undirected graphs.
 - \ref GomoryHu "Gomory-Hu tree computation" for calculating
   all-pairs minimum cut in undirected graphs.
@@ -474,4 +498,14 @@
 
 The matching algorithms implemented in LEMON:
+- \ref MaxBipartiteMatching Hopcroft-Karp augmenting path algorithm
+  for calculating maximum cardinality matching in bipartite graphs.
+- \ref PrBipartiteMatching Push-relabel algorithm
+  for calculating maximum cardinality matching in bipartite graphs.
+- \ref MaxWeightedBipartiteMatching
+  Successive shortest path algorithm for calculating maximum weighted
+  matching and maximum weighted bipartite matching in bipartite graphs.
+- \ref MinCostMaxBipartiteMatching
+  Successive shortest path algorithm for calculating minimum cost maximum
+  matching in bipartite graphs.
 - \ref MaxMatching Edmond's blossom shrinking algorithm for calculating
   maximum cardinality matching in general graphs.
@@ -518,4 +552,13 @@
 
 /**
+@defgroup approx Approximation Algorithms
+@ingroup algs
+\brief Approximation algorithms.
+
+This group contains the approximation and heuristic algorithms
+implemented in LEMON.
+*/
+
+/**
 @defgroup auxalg Auxiliary Algorithms
 @ingroup algs
@@ -546,4 +589,21 @@
 The currently supported solvers are \ref glpk, \ref clp, \ref cbc,
 \ref cplex, \ref soplex.
+*/
+
+/**
+@defgroup lp_utils Tools for Lp and Mip Solvers
+@ingroup lp_group
+\brief Helper tools to the Lp and Mip solvers.
+
+This group adds some helper tools to general optimization framework
+implemented in LEMON.
+*/
+
+/**
+@defgroup metah Metaheuristics
+@ingroup gen_opt_group
+\brief Metaheuristics for LEMON library.
+
+This group contains some metaheuristic optimization tools.
 */
 
Index: doc/lgf.dox
===================================================================
--- doc/lgf.dox	(revision 927)
+++ doc/lgf.dox	(revision 923)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bfs.h
===================================================================
--- lemon/bfs.h	(revision 954)
+++ lemon/bfs.h	(revision 877)
@@ -1252,5 +1252,4 @@
       }
       _Visitor& visitor;
-      Constraints() {}
     };
   };
Index: lemon/bits/graph_adaptor_extender.h
===================================================================
--- lemon/bits/graph_adaptor_extender.h	(revision 927)
+++ lemon/bits/graph_adaptor_extender.h	(revision 886)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bits/path_dump.h
===================================================================
--- lemon/bits/path_dump.h	(revision 927)
+++ lemon/bits/path_dump.h	(revision 890)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bits/solver_bits.h
===================================================================
--- lemon/bits/solver_bits.h	(revision 956)
+++ lemon/bits/solver_bits.h	(revision 877)
@@ -45,5 +45,4 @@
       void clear() {
         first_item = -1;
-        last_item = -1;
         first_free_item = -1;
         items.clear();
Index: lemon/bits/windows.cc
===================================================================
--- lemon/bits/windows.cc	(revision 927)
+++ lemon/bits/windows.cc	(revision 914)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/cbc.cc
===================================================================
--- lemon/cbc.cc	(revision 956)
+++ lemon/cbc.cc	(revision 746)
@@ -26,5 +26,10 @@
 #include <coin/OsiSolverInterface.hpp>
 
+#ifdef COIN_HAS_CLP
 #include "coin/OsiClpSolverInterface.hpp"
+#endif
+#ifdef COIN_HAS_OSL
+#include "coin/OsiOslSolverInterface.hpp"
+#endif
 
 #include "coin/CbcCutGenerator.hpp"
@@ -266,5 +271,11 @@
       delete _osi_solver;
     }
+#ifdef COIN_HAS_CLP
     _osi_solver = new OsiClpSolverInterface();
+#elif COIN_HAS_OSL
+    _osi_solver = new OsiOslSolverInterface();
+#else
+#error Cannot instantiate Osi solver
+#endif
 
     _osi_solver->loadFromCoinModel(*_prob);
@@ -318,4 +329,5 @@
       _cbc_model->addCutGenerator(&flowGen, -1, "FlowCover");
 
+#ifdef COIN_HAS_CLP
       OsiClpSolverInterface* osiclp =
         dynamic_cast<OsiClpSolverInterface*>(_cbc_model->solver());
@@ -323,4 +335,5 @@
         osiclp->setupForRepeatedUse(2, 0);
       }
+#endif
 
       CbcRounding heuristic1(*_cbc_model);
@@ -436,4 +449,6 @@
 
     _prob = new CoinModel();
+    rows.clear();
+    cols.clear();
   }
 
Index: lemon/clp.cc
===================================================================
--- lemon/clp.cc	(revision 956)
+++ lemon/clp.cc	(revision 877)
@@ -438,4 +438,6 @@
     delete _prob;
     _prob = new ClpSimplex();
+    rows.clear();
+    cols.clear();
     _col_names_ref.clear();
     _clear_temporals();
Index: lemon/concepts/graph_components.h
===================================================================
--- lemon/concepts/graph_components.h	(revision 954)
+++ lemon/concepts/graph_components.h	(revision 877)
@@ -116,5 +116,4 @@
         const _GraphItem &ia;
         const _GraphItem &ib;
-        Constraints() {}
       };
     };
@@ -176,5 +175,4 @@
 
         const _Digraph& digraph;
-        Constraints() {}
       };
     };
@@ -293,5 +291,4 @@
 
         const _Graph& graph;
-      Constraints() {}
       };
 
@@ -373,5 +370,4 @@
 
         const _Digraph& digraph;
-        Constraints() {}
       };
     };
@@ -426,5 +422,4 @@
 
         const _Graph& graph;
-        Constraints() {}
       };
     };
@@ -504,5 +499,4 @@
         }
         const GR& g;
-        Constraints() {}
       };
     };
@@ -593,5 +587,4 @@
         const Base& node;
         const GR& graph;
-        Constraints() {}
       };
     };
@@ -770,5 +763,4 @@
 
         const _Digraph& digraph;
-        Constraints() {}
       };
     };
@@ -895,5 +887,4 @@
 
         const _Graph& graph;
-        Constraints() {}
       };
     };
@@ -953,5 +944,4 @@
 
         const _Digraph& digraph;
-        Constraints() {}
       };
     };
@@ -995,5 +985,4 @@
 
         const _Graph& graph;
-        Constraints() {}
       };
     };
@@ -1073,5 +1062,4 @@
         const GR &g;
         const typename GraphMap::Value &t;
-        Constraints() {}
       };
 
@@ -1212,5 +1200,4 @@
 
         const _Digraph& digraph;
-        Constraints() {}
       };
     };
@@ -1298,5 +1285,4 @@
 
         const _Graph& graph;
-        Constraints() {}
       };
     };
@@ -1343,5 +1329,4 @@
 
         _Digraph& digraph;
-        Constraints() {}
       };
     };
@@ -1388,5 +1373,4 @@
 
         _Graph& graph;
-        Constraints() {}
       };
     };
@@ -1428,5 +1412,4 @@
 
         _Digraph& digraph;
-        Constraints() {}
       };
     };
@@ -1468,5 +1451,4 @@
 
         _Graph& graph;
-        Constraints() {}
       };
     };
@@ -1497,5 +1479,4 @@
 
         _Digraph& digraph;
-        Constraints() {}
       };
     };
@@ -1526,5 +1507,4 @@
 
         _Graph& graph;
-        Constraints() {}
       };
     };
Index: lemon/concepts/heap.h
===================================================================
--- lemon/concepts/heap.h	(revision 954)
+++ lemon/concepts/heap.h	(revision 877)
@@ -315,5 +315,4 @@
         _Heap& heap;
         ItemIntMap& map;
-        Constraints() {}
       };
     };
Index: lemon/concepts/maps.h
===================================================================
--- lemon/concepts/maps.h	(revision 953)
+++ lemon/concepts/maps.h	(revision 718)
@@ -69,5 +69,4 @@
         const typename _ReadMap::Key& own_key;
         const _ReadMap& m;
-        Constraints() {}
       };
 
@@ -111,5 +110,4 @@
         const typename _WriteMap::Value& own_val;
         _WriteMap& m;
-        Constraints() {}
       };
     };
@@ -132,6 +130,5 @@
       /// Returns the value associated with the given key.
       Value operator[](const Key &) const {
-        Value *r = 0;
-        return *r;
+        return *static_cast<Value *>(0);
       }
 
@@ -173,12 +170,10 @@
       /// Returns a reference to the value associated with the given key.
       Reference operator[](const Key &) {
-        Value *r = 0;
-        return *r;
+        return *static_cast<Value *>(0);
       }
 
       /// Returns a const reference to the value associated with the given key.
       ConstReference operator[](const Key &) const {
-        Value *r = 0;
-        return *r;
+        return *static_cast<Value *>(0);
       }
 
@@ -211,5 +206,4 @@
         typename _ReferenceMap::ConstReference own_cref;
         _ReferenceMap& m;
-        Constraints() {}
       };
     };
Index: lemon/concepts/path.h
===================================================================
--- lemon/concepts/path.h	(revision 954)
+++ lemon/concepts/path.h	(revision 785)
@@ -169,5 +169,4 @@
         }
         _Path& p;
-        PathDumperConstraints() {}
       };
 
@@ -195,5 +194,4 @@
         }
         _Path& p;
-        PathDumperConstraints() {}
       };
 
Index: lemon/core.h
===================================================================
--- lemon/core.h	(revision 960)
+++ lemon/core.h	(revision 942)
@@ -1850,24 +1850,13 @@
     ///a single node \c n, then \ref refresh(Node) "refresh(n)" is enough.
     ///
-    Arc operator()(Node s, Node t, Arc prev=INVALID) const
+#ifdef DOXYGEN
+    Arc operator()(Node s, Node t, Arc prev=INVALID) const {}
+#else
+    using ArcLookUp<GR>::operator() ;
+    Arc operator()(Node s, Node t, Arc prev) const
     {
-      if(prev==INVALID)
-        {
-          Arc f=INVALID;
-          Arc e;
-          for(e=_head[s];
-              e!=INVALID&&_g.target(e)!=t;
-              e = t < _g.target(e)?_left[e]:_right[e]) ;
-          while(e!=INVALID)
-            if(_g.target(e)==t)
-              {
-                f = e;
-                e = _left[e];
-              }
-            else e = _right[e];
-          return f;
-        }
-      else return _next[prev];
-    }
+      return prev==INVALID?(*this)(s,t):_next[prev];
+    }
+#endif
 
   };
Index: lemon/cost_scaling.h
===================================================================
--- lemon/cost_scaling.h	(revision 927)
+++ lemon/cost_scaling.h	(revision 909)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/cplex.cc
===================================================================
--- lemon/cplex.cc	(revision 956)
+++ lemon/cplex.cc	(revision 877)
@@ -471,4 +471,6 @@
     int status;
     _prob = CPXcreateprob(cplexEnv(), &status, "Cplex problem");
+    rows.clear();
+    cols.clear();
   }
 
Index: lemon/dfs.h
===================================================================
--- lemon/dfs.h	(revision 954)
+++ lemon/dfs.h	(revision 942)
@@ -1194,5 +1194,4 @@
       }
       _Visitor& visitor;
-      Constraints() {}
     };
   };
Index: lemon/glpk.cc
===================================================================
--- lemon/glpk.cc	(revision 956)
+++ lemon/glpk.cc	(revision 877)
@@ -557,4 +557,6 @@
   void GlpkBase::_clear() {
     glp_erase_prob(lp);
+    rows.clear();
+    cols.clear();
   }
 
Index: lemon/lp_base.h
===================================================================
--- lemon/lp_base.h	(revision 956)
+++ lemon/lp_base.h	(revision 933)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -1557,5 +1557,5 @@
 
     ///Clears the problem
-    void clear() { _clear(); rows.clear(); cols.clear(); }
+    void clear() { _clear(); }
 
     /// Sets the message level of the solver
Index: lemon/maps.h
===================================================================
--- lemon/maps.h	(revision 927)
+++ lemon/maps.h	(revision 915)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/path.h
===================================================================
--- lemon/path.h	(revision 958)
+++ lemon/path.h	(revision 877)
@@ -65,10 +65,4 @@
     Path() {}
 
-    /// \brief Copy constructor
-    ///
-    Path(const Path& cpath) {
-      pathCopy(cpath, *this);
-    }
-
     /// \brief Template copy constructor
     ///
@@ -78,11 +72,4 @@
     Path(const CPath& cpath) {
       pathCopy(cpath, *this);
-    }
-
-    /// \brief Copy assignment
-    ///
-    Path& operator=(const Path& cpath) {
-      pathCopy(cpath, *this);
-      return *this;
     }
 
@@ -266,10 +253,4 @@
     SimplePath() {}
 
-    /// \brief Copy constructor
-    ///
-    SimplePath(const SimplePath& cpath) {
-      pathCopy(cpath, *this);
-    }
-
     /// \brief Template copy constructor
     ///
@@ -279,11 +260,4 @@
     SimplePath(const CPath& cpath) {
       pathCopy(cpath, *this);
-    }
-
-    /// \brief Copy assignment
-    ///
-    SimplePath& operator=(const SimplePath& cpath) {
-      pathCopy(cpath, *this);
-      return *this;
     }
 
@@ -458,10 +432,4 @@
     ListPath() : first(0), last(0) {}
 
-    /// \brief Copy constructor
-    ///
-    ListPath(const ListPath& cpath) : first(0), last(0) {
-      pathCopy(cpath, *this);
-    }
-
     /// \brief Template copy constructor
     ///
@@ -478,11 +446,4 @@
     ~ListPath() {
       clear();
-    }
-
-    /// \brief Copy assignment
-    ///
-    ListPath& operator=(const ListPath& cpath) {
-      pathCopy(cpath, *this);
-      return *this;
     }
 
@@ -798,10 +759,4 @@
     StaticPath() : len(0), arcs(0) {}
 
-    /// \brief Copy constructor
-    ///
-    StaticPath(const StaticPath& cpath) : arcs(0) {
-      pathCopy(cpath, *this);
-    }
-
     /// \brief Template copy constructor
     ///
@@ -817,11 +772,4 @@
     ~StaticPath() {
       if (arcs) delete[] arcs;
-    }
-
-    /// \brief Copy assignment
-    ///
-    StaticPath& operator=(const StaticPath& cpath) {
-      pathCopy(cpath, *this);
-      return *this;
     }
 
Index: lemon/preflow.h
===================================================================
--- lemon/preflow.h	(revision 944)
+++ lemon/preflow.h	(revision 942)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -555,8 +555,8 @@
         }
       }
-      for (NodeIt n(_graph); n != INVALID; ++n)
+      for (NodeIt n(_graph); n != INVALID; ++n) 
         if(n!=_source && n!=_target && _tolerance.positive((*_excess)[n]))
           _level->activate(n);
-
+          
       return true;
     }
@@ -586,5 +586,5 @@
           level = _level->highestActiveLevel();
           --num;
-
+          
           Value excess = (*_excess)[n];
           int new_level = _level->maxLevel();
Index: test/CMakeLists.txt
===================================================================
--- test/CMakeLists.txt	(revision 960)
+++ test/CMakeLists.txt	(revision 942)
@@ -14,5 +14,4 @@
 SET(TESTS
   adaptors_test
-  arc_look_up_test
   bellman_ford_test
   bfs_test
@@ -88,5 +87,5 @@
     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
-      COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex.dll ${TARGET_PATH}
+      COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
     )
   ENDIF()
@@ -130,5 +129,5 @@
     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
-      COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex.dll ${TARGET_PATH}
+      COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
     )
   ENDIF()
Index: test/Makefile.am
===================================================================
--- test/Makefile.am	(revision 944)
+++ test/Makefile.am	(revision 942)
@@ -79,7 +79,7 @@
 test_graph_test_SOURCES = test/graph_test.cc
 test_graph_utils_test_SOURCES = test/graph_utils_test.cc
-test_hao_orlin_test_SOURCES = test/hao_orlin_test.cc
 test_heap_test_SOURCES = test/heap_test.cc
 test_kruskal_test_SOURCES = test/kruskal_test.cc
+test_hao_orlin_test_SOURCES = test/hao_orlin_test.cc
 test_lgf_test_SOURCES = test/lgf_test.cc
 test_lp_test_SOURCES = test/lp_test.cc
Index: test/adaptors_test.cc
===================================================================
--- test/adaptors_test.cc	(revision 504)
+++ test/adaptors_test.cc	(revision 961)
@@ -1378,11 +1378,13 @@
 
   // Apply several adaptors on the grid graph
-  typedef SplitNodes<Orienter< const GridGraph, GridGraph::EdgeMap<bool> > >
-    SplitGridGraph;
+  typedef Orienter< const GridGraph, GridGraph::EdgeMap<bool> >
+    OrientedGridGraph;
+  typedef SplitNodes<OrientedGridGraph> SplitGridGraph;
   typedef Undirector<const SplitGridGraph> USplitGridGraph;
   checkConcept<concepts::Digraph, SplitGridGraph>();
   checkConcept<concepts::Graph, USplitGridGraph>();
 
-  SplitGridGraph adaptor = splitNodes(orienter(graph, dir_map));
+  OrientedGridGraph oadaptor = orienter(graph, dir_map);
+  SplitGridGraph adaptor = splitNodes(oadaptor);
   USplitGridGraph uadaptor = undirector(adaptor);
 
Index: st/arc_look_up_test.cc
===================================================================
--- test/arc_look_up_test.cc	(revision 959)
+++ 	(revision )
@@ -1,85 +1,0 @@
-/* -*- mode: C++; indent-tabs-mode: nil; -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library.
- *
- * Copyright (C) 2003-2009
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-#include "lemon/list_graph.h"
-#include "lemon/lgf_reader.h"
-
-#include "test_tools.h"
-
-using namespace lemon;
-
-const int lgfn = 4;
-const std::string lgf =
-  "@nodes\n"
-"label\n"
-"0\n"
-"1\n"
-"2\n"
-"3\n"
-"4\n"
-"5\n"
-"6\n"
-"@arcs\n"
-"label\n"
-"5 6 0\n"
-"5 4 1\n"
-"4 6 2\n"
-"3 4 3\n"
-"3 4 4\n"
-"3 2 5\n"
-"3 5 6\n"
-"3 5 7\n"
-"3 5 8\n"
-"3 5 9\n"
-"2 4 10\n"
-"2 4 11\n"
-"2 4 12\n"
-"2 4 13\n"
-"1 2 14\n"
-"1 2 15\n"
-"1 0 16\n"
-"1 3 17\n"
-"1 3 18\n"
-"1 3 19\n"
-"1 3 20\n"
-"0 2 21\n"
-"0 2 22\n"
-"0 2 23\n"
-"0 2 24\n";
-
-
-int main() {
-  ListDigraph graph;
-  std::istringstream lgfs(lgf);
-  DigraphReader<ListDigraph>(graph, lgfs).run();
-  
-  AllArcLookUp<ListDigraph> lookup(graph);
-	
-  int numArcs = countArcs(graph);
-	
-  int arcCnt = 0;
-  for(ListDigraph::NodeIt n1(graph); n1 != INVALID; ++n1)
-    for(ListDigraph::NodeIt n2(graph); n2 != INVALID; ++n2)
-      for(ListDigraph::Arc a = lookup(n1, n2); a != INVALID;
-	  a = lookup(n1, n2, a))
-	++arcCnt;
-  check(arcCnt==numArcs, "Wrong total number of arcs");
-
-  return 0;
-}
Index: test/dfs_test.cc
===================================================================
--- test/dfs_test.cc	(revision 944)
+++ test/dfs_test.cc	(revision 942)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -220,5 +220,5 @@
   check(dfs.run(s1,t1) && dfs.reached(t1),"Node 3 is reachable from Node 6.");
   }
-
+  
   {
     NullMap<Node,Arc> myPredMap;
Index: test/graph_copy_test.cc
===================================================================
--- test/graph_copy_test.cc	(revision 927)
+++ test/graph_copy_test.cc	(revision 896)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -71,5 +71,5 @@
     nodeCrossRef(ncr).arcCrossRef(ecr).
     node(fn, tn).arc(fa, ta).run();
-
+  
   check(countNodes(from) == countNodes(to), "Wrong copy.");
   check(countArcs(from) == countArcs(to), "Wrong copy.");
@@ -99,5 +99,5 @@
   // Test repeated copy
   digraphCopy(from, to).run();
-
+  
   check(countNodes(from) == countNodes(to), "Wrong copy.");
   check(countArcs(from) == countArcs(to), "Wrong copy.");
@@ -201,5 +201,5 @@
   // Test repeated copy
   graphCopy(from, to).run();
-
+  
   check(countNodes(from) == countNodes(to), "Wrong copy.");
   check(countEdges(from) == countEdges(to), "Wrong copy.");
Index: test/heap_test.cc
===================================================================
--- test/heap_test.cc	(revision 927)
+++ test/heap_test.cc	(revision 921)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: test/lgf_test.cc
===================================================================
--- test/lgf_test.cc	(revision 935)
+++ test/lgf_test.cc	(revision 930)
@@ -64,8 +64,8 @@
 
 
-int main()
+int main() 
 {
   {
-    ListDigraph d;
+    ListDigraph d; 
     ListDigraph::Node s,t;
     ListDigraph::ArcMap<int> label(d);
@@ -94,5 +94,5 @@
 
   {
-    ListDigraph d;
+    ListDigraph d; 
     std::istringstream input(test_lgf_nomap);
     digraphReader(d, input).
@@ -111,5 +111,5 @@
 
   {
-    ListDigraph d;
+    ListDigraph d; 
     std::istringstream input(test_lgf_bad1);
     bool ok=false;
@@ -118,5 +118,5 @@
         run();
     }
-    catch (FormatError&)
+    catch (FormatError&) 
       {
         ok = true;
@@ -140,5 +140,5 @@
 
   {
-    ListDigraph d;
+    ListDigraph d; 
     std::istringstream input(test_lgf_bad2);
     bool ok=false;
Index: test/lp_test.cc
===================================================================
--- test/lp_test.cc	(revision 956)
+++ test/lp_test.cc	(revision 932)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -42,35 +42,8 @@
 using namespace lemon;
 
-int countCols(LpBase & lp) {
-  int count=0;
-  for (LpBase::ColIt c(lp); c!=INVALID; ++c) ++count;
-  return count;
-}
-
-int countRows(LpBase & lp) {
-  int count=0;
-  for (LpBase::RowIt r(lp); r!=INVALID; ++r) ++count;
-  return count;
-}
-
-
 void lpTest(LpSolver& lp)
 {
 
   typedef LpSolver LP;
-
-  // Test LpBase::clear()
-  check(countRows(lp)==0, "Wrong number of rows");
-  check(countCols(lp)==0, "Wrong number of cols");
-  lp.addCol(); lp.addRow(); lp.addRow();
-  check(countRows(lp)==2, "Wrong number of rows");
-  check(countCols(lp)==1, "Wrong number of cols");
-  lp.clear();
-  check(countRows(lp)==0, "Wrong number of rows");
-  check(countCols(lp)==0, "Wrong number of cols");
-  lp.addCol(); lp.addCol(); lp.addCol(); lp.addRow();
-  check(countRows(lp)==1, "Wrong number of rows");
-  check(countCols(lp)==3, "Wrong number of cols");
-  lp.clear();
 
   std::vector<LP::Col> x(10);
Index: test/maps_test.cc
===================================================================
--- test/maps_test.cc	(revision 927)
+++ test/maps_test.cc	(revision 915)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: test/path_test.cc
===================================================================
--- test/path_test.cc	(revision 957)
+++ test/path_test.cc	(revision 440)
@@ -39,35 +39,6 @@
 }
 
-// Check if proper copy consructor is called (use valgrind for testing)
-template<class _Path>
-void checkCopy()
-{
-  ListDigraph g;
-  ListDigraph::Arc a  = g.addArc(g.addNode(), g.addNode());
-  
-  _Path p,q;
-  p.addBack(a);
-  q=p;
-  _Path r(p);
-  StaticPath<ListDigraph> s(r);
-}
-  
 int main() {
   check_concepts();
-
-  checkCopy<Path<ListDigraph> >();
-  checkCopy<SimplePath<ListDigraph> >();
-  checkCopy<ListPath<ListDigraph> >();
-
-  ListDigraph g;
-  ListDigraph::Arc a  = g.addArc(g.addNode(), g.addNode());
-  
-  Path<ListDigraph> p;
-  StaticPath<ListDigraph> q,r;
-  p.addBack(a);
-  q=p;
-  r=q;
-  StaticPath<ListDigraph> s(q);
-
   return 0;
 }
Index: test/preflow_test.cc
===================================================================
--- test/preflow_test.cc	(revision 927)
+++ test/preflow_test.cc	(revision 902)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2011
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -160,5 +160,5 @@
 {
   DIGRAPH_TYPEDEFS(SmartDigraph);
-
+  
   SmartDigraph g;
   SmartDigraph::ArcMap<int> cap(g),iflow(g);
@@ -272,5 +272,5 @@
 
   initFlowTest();
-
+  
   return 0;
 }
